CloudFront & Global Accelerator Revisão SAA-C03 · Domínio 3.4 (Redes de alto desempenho) & Edge Networking
1. Amazon CloudFront — Visão Geral
- Content Delivery Network (CDN).
- Melhora a performance de leitura, pois o conteúdo é cacheado na borda (edge).
- Melhora a experiência dos usuários.
- Centenas de Points of Presence globalmente (edge locations, caches).
- Proteção contra DDoS (por ser distribuído mundialmente), com integração ao AWS Shield e ao AWS Web Application Firewall (WAF).
2. CloudFront — Origins
S3 bucket
- Para distribuir arquivos e cacheá-los na borda.
- Para fazer upload de arquivos para o S3 através do CloudFront.
- Protegido usando Origin Access Control (OAC).
VPC Origin
- Para aplicações hospedadas em subnets privadas de uma VPC.
- Suporta Application Load Balancer (privado) / Network Load Balancer (privado) / instâncias EC2.
Custom Origin (HTTP)
- Site estático em S3 (é necessário primeiro habilitar o bucket como um site estático S3).
- Qualquer backend HTTP público que você quiser (exemplo: um ALB público).
3. CloudFront at a High Level (fluxo)
Ou seja: o cliente sempre fala com a Edge Location mais próxima; se o conteúdo já estiver em cache lá, a resposta é imediata. Se não estiver, o CloudFront busca na origem (S3 ou HTTP) e a partir daí passa a servir do cache.
4. CloudFront — S3 as an Origin
- As edge locations se comunicam com o bucket S3 (origin) através da rede privada da AWS (Private AWS), não pela internet pública.
- A segurança é garantida por Origin Access Control (OAC) + S3 bucket policy, garantindo que apenas o CloudFront (e não o público direto) acesse o bucket.
5. CloudFront vs. S3 Cross Region Replication (CRR)
| CloudFront | S3 Cross Region Replication |
|---|---|
|
|
6. CloudFront — ALB ou EC2 como Origin usando VPC Origins
- Permite entregar conteúdo a partir de aplicações hospedadas em subnets privadas da sua VPC (sem precisar expô-las na Internet).
- Entrega tráfego para recursos privados:
- Application Load Balancer
- Network Load Balancer
- Instâncias EC2
7. CloudFront — ALB ou EC2 como Origin usando Public Network
8. CloudFront Geo Restriction
- Você pode restringir quem pode acessar sua distribution.
- Allowlist: permite que seus usuários acessem seu conteúdo somente se estiverem em uma lista de países aprovados.
- Blocklist: impede que seus usuários acessem seu conteúdo se estiverem em uma lista de países banidos.
- O "país" é determinado usando um banco de dados Geo-IP de terceiros.
- Caso de uso: leis de direitos autorais (Copyright Laws) para controlar acesso ao conteúdo.
9. CloudFront — Cache Invalidations
- Caso você atualize a origem no back-end, o CloudFront não sabe disso e só vai buscar o conteúdo atualizado depois que o TTL expirar.
- No entanto, você pode forçar um refresh total ou parcial do cache (contornando o TTL), realizando uma CloudFront Invalidation.
- Você pode invalidar todos os arquivos (*) ou um caminho específico (ex: /images/*).
10. Problema: Usuários Globais para nossa Aplicação
- Você implantou uma aplicação e tem usuários globais que querem acessá-la diretamente.
- Eles passam pela internet pública, o que pode adicionar muita latência devido a vários "hops" (saltos entre roteadores/redes).
- Desejamos ir o mais rápido possível através da rede da AWS, para minimizar a latência.
Este é o problema que motiva o uso do AWS Global Accelerator, apresentado a seguir.
11. Unicast IP vs. Anycast IP
Unicast IP
Um servidor possui um endereço IP.
Anycast IP
Todos os servidores compartilham o mesmo endereço IP, e o cliente é roteado para o mais próximo.
12. AWS Global Accelerator
- Aproveita a rede interna da AWS para rotear o tráfego até sua aplicação.
- 2 IPs Anycast são criados para a sua aplicação.
- O IP Anycast envia o tráfego diretamente para as Edge Locations.
- As Edge Locations enviam o tráfego para a sua aplicação.
Funciona com:
Elastic IP, instâncias EC2, ALB, NLB, públicos ou privados.
Performance consistente
- Roteamento inteligente para a menor latência e failover regional rápido.
- Sem problema com cache do cliente (porque o IP não muda).
- Usa a rede interna da AWS.
Health Checks
- O Global Accelerator realiza health checks das suas aplicações.
- Ajuda a tornar sua aplicação global (failover em menos de 1 minuto para instâncias não saudáveis).
- Ótimo para disaster recovery (graças aos health checks).
Segurança
- Apenas 2 IPs externos precisam ser colocados em whitelist.
- Proteção contra DDoS graças ao AWS Shield.
13. AWS Global Accelerator vs. CloudFront
- Ambos usam a rede global da AWS e suas edge locations ao redor do mundo.
- Ambos os serviços se integram ao AWS Shield para proteção contra DDoS.
| CloudFront | Global Accelerator |
|---|---|
|
|