Conselhos gerais sobre aplicativos de rede em execução no EC2

Conselhos gerais sobre aplicativos de rede em execução no EC2

Escrevi um aplicativo de rede e o implantei em uma única instância do EC2 (M1 grande).

O aplicativo funciona como uma espécie de sala de bate-papo (só que permite outras coisas além do envio de mensagens), o que permite que proprietários de smartphones próximos (físicos), digamos, até 5 metros se comuniquem.

Esta é minha primeira aplicação de rede e tenho algumas dúvidas e questionamentos sobre ela:

  1. Como esta é uma sala de bate-papo muito seletiva (você só verá pessoas que estão muito próximas), não tenho ideia de como posso fazer o balanceamento de carga: se eu pegar, por exemplo, 2 instâncias, uma na Europa e outra nos EUA, eu faria gostaria de redirecionar as pessoas da Europa para a primeira e as pessoas dos EUA para a segunda. Se não puder garantir esse redirecionamento, todo o aplicativo será inútil. Existe uma maneira de fazer isso usando o Route 53? Existe algum sentido em fazer isso? Uma instância massiva não é suficiente?

  2. Tentei testar o desempenho de carga pesada da instância. Então, escrevi meu próprio aplicativo que simulou 200 mil solicitações por hora e o coloquei em outras instâncias do EC2. Parecia não haver nenhum problema (além do aumento da latência para algumas solicitações, o que parece normal para alta utilização da CPU ao aceitar uma grande quantidade de conexões simultaneamente). Minha pergunta é: parece um bom teste de carga se eu espero ter 500K Usuários. Sei que esta é uma pergunta um tanto vaga, mas uma resposta um tanto vaga também será suficiente.

  3. Segurança em termos de segurança. Que precauções gerais devo tomar para reduzir o risco de uma violação de segurança? Desabilitar todas as portas (exceto a porta de escuta do meu aplicativo) no firewall é uma boa ideia? ou é redundante. Novamente, uma pergunta bastante vaga. Eu apreciarei qualquer resposta geral.

Obrigado

Responder1

  1. Como seu aplicativo é baseado em proximidade, você pode configurar servidores em diferentes regiões com pouca ou nenhuma necessidade de comunicação cruzada. Aproveite o recurso "Roteamento baseado em latência" do Route53. Na maioria das vezes, isso deve fazer com que as pessoas cheguem ao servidor mais próximo. No entanto, como não é um "roteamento baseado em localização geográfica", não é garantido. O benefício de vários servidores mundiais em comparação com uma única instância massiva é que você reduzirá a latência entre cliente e servidor.

  2. Se sua simulação representar adequadamente o uso de seus usuários, seus resultados deverão lhe dizer muito. Se 200 mil solicitações por hora representam adequadamente a atividade de 500 mil usuários, você deve estar bem. Caso contrário, ajuste seus testes. O segredo é garantir que seu teste represente adequadamente 500 mil usuários, e seus resultados também o farão.

  3. Feche as portas do grupo de segurança para qualquer coisa que não seja essencial ao seu aplicativo. Não deixe portas RDP, SSH ou de banco de dados abertas. Mantenha apenas a porta do seu aplicativo aberta.

informação relacionada