O dimensionamento vertical da instância ec2 pode suportar 100.000 usuários por dia? [duplicado]

1

Eu tenho um site de compartilhamento de links (pense no reddit). Ele está hospedado no godaddy deluxe shared hosting now. Estou planejando migrar para aws.

Eu tenho assistido a um webinar sobre escalabilidade até 10 milhões de usuários. Mas basicamente diz apenas que você não pode escalar de maneira vertical, então escolha escalar horizontalmente desde o começo.

Eu não preciso suportar 10 milhões de usuários. Suponha que eu precise apoiar 100.000 usuários diariamente. No máximo, o site terá 1.000 usuários simultâneos.

Caso de uso

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

Arquitetura planejada

  • 1 instância do EC2
  • 1 instância do RDS
  • 1 Zona do Route 53
  • 1 ip elástico
  • 1 s3 (somente para backup)

Pretendo escalar usando esse método simples - Comece com digamos t2.micro, à medida que a base de usuários cresce, simplesmente atualize a instância ec2. O mesmo vale para as instâncias do RDS.

Eu sei que 1 EC2 ou RDS faz dele um ponto único de falha. Se alguma dessas quebras planeje encerrar essa instância e iniciar uma idêntica a partir de uma imagem / backup. Estou bem se o site estiver off-line por 1 hora a cada 30 dias.

Por favor, tenha em mente que eu não tenho ninguém para me ajudar e este é um esforço solo. Eu posso encontrar alguém para ajudar no lado do aws se ele 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 do Ec2 até os 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 - Tipo de instância do EC2 2 / Tipo de instância do Rds 2 etc.)
  3. Há mais alguma coisa que eu não considerei / precisei considerar antes de prosseguir com esse plano?
por nandu kk 13.03.2018 / 16:55

1 resposta

0

É muito difícil dizer se um aplicativo da Web lidará com o número X de clientes em um determinado sistema. Depende strongmente de muitos fatores, incluindo como o aplicativo foi escrito, frameworks usados, etc.

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

Ser capaz de escalonar horizontalmente fornecerá um caminho muito melhor para lidar com o crescimento no futuro. O que acontece se o site se esforçar nas instâncias maiores ou se precisar ultrapassar 100.000? Você também pode descobrir que apenas mudar para instâncias maiores provavelmente não retornará um aumento linear no desempenho.

Uma coisa que se destaca -

The images are stored in the DB.

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

    
por 13.03.2018 / 17:11