Mais ou maiores instâncias do EC2 para gerenciar custos [fechado]

1

Em um esforço para economizar custos, estamos tentando descobrir a configuração ideal para lidar com todos os processos de trabalho que estamos executando entre três instâncias do EC2.

Em vez de três ECxs de 4x grandes que executam milhares de funcionários de fila, seria mais econômico dividi-los em várias instâncias menores, cada uma gerenciando 100 ou mais tarefas ou é melhor continuar usando instâncias maiores com capacidade máxima?

Normalmente, consumimos aproximadamente a mesma quantidade de CPU e memória para cada servidor que criamos até o momento. Se esperamos usar 50% da energia disponível da CPU, muitas vezes podemos esperar usar 50% da RAM disponível. Para o IO de rede, nossos maiores custos são a comunicação com o RDS, a leitura de cargas úteis da fila do SQS e a movimentação de dados de / para o S3.

Os trabalhos podem ser processamento em lote de milhões de pequenas notificações, para analisar grandes arquivos XML / CSV, executar cálculos financeiros complexos e modelagem de dados, ou executar algoritmos ML.

    
por eComEvo 09.10.2017 / 22:32

3 respostas

1

A melhor maneira de fazer isso é criar um grupo de escala automática que se ligue a lances de instância spot e gire uma nova instância de qualquer tamanho para uma pequena quantia de dinheiro que pode fazer o trabalho e você não se importa em terminar a qualquer momento, já que é um nó de trabalho. O trabalho do ASG / Lambda poderia simplesmente gerar uma nova instância conforme necessário

Eu faço algo semelhante com kubernetes e economizo muito dinheiro na minha carga de trabalho.

    
por 09.10.2017 / 23:12
0

Você pode usar um grupo de escalonamento automático com pequenas instâncias do SPOT. É altamente recomendável que você use o link , pois isso ajuda muito a minimizar o custo de suas instâncias do EC2, permitindo que você pague o mínimo sempre.

    
por 09.10.2017 / 23:48
0

Em geral, mais máquinas são melhores para um ponto, porque uma grande máquina que desce afeta mais clientes / tarefas / tarefas. No entanto, sua pergunta é sobre custo e não confiabilidade.

Veja seu tamanho atual de instância. Aqui estou assumindo que você está ligado à CPU e não à memória, ao disco ou à rede. Se algum desses fatores for repetido para cada um deles.

Veja o número da vCPU. Multiplique isso pelo pico e a média de utilização da CPU vezes o número de instâncias. Isso lhe dará um requisito de CPU de linha de base. Em seguida, converta isso para custo por vCPU. Em seguida, compare com o número equivalente de máquinas menores para atender a mesma carga. Você vai sentir rapidamente qual é a melhor matriz.

As instâncias spot atrás de um ASG (Auto Scaling Group) são outra solução baseada em custo. No entanto, você precisará revisar a tendência do histórico para o tipo de máquina que você está usando; preços médios e máximos de licitação; e ter uma estratégia de gerenciamento quando você tem zero máquinas em execução porque seu preço de lance é muito baixo. Meus clientes que dependem de instâncias spot, escolhem máquinas que raramente têm picos de preços ou pelo menos picos de preços previsíveis, boa disponibilidade geral e, em seguida, fazem lances de cerca de 2x preços sob demanda para cobrir os prazos curtos que identificam saltos de preços. (Essa é a razão pela qual os preços spot podem exceder os preços sob demanda). Você também precisará tornar suas instâncias sem dados (sem estado), o que significa que uma instância pode ser encerrada a qualquer momento e novas instâncias serão iniciadas a partir de uma AMI pré-configurada.

A Amazon oferece muitas opções para ajudar a gerenciar custos. Com a arquitetura certa, você pode construir alguns sistemas realmente incríveis com preços excelentes.

    
por 10.10.2017 / 01:01