2. Agenda
O que é uma CDN?
Como o CloudFront funciona
Por que CloudFront?
CloudFront: Conteúdo Estático e Dinâmico.
Arquiteturas com CloudFront
3. CDN => Content Delivery Network
Sem CDN COM CDN
Vantagens de utilizar uma CDN:
• Menor latência de entrega de conteúdo;
• maior throuput;
• Redução de processamento na origem;
• Mais segurança para a origem;
• Menor custo;
• Melhor gerenciamento da distribuição de
conteúdo.
4. Entrega de conteúdo sem CDN
PoP
PoP
Telefoni
ca
Oi
Redes / peeringProvedores de Conteúdo
Level 3
End User
End User
End User
6. O que uma CDN Deveria Fazer
• Performance: entrega de conteúdo com baixa
latência, alto throughput e alta disponibilidade
• Alcance e Funcionalidade: prover uma rede global
de edge locations para alcançar uma grande
audiência de maneira otimizada
• Custo: assegurar uma viabilidade financeira
8. CloudFront: Content Delivery Network
• Rede de cache completa
• Infraestrutura global
• Afinado para performance otimizada
• Massivamente escalável
• Altamente Segura
• Self Service
• Precificado para minimizar custo
9. Alcance: Rede Global de Distribuição do CloudFront
América do
Norte
América do Sul Europa Ásia
Super POPs Países Continentes
Região AWS CloudFront Edge Location
10. Custo de CloudFront: Opções competitivas e flexíveis
• Sob demanda, pague pelo
uso
• Mesmos preços para
conteúdos estáticos e
dinâmicos
• Opção de comprometimento
• Modelo de Gb entregues
PriceperGB
Data Transfer
Data Transfer
Economies of Scale
Public Rates Private Rates
11. Preço do CloudFront: Classe de Preços
Performance / Otimização de custo sob demanda
All
North America + Europe
North America + Europe + Asia
Entrega de conteúdo global e controle de preço para ajustar com os objetivos de custo e performance
12. Custo de CloudFront: Opções competitivas e flexíveis
Regional Data Transfer Out to Internet (per GB)
Regional Data Transfer Out to Origin (per GB)
Request Pricing for All HTTP Methods (per 10,000)
* No caso de uso de S3 ou EC2/ELB estes valores não são cobrados.
13. Entrega de Conteúdo Para Qualquer Segmento de Mercado
• Media e Entretenimento
• Jogos
• eCommerce
• Digital Advertising
• Download de Software
• Websites dinâmicos e Aplicações
14. Entrega para qualquer caso de uso
Download
• Download
progressivo
• Sites estáticos
• Aplicações
• A/V players
Vídeo sob demanda
• Internet TV
• OTT
• Web
• Mobile
Eventos ao vivo
• Música
• Esportes
• Jogos
• Notícias
Publicação
• Site dinâmico
• Site inteiro
• Notícias, clima, etc
17. Funcionalidades do CloudFront
Streaming de Vídeo
• RTMP (Flash) and HTTP(S)
• Adaptive Bitrate Streaming (HLS, HDS, Smooth, MPEG-
DASH)
Segurança
• Conteúdo Privado
• SSL, TLS/SNI
• Advanced SSL (perfect forwarding, OCSP stapling,
session tickets)
• Geo Restriction
• Custom Header
Gerenciamento de Conteúdo
• AWS Management Console
• Total controle via APIs
• Invalidação programática
• Relatórios e gráficos online
• Industry-compliant, Access Logs detalhado
Aceleração de Conteúdo Dinâmico
• Período Mínimo de Expiração de Conteúdo (TTL=0)
• Múltiplos Cache Behaviors
• Múltiplos Origin Servers
• CORS Support
• Origin Connection Protocol
• Viewer Connection Protocol
• Zone Apex
• Query String & Cookie
• Put/Post HTTP Verb
• Full VARY Support
• Detecção do User Agent
• Geo Targeting
• Multi-Site Hosting
• GZIP Compression
Flexibilidade de Preço
• On Demand Pague pelo Uso
• Price Classes
• Preço Privado para Comprometimento de Uso
18. Funcionalidades do CloudFront: Streaming de Vídeo
• Sob Demanda
– Microsoft Smooth Streaming
– HLS
– Flash RMTP
• Live Streaming
– Wowza Media Server
– Adobe Media Server
– Microsoft Windows Media Services
19. Funcionalidades do CloudFront: Proteção do Conteúdo
Problema – se mover meu conteúdo estático para o S3 e
usar o CloudFront como posso me proteger de um acesso
não autorizado?
Solução – Signed URLs ou Signed HTTP Cookies
20. Signed URLs
• Como Funciona
– Web server obtém uma credencia temporária para o conteúdo do S3
– Cria uma Signed URL baseada nessa credencial que permite o
acesso
– Provê esse link ao cliente
– Link é válido por um período de tempo
O AWS SDK gerencia toda a complexidade deste
processo automaticamente.
21. Signed HTTP Cookies
• O que faz?
– Provê o mesmo nível de controle da Signed URL incluindo a
assinatura em um HTTP cookie
– Isso permite que você restrinja o acesso à múltiplos objetos
(autenticação do site inteiro) ou à um único obejto sem preicsar
alterar as URLs.
22. Funcionalidades do CloudFront: Compressão de Gzip
Automática
Compressão de Gzip pode ser habilitada nas distribuições
permitindo que suas páginas sejam carregadas mais
rápidas, melhora o donwload de conteúdo, e a cobrança de
dados transferidos pelo CloudFront talvez reduza;
Para habilitar, simplesmente localize sua distribuição e
configure Compress Objects Automatically para Yes dentro
das opções de Behavior:
23. Funcionalidades do CloudFront: Suporte a SSL
Com múltiplas origens, como fazemos com
o SSL? (certificados são associados ao
nome do domínio)
biffgaut.s3-website-us-east-1.amazonaws.com
BiffGaut-108754258.us-east-1.elb.amazonaws.com
24. CloudFront e o Ecosistema da AWS
• Integra com recursos da AWS
– Route 53 DNS
– Amazon Elastic Transcoder
– Amazon S3
– EC2 Compute e Elastic Load Balancing
– Marketplace SaaS e SI parceiros
– AWS WAF
– AWS ACM
• Melhora a escalabilidade de
outros recursos
• Descontos na transferência de dados
do Amazon S3 e EC2 para CloudFront
Conteúdo estático
Servido do S3
*.jpg, *.m3u8, *.ts, *.css
Conteúdo
estático ou
dinâmico
Servido do ELB e/ou
EC2
*.php, *.js, *m3u8, *.ts
Conteúdo estático
ou dinâmico
Servido de uma origem não
AWS
*.php, *.js, *m3u8, *.ts
25. POST /2012-07-01/distribution HTTP/1.1
Host: cloudfront.amazonaws.com
Authorization: AWS authentication string
Date: time stamp
Other required headers
<?xml version="1.0" encoding="UTF-8"?>
<DistributionConfig
xmlns="http://cloudfront.amazonaws.com/doc/2
012-07-01/">
Gerencie seu conteúdo da sua maneira
API Console
Gerenciamento e Relatório
26. Suporte ao Cliente: Ajuda Quando Você Precisa
• Self Service
• Documentação atualizada
• Suporte 24/7*
• Arquiteto de Soluções e Gerente de Contas
* Depende do nível de Suporte contratado (http://aws.amazon.com/premiumsupport/)
27. CloudFront
Comece a Entregar seu Conteúdo Hoje!
• Sign Up simples para criar sua conta
• Sem taxa para usar a plataforma
• Nenhuma programação necessária
• Sem necessidade de rearquitetar
• Operacional em 15 minutos
aws.amazon.com/cloudfront
28. CloudFront: Como Funciona
Casos de Uso Comuns
Entrega de conteúdo estático
Entrega de conteúdo dinâmico
Custom Origins
Behaviors
Páginas de erro
Invalidações de cache
Media e Entretenimento
Progressive Video Playback e Download
Streaming de Media – Adaptive Bitrate Video sob demanda (VoD)
Streaming de Media – Ao vivo
29. Métricas e Relatórios Operacionais
• Bytes Downloaded, Bytes Uploaded
• Total Requests
• 4xx Error Rate, 5xx Error Rate e Total Error Rate
• Cache Hits e Cache Misses
• Bytes totais transferidos pelo CloudFront
• Por código HTTP
• Dowloads completos e incompletos
• Objetos mais populares
• Armazena Access Logs no S3
37. Elastic Load
Balancing
Dynamic Content
Amazon EC2
Static Content
Amazon S3 Custom Origin
OR
OR
Custom OriginAmazon CloudFront
example.com
*.jpg
*.php
Arquitetura de Referência: Visão Geral
Entrega de Conteúdo Estático e Dinâmico
38. Arquitetura de Referência: Visão Geral
Streaming pelo CloudFront
LondonSingapore NY
Estático ou
Dinâmico
Servido pelo ELB e/ou EC2
*.php, *.js, *m3u8, *.ts
Estático
Servido pelo S3
*.jpg, *.m3u8, *.ts, *.css
Estático ou Dinâmico
Servido de uma origem personalizada
*.php, *.js, *m3u8, *.ts
• Entregue conteúdo estático e
dinâmico
• Desonere o tráfego da origem
para o CloudFront
• Sirva grandes eventos AO
VIVO para uma larga audiência
• Sirva VOD para qualquer
dispositivo
• Altere o conteúdo baseado no
User Agent
• SSL
• Autentique com URLs
Assinadas
Origem do evento
ao vivo
RTMP
39. CloudFront
Arquitetura de Referência: Seleção de Origens do CloudFront
Origin Sourcing Based on Intelligent Behavior Rules
Customer Location
www.mysite.com
Path Pattern Matching
/*.jpg; /*.php etc.
GET http://mysite.com/images/1.jpg to ORIGIN A
GET http://mysite.com/index.php to ORIGIN B
GET http://mysite.com/web/home.css to ORIGIN C
GET http://mysite.com/* (DEFAULT) to ORIGIN D
Origin A:
origin.mysite.com
Origin B:
origin2.mysite.com
Origin C:
origin3.mysite.com
Origin D:
origin4.mysite.com
Combine padrões de path
/*.php
/images/*.jpg
/web/*.css
/*.* (DEFAULT)
40. CNAME =
xyz.cloudfront.net
CloudFront
53
Balanceamento
Endpoint
Não-AWS
Arquitetura de Referência: Balanceamento de Carga
Balanceie a carga entre seus provedores usando o Route 53
Customer Location
www.mysite.com
Weighted Round Robin Routing
CNAME = xyz.cloudfront.net, weight = 0-255
CNAME = xyz.somecdn.com, weight = 0-255
CNAME =
xyz.somecdn.com
Latency Based Routing
CNAME = xyz.cloudfront.net, latency metric
CNAME = xyz.somecdn.com, latency metric
Fail Over Routing
CNAME = xyz.cloudfront.net, PRIMARY
CNAME = xyz.somecdn.com, SECONDARY
Geolocation Routing
CNAME = xyz.cloudfront.net, LOCATION 1…LOCATION X
CNAME = xyz.somecdn.com, LOCATION 2…LOCATION Y
41. CloudFront
EC2S3 ELB
53
Balanceamento
Origem não-
AWS
Reference Architecture: Roteamento Inteligente
Usando CloudFront com Route 53
Customer Location
www.mysite.com
Use Route 53 para rotear
entre CDN, S3, ELB
(balanceador), EC2
(web/servidor de aplicação)
e uma origem não-AWS.
42. Arquitetura de Referência: Regras de Roteamento
Escolha geográfica do PoP e Geo-Blocking
Customer Location
1 Requisição para www.mysite.com
Localidade A: PoP em New York
Localidade B: PoP em London
Localidade C: acesso negado ao conteúdo
baseado nas regras de Geo
Localidade D: PoP dentro da Price Class
3
Examine a origem Geo, latência, classe de
preço
CloudFront PoP
New York
1 2
3
4
4 Retorna o Endereço IP ou nega a
requisição
2
CloudFront
CloudFront PoP
London
CloudFront PoP
Paris
CloudFront PoP
Miami
X
New York London France Argentina
43. Arquitetura de Referência: HTTP Headers
Varie seu conteúdo baseado nos HTTP Headers
HTML HEADERS Suportados
• Accept
• Accept-Charset
• Accept-Datetime
• Accept-Language
• Authorization
• CloudFront-Forward-Proto
• CloudFront-Is-Desktop-Viewer
• CloudFront-Is-Mobile-Viewer
• CloudFront-Is-Tablet-Viewer
• CloudFront-Viewer-Country
• Host
• Origin
• Referrer
44. Header use for CloudFront
Header Use
Accept Determine which content types are acceptable for the response
Accept-Charset Determine which Character sets that are acceptable
Accept-Datetime Determine which version in time is acceptable
Accept-Language Determine the list of acceptable human languages for response
Authorization Used for credentials for HTTP authentication
CloudFront-Forward-Proto
HTTP protocol detected to vary content based on session security (SSL vs. Non
SSL)
CloudFront-Is-Desktop-Viewer CloudFront user agent (UA) detected and set to desktop based on mapping
CloudFront-Is-Mobile-Viewer CloudFront user agent (UA) detected and set to mobile based on mapping
CloudFront-Is-Tablet-Viewer CloudFront user agent (UA) detected and set to tablet based on mapping
CloudFront-Viewer-Country CloudFront geo detected country code
Host domain name and TCP port of the server
Origin used for CORS, sets allowed domain for origin to honor and share assets
Referrer sends URL/URI to origin to log referrers
45. Arquitetura de Referência: Regras de Roteamento
Headers, Cookies, Query Strings
Customer Location
1 Requisição para www.mysite.com
User A: cache específico de mobile
User B: cache específico de geo
User C: cache HTTP ou HTTPS
User D: cache multi-site, retorna diferentes
sites do mesmo host
3
Examina e encaminha os host headers
CloudFront PoP
New York
1 2
3
4
4
2
CloudFront
CloudFront PoP
London
CloudFront PoP
Paris
CloudFront PoP
Miami
Mobile User
In New York
Geo-Specific Content
for user in
Amsterdam
Multi-Site DeliveredHTTPS or HTTP Delivery
based on request type
Retorna conteúdo específico ao usuário
46.
47. Arquitetura de Referência: CloudFront + WAF
Tradicional
CloudFront
Edge
Location
users
hackers
bad bots
site
scraping
SQL Injection,
XSS, other attacks
legitimate
traffic
WAF em EC2 e ”ELB sandwich”, mais complexidade e latência
EC2ELBWAFELB
ELB Sandwich
Customer On Premises Environment
Origin Origin StorageWAF
48. CloudFront
Edge
Location WAF
users
hackers
bad bots
site
scraping
SQL Injection,
XSS, outros
ataques
Tráfego legítimo
Tráfego malicioso é bloqueado pelo WAF na borda
-Pode ser origem não-AWS
-Pode ser conteúdo estático e dinâmico
EC2ELBS3
E/OU
Seu datacenter
Servidor Armazenamento
Arquitetura de Referência: CloudFront + AWS WAF
Se proteja de ataques DDoS, SQL Injection...