Configurando o AWS Lambda para produção
Implantando Aplicações na AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Funcionou no teste
A função passou em todos os testes
Em produção, ela sofre timeout e throttling
O código estava ok; a configuração não
Configurações do Lambda que importam em produção
Memory
: também escala CPU e rede
Timeout
: segundos máximos antes de matar a função
Ephemeral storage
: espaço temporário em /tmp
Concurrency
: quantas rodam ao mesmo tempo
Dimensionamento de memória e o vínculo com a CPU
Mais memória =
mais CPU proporcionalmente
Funções ligadas a CPU podem rodar mais rápido com mais memória
Duração menor pode significar
menor custo
Dimensione testando, não no chute
Concurrency: reservada vs provisionada
Concurrency reservada
Limita o máximo de execuções simultâneas
Protege sistemas a jusante e outras funções
Concurrency provisionada
Pré-aquece instâncias, sem cold start
Para funções sensíveis à latência e voltadas ao usuário
Empacotando configuração e código compartilhado
Environment variables
: configuração por ambiente
Layers
: compartilhe código e dependências entre funções
Extensions
: rodam junto da função para ferramentas
Mantenha config fora do pacote de deploy
Conectando o Lambda a uma VPC
Conecte o Lambda a
sub-redes privadas
para recursos internos
O Lambda cria
ENIs
na sua VPC
Security groups
controlam o que ele pode acessar
Precisa de NAT ou endpoint da VPC para acesso externo
Tratando falhas com destinos e DLQs
Invocações assíncronas
tentam novamente automaticamente
em caso de falha
Lambda Destinations
: roteia onSuccess e onFailure
Dead-letter queue
: captura eventos que nunca têm sucesso
Nunca descarte silenciosamente um evento com falha
Vamos praticar!
Implantando Aplicações na AWS
Preparing Video For Download...