O escalonamento vertical do AWS da instância ec2 pode suportar 100.000 usuários por dia?

O escalonamento vertical do AWS da instância ec2 pode suportar 100.000 usuários por dia?

Eu tenho um site de compartilhamento de links (pense no Reddit). Ele está hospedado na hospedagem compartilhada godaddy deluxe agora. Estou planejando migrá-lo para aws.

Eu vi um webinar da AWS sobre como escalar até 10 milhões de usuários. Mas basicamente diz apenas que além de uma extensão que você não pode escalar verticalmente, então escolha escalar horizontalmente desde o início.

Não preciso oferecer suporte a 10 milhões de usuários. Suponha que eu precise oferecer suporte a 100.000 usuários diariamente. No máximo, o site terá, digamos, 1.000 usuários simultâneos.

Caso de uso

  • Os usuários postarão links para o site. Apenas um em cada 1.000 usuários postará links.
  • A maioria dos usuários apenas pesquisa links no site, lê a descrição etc.
  • Cerca de 5.000 comentários serão feitos no site todos os dias.
  • É principalmente um site baseado em texto.
  • Existem muito poucas imagens no site, exceto avatar e banner do usuário, ambos limitados a 2 MB. As imagens são armazenadas no banco de dados.
  • recursos usuais de um fórum como inscrição, login, conta, etc. estão presentes.

Arquitetura Planejada

  • 1 instância EC2
  • 1 instância RDS
  • 1 Zona da Rota 53
  • 1 ip elástico
  • 1 s3 (apenas para backup)

Pretendo escalar usando este método simples - comece com, digamos, t2.micro, à medida que a base de usuários crescer, basta atualizar a instância ec2. O mesmo vale para as instâncias RDS.

Eu sei que 1 EC2 ou RDS o torna um ponto único de falha. Se algum desses quebrar, pretendo encerrar essa instância e iniciar uma idêntica a partir de uma imagem/backup. Tudo bem se o site ficar offline por 1 hora a cada 30 dias.

Tenha em mente que não tenho ninguém para me ajudar e este é um esforço individual. Posso encontrar alguém para ajudar no lado do aws se isso atingir os usuários.

  1. Posso oferecer suporte a 100.000 usuários dessa maneira?
  2. Em quais pontos de interrupção devo atualizar para a próxima instância Ec2 até 100.000 usuários/1.000 usuários simultâneos? (por exemplo, até 5 usuários simultâneos - t2.micro/db.t2.micro, até 40 usuários simultâneos - instância EC2 tipo 2/instância Rds tipo 2 etc.)
  3. Há mais alguma coisa que eu não considerei/devo considerar antes de prosseguir com este plano?

Responder1

É muito difícil dizer se uma aplicação web irá lidar com um número X de clientes em um sistema específico. Depende muito de muitos fatores, incluindo como o aplicativo foi escrito, estruturas usadas, etc.

A melhor opção seria encontrar algo que você possa usar para avaliar/simular o uso do aplicativo. Como você já parece ter o aplicativo da web em execução, você pode facilmente configurar uma instância ec2 de qualquer tamanho por um curto período de tempo, executar alguns testes e desligá-lo.

Ser capaz de escalar horizontalmente proporcionará um caminho muito melhor para lidar com o crescimento no futuro. O que acontece se o site tiver dificuldades em instâncias maiores ou se você precisar ultrapassar 100.000? Você também pode descobrir que apenas migrar para instâncias maiores provavelmente não retornará um aumento linear no desempenho.

Uma coisa que se destaca -

As imagens são armazenadas no banco de dados.

Armazene as imagens e qualquer outra coisa que você não precise especificamente que os servidores de aplicativos manipulem em outro lugar. Como você já está usando uma pilha AWS, o S3 é o local óbvio para imagens e outros dados estáticos. Não desperdice tempo do servidor de aplicativos com recursos estáticos.

informação relacionada