O que é CDN?
Uma Content Delivery Network (CDN) é uma rede de servidores distribuídos geograficamente que armazena cópias em cache do seu conteúdo próximo aos usuários finais. Isso reduz a latência e melhora a velocidade de entrega de conteúdo como páginas web, imagens, vídeos e APIs.
O Amazon CloudFront é o serviço de CDN da AWS que entrega dados, vídeos, aplicações e APIs para clientes globalmente com baixa latência e altas velocidades de transferência.
Conceitos-Chave
Distribuições
Configuração que define como o CloudFront entrega seu conteúdo. Existem dois tipos:
- Web Distribution: Para sites, APIs e conteúdo HTTP/HTTPS
- RTMP Distribution: Para streaming de mídia (descontinuado)
Origins
A origem do conteúdo que o CloudFront distribui. Pode ser:
- S3 Bucket: Armazenamento de objetos estáticos
- EC2 Instance: Servidor de aplicação
- Elastic Load Balancer: Distribuição de tráfego
- Custom Origin: Qualquer servidor HTTP/HTTPS
Edge Locations
Pontos de presença (PoPs) onde o conteúdo é armazenado em cache. São mais de 400 edge locations globalmente, separadas das Regiões e Zonas de Disponibilidade da AWS.
- Usuários acessam o conteúdo da edge location mais próxima
- Se o conteúdo não está em cache, é buscado da origem
- Edge locations também podem receber dados (não são somente leitura)
Cache
Armazenamento temporário de conteúdo nas edge locations:
- TTL (Time to Live): Tempo que o objeto permanece em cache
- Cache Invalidation: Remove objetos do cache antes do TTL expirar
- Cache Behaviors: Regras que definem como diferentes tipos de conteúdo são tratados
Regional Edge Caches
Camada intermediária entre edge locations e origins. Armazena conteúdo menos popular por mais tempo, reduzindo a carga na origem.
Recursos Importantes
Segurança
- HTTPS: Suporte a SSL/TLS para conexões seguras
- Signed URLs/Cookies: Controle de acesso a conteúdo privado
- Origin Access Identity (OAI): Restringe acesso ao S3 apenas via CloudFront
- AWS WAF: Integração para proteção contra ataques web
- AWS Shield: Proteção contra DDoS incluída
Performance
- Compressão automática de arquivos (Gzip, Brotli)
- HTTP/2 e HTTP/3 suportados
- Lambda@Edge para executar código nas edge locations
- CloudFront Functions para manipulação leve de requisições
Monitoramento
- Integração com CloudWatch para métricas
- Logs de acesso detalhados
- Relatórios de uso e estatísticas
Casos de Uso
- Acelerar entrega de sites estáticos e dinâmicos
- Streaming de vídeo (ao vivo e sob demanda)
- Distribuição de APIs com baixa latência
- Distribuição de software e patches
- Proteção contra DDoS e picos de tráfego
- Entrega de conteúdo para usuários globais
CloudFront vs S3
| Aspecto | CloudFront | S3 |
|---|---|---|
| Propósito | Distribuição de conteúdo (CDN) | Armazenamento de objetos |
| Latência | Baixa (cache global) | Depende da região |
| Alcance | 400+ edge locations globais | Regional |
| Custo | Paga por transferência de dados | Paga por armazenamento + transferência |
| Uso Ideal | Conteúdo acessado frequentemente | Armazenamento de origem |
Juntos: S3 armazena o conteúdo original, CloudFront distribui globalmente com cache.
💡 Pontos Importantes para a Certificação
- CloudFront é um serviço global - não está vinculado a uma região específica
- Edge locations são diferentes de Regiões e AZs - são pontos de cache
- Conteúdo é armazenado em cache por um período (TTL)
- Você pode invalidar cache manualmente (mas há custo)
- CloudFront pode usar S3, EC2, ELB ou qualquer servidor HTTP como origem
- Signed URLs/Cookies controlam acesso a conteúdo privado
- OAI (Origin Access Identity) restringe acesso ao S3 apenas via CloudFront
- Proteção DDoS com AWS Shield Standard incluída gratuitamente
- Lambda@Edge executa código próximo aos usuários
- CloudFront reduz carga na origem e melhora performance
🎯 Dicas de Estudo
- Entenda a diferença entre edge location, regional edge cache e origem
- Saiba quando usar CloudFront vs acessar S3 diretamente
- Memorize que CloudFront é global, não regional
- Conheça os métodos de segurança: HTTPS, Signed URLs, OAI, WAF
- Lembre que edge locations podem receber dados (PUT/POST), não só ler
- Cache invalidation tem custo - planeje TTLs adequadamente
- CloudFront + S3 é uma combinação comum para sites estáticos
- Lambda@Edge permite personalização de conteúdo por localização
