No SAP-C02, desempenho e custo parecem forcas opostas, mas o exame testa sua capacidade de encontrar solucoes que satisfacam ambos simultaneamente. "Atinja o objetivo de desempenho da forma mais economica" e o formato tipico de questao. Este post cobre sistematicamente camadas de caching, selecao de banco de dados de proposito especifico, otimizacao de armazenamento e estrategias de reducao de custos.
Camadas de caching — ElastiCache Redis vs Memcached
ElastiCache usa caching em memoria para reduzir a carga do banco de dados e encurtar os tempos de resposta para microsegundos.
| Item | Redis | Memcached | |------|-------|----------| | Estruturas de dados | String, Hash, List, Set, Sorted Set, Stream | Apenas String | | Replicacao e HA | Multi-AZ, failover automatico | Nao suportado | | Persistencia | Snapshots AOF/RDB | Nao suportada | | Armazenamento de sessao distribuido | Muito adequado | Possivel mas limitado | | Multi-threading | Limitado | Totalmente multi-thread | | Geoespacial | Suportado | Nao suportado |
Escolha Redis quando precisar de alta disponibilidade, persistencia ou estruturas de dados complexas. Escolha Memcached quando precisar de um cache simples de alto desempenho e o multi-threading for importante.
DynamoDB DAX e um cache em memoria com uma API totalmente compativel com DynamoDB. Apenas troque o endpoint para DAX e obtenha tempos de resposta em microsegundos. DAX e a solucao direta para partitions quentes onde leituras repetidas se concentram.
MemoryDB for Redis e compativel com Redis mas garante durabilidade de dados atraves de um log de transacoes Multi-AZ. Oferece maior durabilidade que o ElastiCache Redis padrao e e adequado para padroes que usam Redis como banco de dados primario.
!ElastiCache Redis vs Memcached
CloudFront — Origin Shield, Lambda@Edge
CloudFront faz cache de conteudo em mais de 450 localizacoes de edge no mundo todo, reduzindo a carga do servidor de origem e servindo respostas do edge mais proximo ao usuario.
Origin Shield adiciona uma camada extra de caching entre os caches de edge regional do CloudFront e a origem. Minimiza o numero de requisicoes que chegam a origem, reduzindo a carga da origem e os custos de transferencia de dados.
Lambda@Edge executa funcoes Lambda em localizacoes de edge do CloudFront. Voce pode modificar cabecalhos HTTP ou lidar com autenticacao antes de as requisicoes chegarem a origem.
A distincao entre Signed URL e Signed Cookies do CloudFront importa. Signed URL e um token de acesso de uso unico para um arquivo individual. Signed Cookies controlam o acesso a multiplos arquivos correspondendo a um padrao de caminho com um unico cookie. Para streaming de video onde voce precisa controlar o acesso a muitos arquivos, escolha Signed Cookies.
Otimizacao de desempenho do DynamoDB
O desempenho do DynamoDB depende muito do design da chave de particao. Para evitar particoes quentes, escolha atributos com alta cardinalidade como chave de particao, ou adicione um sufixo aleatorio a chaves de particao compostas.
Um GSI usa uma chave de particao e chave de classificacao diferentes da tabela base e pode ser adicionado apos a criacao da tabela. Um LSI usa a mesma chave de particao com uma chave de classificacao diferente e so pode ser adicionado no momento da criacao da tabela.
DynamoDB TTL adiciona um atributo de timestamp Unix aos itens e os exclui automaticamente quando expiram. O padrao de rotacao de tabelas e mais eficiente para exclusoes em massa: crie uma nova tabela a cada mes e exclua tabelas antigas com DeleteTable, consumindo zero WCU.
Desempenho do Aurora — Read Replicas, Global DB, Serverless v2
Aurora Read Replicas compartilham o volume do cluster, o que significa que o atraso de replicacao e minimo. O Reader Endpoint balanceia a carga entre todas as Read Replicas para distribuir as consultas de leitura. Habilitar Aurora Auto Scaling ajusta automaticamente o numero de Replicas com base na carga de leitura.
Aurora Global Database mantem o atraso de replicacao entre regioes abaixo de um segundo. Aurora Serverless v2 ajusta a capacidade automaticamente em segundos, ideal para aplicacoes com padroes de trafego imprevistos.
Tipos de armazenamento EBS e desempenho S3
EBS gp3 fornece 3.000 IOPS de linha de base independentemente do tamanho do volume. io2 Block Express fornece ate 256.000 IOPS para cargas de trabalho de banco de dados.
S3 multipart upload divide arquivos grandes em partes para upload paralelo. S3 Transfer Acceleration roteia uploads atraves de localizacoes de edge do CloudFront. Para cargas de trabalho HPC, escolha FSx for Lustre.
Otimizacao de custos — Savings Plans, Spot, Right-sizing
| Opcao | Desconto | Compromisso | Melhor para | |-------|----------|-------------|------------| | Compute Savings Plans | Ate 66% | 1 ou 3 anos | EC2, Fargate, Lambda; flexivel em regiao/familia | | EC2 Instance Savings Plans | Ate 72% | 1 ou 3 anos | Regiao mais familia de instancia fixas | | Reserved Instance | Ate 72% | 1 ou 3 anos | Cargas de trabalho estaveis e previsiveis | | Spot Instance | Ate 90% | Nenhum | Cargas batch ou sem estado interrutiveis |
Compute Savings Plans se aplicam a EC2, Fargate e Lambda. O desconto persiste mesmo ao mudar regioes ou familias de instancias. Spot Instances oferecem ate 90% de desconto. Colocar SQS na frente de um Spot Fleet significa que quando uma Spot Instance e interrompida, a tarefa em andamento retorna automaticamente para a fila SQS para reprocessamento sem perda.
S3 Intelligent-Tiering move automaticamente objetos que nao foram acessados em 30 dias para o nivel de Infrequent Access. S3 Standard-IA e Glacier Instant Retrieval tem uma duracao minima de armazenamento de 30 dias. Quando uma questao pede armazenamento economico para dados armazenados por menos de 30 dias, escolha S3 Standard.
Pontos-chave do exame
"Cache com alta disponibilidade mais estruturas de dados complexas" -- ElastiCache Redis
"Cache simples de alto desempenho mais multi-threading" -- ElastiCache Memcached
"Melhorar desempenho de leitura de particao quente DynamoDB com minima mudanca de codigo" -- DAX
"Compativel com Redis mais garantia de durabilidade de dados" -- MemoryDB for Redis
"Camada extra de caching para minimizar carga da origem CloudFront" -- Origin Shield
"Controlar acesso a multiplos arquivos simultaneamente" -- CloudFront Signed Cookies
"Excluir grandes quantidades de dados DynamoDB expirados com zero WCU" -- rotacao de tabelas
"Auto-scaling de leitura Aurora" -- Aurora Auto Scaling mais Reader Endpoint
"Trafego imprevisto, auto-scaling em segundos" -- Aurora Serverless v2
"Cobre EC2/Fargate/Lambda, flexivel em regiao" -- Compute Savings Plans
"Ate 90% de desconto para trabalhos batch interrutiveis" -- Spot Instance mais SQS
"Auto-tiering de dados com padroes de acesso irregulares" -- S3 Intelligent-Tiering
"Classe S3 sem duracao minima de armazenamento" -- S3 Standard
"Sistema de arquivos paralelo de alto desempenho HPC" -- FSx for Lustre