AWS - Quatro cargas balanceadas t3.micro vs uma t3.medium para uma API NodeJS

1

Estou tentando decidir qual das duas configurações seria obter mais preço / desempenho valor com a consideração de que executarei uma API NodeJS em modo decluster :

Todos os preços são válidos para Região de Singapura .

  1. Quatro instâncias de t3.micro (2 vCPU, 1 GiB RAM)

    • Instâncias: 0,0132 x 4 = 0,0528 usd / h
    • Balanceador de carga de aplicativo: 0,0252 usd / h
  2. Uma instância de t3.medium (2 vCPU, 4 GiB RAM)

    • Instância: 0,0528 x 1 = 0,0528 usd / h

Seria claro que o uso de t3.micro com um ALB custaria mais , mas me daria (1 vCPU = 1 nó), um total de 8 clusters de nó mas cada um dos dois compartilhando a memória de 1GiB.

Por outro lado, eu teria 2 clusters de nós obtendo uma memória generosa de 4 GiB.

Supondo que a configuração receba o mesmo carregamento / processo / solicitações. Estou tendo dificuldade em determinar qual seria o melhor desempenho, especificamente porque descobri que o nodejs tem um desempenho melhor no modo de cluster (quando uma instância tem mais de um núcleo). Qual destes me daria mais desempenho para o custo?

    
por muffin 06.11.2018 / 04:35

2 respostas

1

Depende totalmente da carga de trabalho e se TLS / SSL for necessário. Fez alguns testes com um conjunto de perguntas semelhante. Em termos de uso da CPU, ficou claro que o processamento de uma quantidade maior de solicitações pequenas gera muita sobrecarga no lado do TLS, que pode ser encerrado no Balanceador de Carga, transferindo o uso da CPU das instâncias.

A carga balanceada com instâncias em várias zonas de disponibilidade também pode ser considerada mais resiliente.

Por outro lado, o uso de memória provavelmente é mais eficiente em uma única instância com um único mecanismo de cache no nível do SO. Além disso, a sobrecarga do sistema operacional só existe uma vez.

Se você realmente deseja otimizar a configuração, provavelmente a melhor maneira é configurar algum teste de carga e comparar os resultados. Um t2.micro pode ficar sem CPU muito rápido, mas também depende muito do aplicativo a ser executado. Se estiver com fome de memória, você ficará melhor com mais memória na instância.

    
por 06.11.2018 / 07:38
1

Além de executar sua node.js API no topo de EC2 instance, você pode tentar usar o AWS Lambda.

AWS Lambda gratuito para solicitação de 1 milhão por mês e 0,20 por solicitação de 1 milhão a partir de então.

por 06.11.2018 / 07:53