Estou hospedando o Discourse em uma instância EC2 e, de acordo com dados históricos da CDN, o tamanho da comunidade deve ter uma média de cerca de 20,03 milhões de requisições em um mês. Gostaria de sugestões sobre o número e o tamanho das instâncias necessárias, bem como se o auto-scaling é necessário.
Hmm, é possível executar o Discourse em uma máquina, usando um ou dois contêineres Docker, mas acho que não vi nada sobre distribuí-lo em mais de uma instância. A história usual é escalar para instâncias maiores: mais CPUs, mais RAM. E pode-se usar armazenamento local ou armazenamento em nuvem para ativos carregados.
Mas esse nível de tráfego é de apenas uma ou duas requisições por segundo, o que acho que não é muito.
A história usual é começar em uma instância pequena e redimensionar conforme necessário, de acordo com o uso de memória e a carga da CPU. Se você tem muito dinheiro, comece em uma instância maior.
Desculpe, mas são 20 milhões de solicitações por mês. O site atual utiliza escalonamento automático com 7 instâncias t3a.medium e 1 instância t3a.large, e estamos migrando este site para a plataforma Discourse. Gostaria de sugestões sobre o número e o tamanho das instâncias necessárias, bem como se o escalonamento automático é necessário.
É difícil adivinhar exatamente o que você vai precisar. Conheço um site com 3,5 milhões de visualizações de página mensais em uma VM de 8 GB com 4 CPUs. Você poderia usar isso como uma diretriz. Ele está servindo imagens por conta própria, o que você não pode (facilmente?) fazer com várias instâncias; você presumivelmente terá ativos no S3 e CDNs para o site e o bucket S3.
Se uma “requisição” e uma “visualização de página” são a mesma coisa é um tanto improvável.
Se você precisa de escalabilidade depende dos seus padrões de tráfego. Se você precisou de escalabilidade antes, então provavelmente precisará com o Discourse. Se o seu tráfego for bastante consistente e você não precisa de escalabilidade, então a solução fácil é uma única VM grande, e provavelmente RDS e talvez Elasticache. Também depende de quais ferramentas e métodos sua equipe gosta de usar, seu orçamento, e assim por diante.
Se uma única instância grande do EC2 hospedando o Discourse falhar, o site inteiro ficará indisponível. Por favor, forneça uma solução para isso. Planejamos usar RDS para o banco de dados e elasticache.
Em seguida, use o ECS ou qualquer outra solução de sua preferência com um balanceador de carga.