Preços e custos sem servidor: AWS Lambda

Olá Habr! Eu tento melhorar as traduções e ficarei feliz em suas críticas.
(Nota: os preços são precisos a partir de agosto de 2018)

O AWS Lambda possui 263 itens de linha com preços exclusivos. Por exemplo, eles podem ser chamados de "Entrada inter-regional acelerada usando locais de borda fora dos EUA, Europa ou Japão, da UE (Paris) para UE (Londres)" e existem em cada uma das 17 regiões. No total, são 4.471 posições individuais que podem ser faturadas quando você conclui o Lambda.

Além disso, existem 635.035 posições para o serviço EC2, 12.261 para o Route53 e 15.283 para o API Gateway. No total, o Amazon Web Services possui mais de um milhão de taxas individuais para vários serviços. Sua política de preços é tão complexa que existe uma API inteira apenas para verificar os preços. Com ele, obtive esses números (embora o Lambda não esteja incluído na calculadora de preços).

Os preços do Lambda são muito discretos: primeiro, o nível gratuito para o primeiro milhão de solicitações é usado, seguido por um preço de US $ 0,20 para cada milhão de solicitações subsequentes, mais US $ 0,00001667 por GB / segundo de “tempo de computação” usado durante o mês, além de que custa a API do Gateway (US $ 3,50 por milhão de solicitações) para enviar solicitações HTTP ao Lambda. Você também será cobrado por qualquer transferência de dados do seu Lambda (US $ 0,09 por GB), bem como por quaisquer consultas ao Dynamo DB.

O que é "tempo de computação"?


Descobrimos que US $ 0,00001667 são pagos por GB-segundo de tempo de computação Lambda. Gb-segundo é uma unidade um pouco estranha, você não acha? Pode significar o número de segundos em que você usa 1 GB de memória, mas, na verdade, é o número de segundos em que os cálculos foram executados, multiplicado pelo número de GB alocado para esses cálculos.

Para aqueles que não gostam de microcentros como unidade de medida, reuni os números em um diagrama que mostra quanto tempo de memória e CPU você obtém de 1 a 6 dólares por milhão de solicitações:

imagem

A Amazon publica preços que não incluem uma taxa básica de US $ 0,20, mas eu a incluí em meus cálculos.

E qual é um milissegundo de tempo do processador? A computação em milissegundos no Apple II representou 3.000 ciclos de processador. No meu laptop Intel i7, são 4 milhões de ciclos. No caso da Amazon, eles aumentam a velocidade do processador, dependendo da quantidade de memória que você usa. Em outras palavras, seu desempenho é memória * tempo de ciclo da CPU , em que o tempo de ciclo da CPU diminui, proporcionalmente à memória usada. Essa aceleração da CPU continua até que o recurso de um núcleo do processador se esgote, após o que você recebe recursos do segundo núcleo, que podem ser úteis ou não serem utilizados, dependendo da construção do seu aplicativo.

Com esses detalhes em mente, ajustei o gráfico para mostrar quanto tempo de CPU você está recebendo. Eu me concentrei nos processadores usuais de servidor que usamos em testes comparativos.

imagem

Como você pode ver no diagrama, não importa se você executa o Lambda de 1024 MB por 100 ms ou 128 MB por 800 ms, você obterá a mesma quantidade de cálculos e pagará o mesmo. Com mais de 1024 MB, você alcança o desempenho de um núcleo de processador e começa a receber a energia do segundo núcleo (se seu aplicativo for multithread e pode usá-lo).

Arredondamento


Além disso, o tempo do processador é arredondado para os 100 ms mais próximos, o que significa que mesmo um lambda simples que retorna o tempo atual em nossos testes custa US $ 0,41 / milhão de chamadas. Obviamente, seu Lambda raramente funcionará com o número exato de milissegundos que é múltiplo de 100. Mais frequentemente, você usará uma quantidade de ms que a Amazon arredondará para calcular quanto você pagará. Dado que eles são sempre arredondados, isso significa que você pagará em média 50 ms de CPU para cada chamada:

imagem

Gateway de API


O AWS Lambda pode executar uma variedade de tarefas dentro da Amazon. Mas, antes de tudo, eles são interessantes para a criação de aplicativos da Web sem um servidor. E, para esse propósito, o lambda não pode ser usado diretamente, pois precisa de algum tipo de servidor HTTP capaz de converter a solicitação na API Lambda de chamada. A maneira mais fácil de fazer isso é usar a API do Amazon Gateway.

O custo do API Gateway é de US $ 3,50 por milhão de solicitações, o que geralmente excede o custo do próprio Lambda. Aqui está nosso gráfico acima, mas ajustado para o API Gateway:
imagem

Você notará que as linhas de 1, 2 e 3 dólares desapareceram do gráfico. O mínimo absoluto é de US $ 3,91 / milhão de solicitações, supondo que seu Lambda consuma muito pouca CPU.
Você também terá que pagar pelo tráfego e uma taxa horária adicional se desejar usar o cache.

Rota 53


O Amazon Route53 DNS também não é gratuito. No primeiro bilhão de consultas, o custo é de US $ 0,40 por milhão de consultas DNS. Isso eleva nosso custo mínimo total a US $ 4,31 / milhão.

Mais despesas


Calcular todos os custos pode ser entediante. Os logs do CloudWatch custam US $ 0,50 por GB. Ao mesmo tempo, US $ 0,09 por GB de tráfego afetará significativamente a conta.

Lambda @ Edge


A Amazon oferece uma maneira de executar código através do serviço Cloudfront CDN. Os custos constantes e variáveis ​​são três vezes mais que o Lambda convencional.

Para usar o Lambda @ Edge para solicitações HTTPS, primeiro você precisa comprar o Cloudfront por US $ 1 / milhão. Você também paga pela largura de banda, que pode facilmente se tornar o principal item de despesa. Se o seu site tiver 1 MB, você pagará até US $ 85 / milhão apenas pela largura de banda do Cloudfront ou US $ 250 para regiões como a América do Sul. Mais um adicional de US $ 20 / por milhão de solicitações que devem retornar ao remetente.

Veja quanto você paga apenas pelos cálculos do Lambda @ Edge:

imagem

Source: https://habr.com/ru/post/pt481664/


All Articles