[Dúvida] Qual caminho devo seguir para "clusterizar" uma aplicação?
Opa tudo certo, pessoal?
Gostaria de compartilhar algo com todos, é uma simples dúvida e acredito que eu conseguiria encontrar uma resposta na internet, entretanto, provavelmente me falta conhecimento das palavras corretas para fazer a pesquisa certa.
É uma das dúvidas que sempre tive comigo mas nunca consegui me expressar muito bem para que entendessem, entretanto, tentarei ao máximo ser claro aqui.
Digamos que existe uma aplicação X, que esta começando a receber mais requisições e, portanto, precisa ser escalonada.
Para poder escalonar essa seguinte aplicação na nuvem AWS, temos as 2 seguintes opções:
(Usarei a AWS de exemplo pois é o provedor que tenho conhecimento)
- Ter 2 instâncias EC2 de um tipo pequeno que comportem a aplicação X, uma aplicação em cada instância.
- Ter 1 instância EC2 de um tipo grande que possa comportar 2 processos ou 2 containers da aplicação X.
Minhas dúvidas são as seguintes:
- O que devo levar em consideração para escolher qual tipo de cluster farei?
- Quais são as diferenças dessas 2 formas de clusterizar uma aplicação?
- Um é evolução do outro ou são propósitos diferentes? Se sim, qual seria o propósito de cada opção?
Observação: Para responder as perguntas, considere que as instâncias de cada opção são perfeitamente equivalentes...
Exemplo:
- Todas as instâncias estão com 80% do uso da CPU.
- A instância maior tem exatamente o dobro de memória, armazenamento, núcleos de processamento e custo que uma instância menor
Basicamente considere que 2 instâncias pequenas são iguais em performance e custo que 1 instância grande.