Quando um aplicativo e lento, os usuarios vao embora. O exame AWS DVA-C02 pergunta como tornar seu aplicativo mais rapido. Vamos cobrir temas essenciais desde otimizacao do Lambda ate estrategias de cache.
Otimizacao de Concorrencia do Lambda
O que e Concorrencia?
Concorrencia e o numero de instancias de funcoes Lambda executando simultaneamente em um momento. Se 100 usuarios enviam requisicoes ao mesmo tempo, o Lambda executa 100 instancias.
O limite padrao e 1.000 por regiao. Quando excedido, ocorre throttling (erro 429). Como um restaurante lotado que nao pode receber mais clientes.
Duas Estrategias de Concorrencia
Concorrencia Reservada (Reserved Concurrency): Pre-aloca capacidade fixa para uma funcao especifica. Protege funcoes importantes de serem bloqueadas por outras funcoes consumindo toda a capacidade.
Concorrencia Provisionada (Provisioned Concurrency): Pre-aquece ambientes de execucao eliminando cold starts (tempo extra de inicializacao na primeira invocacao). Gera custo adicional.
Otimizacao de Memoria do Lambda
Alocar mais memoria tambem aumenta CPU e largura de banda de rede.
Fato interessante: dobrar a memoria pode reduzir o tempo de execucao pela metade — mantendo ou reduzindo os custos.
AWS Lambda Power Tuning testa automaticamente multiplas configuracoes de memoria e encontra o tamanho ideal.
Estrategias de Cache
Cache armazena dados frequentes em armazenamento rapido para nao buscar na fonte lenta toda vez. Como ter livros usados com frequencia na mesa em vez de na biblioteca.
| Alvo | Servico | Proposito | |------|---------|----------| | Respostas API | CloudFront | Cache em servidores edge globais, reduz latencia | | Leituras BD | ElastiCache (Redis) | Cache de dados frequentes na memoria | | DynamoDB | DAX | Cache dedicado, respostas em microssegundos | | API Gateway | API Gateway Cache | Cache de respostas por stage |
Otimizacao de Mensagens
SNS Filter Policies
Cada assinante recebe apenas mensagens relevantes. Ex: servico de pedidos recebe apenas "type=order". Reduz processamento desnecessario.
SQS Batch Size
Configurar quantas mensagens o Lambda busca de uma vez. Mais mensagens por lote = menos invocacoes = menos custo.
Exemplo: 100 mensagens, batch size 10 = 10 invocacoes (vs 100 com batch size 1).
Identificando Gargalos
X-Ray: Visualiza latencia entre servicos CloudWatch Logs Insights: Analisa consultas lentas e padroes de erros Lambda Insights: Monitora memoria, tempo de execucao e cold starts
Pontos-Chave do Exame
"Eliminar cold starts do Lambda" -- Provisioned Concurrency
"Prevenir throttling do Lambda" -- Reserved Concurrency
"Encontrar memoria ideal do Lambda" -- Lambda Power Tuning
"Cache de API global" -- CloudFront
"Cache do DynamoDB em microssegundos" -- DAX
"Receber apenas mensagens correspondentes" -- SNS Filter Policies
"Reduzir invocacoes Lambda" -- SQS batch size maior
"Visualizar gargalos" -- X-Ray Service Map
Mais memoria = mais CPU = tempo de execucao possivelmente menor