SAA-C03
SAA-C03 · Revisão
GitHub

CloudFront & Global Accelerator Revisão SAA-C03 · Domínio 3.4 (Redes de alto desempenho) & Edge Networking

1. Amazon CloudFront — Visão Geral

📌 Ideia central
CloudFront aproxima o conteúdo do usuário final, reduzindo latência e distribuindo a carga de requisições, ao invés do usuário sempre buscar o conteúdo direto na origem (que pode estar longe geograficamente).

2. CloudFront — Origins

S3 bucket

VPC Origin

Custom Origin (HTTP)


3. CloudFront at a High Level (fluxo)

🔄 Fluxo de uma requisição
Client | |-- GET /beach.jpg?size=300x300 HTTP/1.1 | User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) | Host: www.example.com | Accept-Encoding: gzip, deflate v CloudFront Edge Location | |-- verifica Local Cache (CACHE) | se HIT --> retorna direto ao Client | se MISS --> "Forward Request to your Origin" v Origin (S3 ou HTTP)

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

🔄 Arquitetura global
Usuários públicos (www) na América --> Edge Los Angeles \ Usuários públicos (www) no Brasil --> Edge São Paulo |--[Private AWS network]--> Origin (S3 bucket) Usuários na Índia --> Edge Mumbai | protegido por: OAC + S3 bucket policy Usuários na Austrália --> Edge Melbourne /

5. CloudFront vs. S3 Cross Region Replication (CRR)

CloudFrontS3 Cross Region Replication
  • Global Edge network
  • Arquivos são cacheados por um TTL (talvez um dia)
  • Ótimo para conteúdo estático que precisa estar disponível em qualquer lugar
  • Deve ser configurado para cada região em que você quer que a replicação ocorra
  • Arquivos são atualizados em near real-time
  • Somente leitura (read only)
  • Ótimo para conteúdo dinâmico que precisa estar disponível com baixa latência em poucas regiões

6. CloudFront — ALB ou EC2 como Origin usando VPC Origins

🔄 Fluxo
Users --> CloudFront (Edge Location) --> VPC Origin --> VPC | Private Subnet: - Application Load Balancer - Network Load Balancer - EC2 Instance

7. CloudFront — ALB ou EC2 como Origin usando Public Network

🔄 Cenário 1 — EC2 direto (sem Load Balancer)
Users --> Edge Location --[Allow Public IP of Edge Locations]--> EC2 Instances (lista em: http://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips) EC2 Instances (Security Group) MUST BE PUBLIC
🔄 Cenário 2 — Com Application Load Balancer
Users --> Edge Location (Public IPs) --[Allow Public IP of Edge Locations]--> Application Load Balancer (Security Group) MUST BE PUBLIC Application Load Balancer --[Allow Security Group of Load Balancer]--> EC2 Instances (Security Group) CAN BE PRIVATE
📌 Diferença-chave
Com VPC Origins (seção 6), o ALB/EC2 pode continuar totalmente privado. Com Public Network (esta seção), o ALB (ou EC2) precisa ser público, liberando o acesso apenas para os IPs públicos das Edge Locations do CloudFront.

8. CloudFront Geo Restriction


9. CloudFront — Cache Invalidations

🔄 Fluxo
Usuário atualiza arquivos --> S3 Bucket (origin) Depois, admin dispara: Invalidate -index.html -/images/* | v CloudFront / \ Edge Location Edge Location (Cache: index.html, /images/*) (Cache: index.html, /images/*) [invalidados] [invalidados] Usuário --[GET /index.html]--> CloudFront --> busca versão atualizada na origem

10. Problema: Usuários Globais para nossa Aplicação

🔄 Ilustração do problema
América --[muitos hops via internet pública]--\ Europa --[muitos hops via internet pública]-- >--> Public ALB (Índia) Austrália --[muitos hops via internet pública]--/

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.

Client --> Servidor A (12.34.56.78) Client --> Servidor B (98.76.54.32) (IPs diferentes para servidores diferentes)

Anycast IP

Todos os servidores compartilham o mesmo endereço IP, e o cliente é roteado para o mais próximo.

Client --> Servidor A (12.34.56.78) Client --> Servidor B (12.34.56.78) (mesmo IP; o roteamento decide qual servidor físico responde)
📌 Por que isso importa
O conceito de Anycast IP é a base de funcionamento do AWS Global Accelerator — ele usa exatamente esse princípio para rotear o tráfego ao ponto de presença mais próximo, sem que o IP do cliente mude.

12. AWS Global Accelerator

🔄 Fluxo
América --> Edge Location \ Europa --> Edge location |--[Private AWS network]--> Public ALB (Índia) Austrália --> Edge location /

Funciona com:

Elastic IP, instâncias EC2, ALB, NLB, públicos ou privados.

Performance consistente

Health Checks

Segurança


13. AWS Global Accelerator vs. CloudFront

CloudFrontGlobal Accelerator
  • Melhora a performance para conteúdo cacheável (como imagens e vídeos)
  • Conteúdo dinâmico (como aceleração de API e entrega dinâmica de sites)
  • O conteúdo é servido na borda (edge)
  • Melhora a performance para uma ampla variedade de aplicações sobre TCP ou UDP
  • Faz proxy dos pacotes na borda para aplicações rodando em uma ou mais Regiões AWS
  • Bom para casos não-HTTP, como jogos (UDP), IoT (MQTT), ou Voice over IP
  • Bom para casos HTTP que exigem IPs estáticos
  • Bom para casos HTTP que exigem failover regional determinístico e rápido