Otimização de performance e recursos

Implantando Aplicações na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Lento e caro

  • O app fica lento em picos de tráfego
  • A fatura do Lambda dispara no mesmo mês
  • Ajustes deixam mais rápido e mais barato

Um indicador de velocidade e custo mostrando uma função lenta e cara, apontando para otimização

Implantando Aplicações na AWS

Concorrência: custo vs. cold start


Reserved: limitar e proteger

  • Limita e garante capacidade para uma função
  • Controle mais barato, mas não resolve cold starts

Provisioned: pagar por aquecimento

  • Mantém instâncias pré-aquecidas; sem cold start
  • Custa mais; use só onde a latência importa
Implantando Aplicações na AWS

Ajuste de memória com a curva duração-custo

Curva duração-custo conforme a memória aumenta: a linha de duração cai e achata, o custo total forma um U com o ponto ótimo mais barato destacado

  • Mais memória = mais CPU = menor duração
  • Custo = preço da memória x duração
  • O ponto mais barato costuma ser no meio
  • Meça com vários tamanhos e escolha
Implantando Aplicações na AWS

Cache no nível da aplicação

  • Reutilize trabalho no contexto de execução
  • Um Lambda aquecido mantém globais entre chamadas
  • Faça cache de configs, clientes e consultas quentes
  • ElastiCache para cache compartilhado entre instâncias

Cache no contexto de execução do Lambda: objeto de cliente global reutilizado em invocações aquecidas e cluster ElastiCache compartilhando dados quentes entre várias instâncias da função

Implantando Aplicações na AWS

Cache do CloudFront na borda

  • CloudFront: cache de respostas nas bordas
  • Atende repetidos sem bater no backend
  • Chaves de cache podem incluir headers, query strings, cookies
  • Conteúdo estático e cacheável escala de graça

Cache de borda do CloudFront: globo com locais de borda servindo respostas em cache para usuários próximos sem acessar o backend, com configuração de chave de cache mostrando headers e query strings

Implantando Aplicações na AWS

Escolhendo a camada de cache certa

Três camadas de cache empilhadas: CloudFront na borda para conteúdo estático e amplamente compartilhado, cache em memória por instância para objetos quentes e ElastiCache ou DAX para leituras compartilhadas de alta frequência

  • Borda (CloudFront): estático, amplamente compartilhado
  • Aplicação (em memória): objetos quentes por instância
  • Dados (ElastiCache/DAX): leituras quentes compartilhadas
  • Empilhe camadas; cada uma reduz um custo
Implantando Aplicações na AWS

Juntando a otimização

  • Ajuste a memória pela curva duração-custo
  • Adicione concorrência provisionada só onde a latência importa
  • Faça cache nas camadas de borda, app e dados
  • Meça, mude uma coisa, meça de novo

Resumo da otimização: curva duração-custo para ajuste de memória, decisão de concorrência provisionada, diagrama das três camadas de cache e ciclo de iterar medir-mudar-medir

Implantando Aplicações na AWS

Vamos praticar!

Implantando Aplicações na AWS

Preparing Video For Download...