Otimização de custo
O custo de executar o Lambda para sua workload é determinado por três fatores: o número de execuções, a duração e o uso da memória (combinados em gigabytes de segundo) e a transferência de dados. Além do impacto da alocação de memória discutido na seção anterior, há outras opções de design que afetam essas três variáveis e, portanto, podem reduzir os custos.
Sua escolha de runtime pode afetar o custo. Geralmente, as linguagens compiladas executam códigos mais rapidamente do que linguagens interpretadas, mas podem levar mais tempo para serem inicializadas. Para funções pequenas com funcionalidade simples, geralmente uma linguagem interpretada é mais adequada para o tempo total de execução mais rápido e, portanto, para o menor custo. As funções que usam linguagens compiladas geralmente são mais rápidas em workloads com maior complexidade computacional ou em que você usa a simultaneidade provisionada; portanto, a sobrecarga de inicialização ocorre antes da invocação.
A frequência de invocação é um fator importante na determinação do custo. Dependendo de quais eventos estão acionando as funções do Lambda, há vários controles que você pode usar para reduzir o número total de invocações. Para funções do Lambda acionadas por:
-
API Gateway: use o armazenamento em cache do CloudFront na frente do API Gateway para chamadas que retornam dados que não são alterados com frequência. Isso aumenta o custo do CloudFront, mas reduz os custos do API Gateway e do Lambda.
-
SQS: a propriedade BatchSize determina o número de itens em uma fila do SQS enviados ao Lambda por invocação. Aumentar esse número reduz o número de invocações do Lambda. Dependendo do seu caso de uso, talvez seja possível agregar mais dados por mensagem enviada ao SQS a fim de processar mais dados em menos invocações.
De https://github.com/aws-samples/s3-to-lambda-patterns/blob/master/ddbImporter/v2/template.yaml
Além disso, considere os custos gerais de transferência de dados para sua workload. Os custos de transferência de dados do Lambda são cobrados de acordo com as taxas de transferência de dados do EC2 listadas em https://aws.amazon.com/ec2/pricing/on-demand/