O Amazon Cloudfront é o nosso serviço de CDN. Com a utilização desse serviço, é possível aumentar a performance, disponibilidade e segurança das suas aplicação, nessa apresentação, também será exposto formas de utilização e boas práticas.
O Amazon Cloudfront é o nosso serviço de CDN. Com a utilização desse serviço, é possível aumentar a performance, disponibilidade e segurança das suas aplicação, nessa apresentação, também será exposto formas de utilização e boas práticas.
2.
Agenda
O que é uma CDN?
Como o CloudFront funciona
Case Esporte Interativo – Turner
Funcionalidades do CloudFront
Arquiteturas de Referência
Aplicando melhores práticas
3.
Entrega de conteúdo sem CDN
PoP
PoP
Telefoni
ca
Oi
Redes / peeringProvedores de Conteúdo
Level 3
End User
End User
End User
4.
PoP
PoP
End User
End User
End User
Entrega de conteúdo com CloudFront
Provedores de Conteúdo Redes / peering
5.
CDN => Content Delivery Network
Sem CDN COM CDN
Vantagens de utilizar uma CDN:
• Menor latência de entrega de conteúdo;
• Maior throughput;
• Redução de processamento na origem;
• Mais segurança para a origem;
• Menor custo;
• Melhor gerenciamento da distribuição de
conteúdo.
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
7.
Sem utilizar CloudFront
longas distâncias + rede ruim = alto tempo de carregamento
?
!
* enlace de rede e velocidades fictícias para fins didáticos
~380ms
?
!
~350ms
ec2
52.74.26.30
Name Type Value
exemplo.com A 52.74.26.30
8.
TTL = 60
! TTL =
60
X-Cache: Miss from cloudfront
Utilizando CloudFront
curtas distâncias + rede otimizada = baixo tempo de carregamento
* enlace de rede e velocidades fictícias para fins didáticos
~200ms
?
ec2
52.74.26.30
Name Type Value
exemplo.com ALIAS d23scsjl86er9y.cloudfront.ne
t
~24ms
?
! TTL =
60
?
! TTL =
60
X-Cache: Hit from cloudfront
10.
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
11.
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
12.
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
13.
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
14.
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
15.
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.
ACASADALIGA DOS CAMPEÕES NO BRASIL
Flavio Menna Barreto
Diretor de Tecnologia e
Operações
flavio.menna@turner.com
18.
“A Amazon nos ajuda a conectar, entreter e
transformar a vida das pessoas através da
emoção do Esporte”
Produção e distribuição de conteúdo
de esportes em múltiplas plataformas
Esporte na hora e onde você quiser“Utilizamos a
CloudFront para
distribuir nosso conteúdo
de forma segura,
confiável e com relação
custo x benefício
adequada”
- Maurício Portela, VP de
Mídias Digitais
19.
Desafio
• Eventos ao vivo
• Base de usuários em expansão
• Multi-plataforma / multi-device
• Qualidade do vídeo x internet
usuários
• Custo / usuário
• Métricas para gestão
21.
Benefícios da solução
• Elasticidade para lidar com picos de
tráfego
• Capilaridade e largura de banda
• Performance, disponibilidade e
segurança
• Flexibilidade para uso de outras
CDN’s além da Cloudfront
• Custo variável em função da
demanda
• Informações para monitoramento e
gestão da operação
22.
Elastic Load
Balancing
Conteúdo Dinâmico
Amazon EC2
Conteúdo Estático
Amazon S3 Custom Origin
OR
OR
Custom OriginAmazon CloudFront
Example.com
*.jpg
*.php
Entrega de Conteúdo Estático e Dinâmico
23.
Dinâmico
Estático
Vídeo
Entregue todo o seu conteúdo: entregue todo site
Input do
Usuário
SSL
24.
Funcionalidades: Streaming de Vídeo
Sob Demanda
• Microsoft Smooth Streaming
• HLS
• Flash RTMP
Live Streaming
• Wowza Media Server
• Adobe Media Server
• Microsoft Windows Media Services
25.
Funcionalidades: 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
26.
Signed URLs
Como Funciona
• Web server obtém uma credencial 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.
27.
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 objeto sem precisar
alterar as URLs.
28.
Funcionalidades: 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:
29.
Funcionalidades: Suporte a SSL
Com múltiplas origens, como fazemos com
o SSL? (certificados são associados ao
nome do domínio)
gricardo.s3-website-us-east-1.amazonaws.com
Gricardo-108754258.us-east-1.elb.amazonaws.com
30.
AWS Certificate Manager – Gratuito
• Provisiona certificados SSL/TLS para uso em recursos
AWS:
• Elastic Load Balancing
• Distribuições Amazon CloudFront
• AWS gerencia:
• Geração Key pair e CSR
• Gerenciamento de renovação e deployment
• Domain validation (DV) por e-mail
• Disponível pela AWS Management console, CLI, ou API
31.
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
32.
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
33.
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
34.
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)
35.
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
36.
CloudFront
EC2S3 ELB
53
Balanceamento
Origem não-
AWS
Arquitetura de Referência: 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.
37.
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
38.
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
39.
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...
40.
CloudFront e o Ecossistema 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
41.
Aplicando as Melhores Práticas
Maior segurança
Maior disponibilidade
Melhor performance
Facilidade de debug
Visibilidade
Testando sua Distribuição
42.
Controle de acesso: Restrinja o acesso a Origem
Amazon S3
Origin Access Identify (OAI)
• Previne acesso direto ao seu bucket no
Amazon S3
• Benefícios de performance para todos os
seus clientes.
Custom origin
Bloqueio por endereço IP
Whitelist somente do range de IP do
Amazon CloudFront
• Protege a origem de sobrecarga
• Benefícios de performance para todos
os seus clientes.
43.
Faça log dos request IDs na origem
Nginx:
log_format main '$remote_addr - $remote_user
[$time_local] "$request" ‘ '$status $body_bytes_sent
"$http_referer" ‘ '"$http_user_agent" http_x_forwarded_for"
"$http_x_amz_cf_id"';
Apache:
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i"
"%{User-Agent}i" "%{X-Amz-Cf-Id}i"" combined
44.
Configure response headers na origem
*Strict-Transport-Security: max-age=15552000;
*X-Frame-Options: SAMEORIGIN
*X-XSS-Protection: 1; mode=block Options
*Cache-Control: max-age=300; public
45.
Monitore mudanças de configuração na sua
distribuição
• Use o Cloudtrail
• Receba alarmes quando:
• Distribution é desativada
• Trusted signers é desativado
• Custom TLS certificate são alterados
46.
Métricas quase em tempo real do Cloudfront
• Providos quase em tempo real
• Via Amazon CloudWatch
• Alarme em 6 metrics:
• Requests
• Bytes downloaded
• Bytes uploaded
• 4XX error rate
• 5XX error rate
• Total error rate
47.
Relatórios do Amazon CloudFront para
identificar tendências
• Cache hit/miss
• Incomplete downloads
• Top countries
• Mobile users
• Popular objects
48.
Versionando assets do seu website
<link
href="//assets.example.com/assets/v1/css/jumbotron-narrow.css“
rel="stylesheet">
<link
href="//assets.example.com/assets/v2/css/jumbotron-narrow.css“
rel="stylesheet">
<link
href="//assets.example.com/assets/css/jumbotron-narrow.css?<md5sum>“
rel="stylesheet">
49.
Cache-Control & expires
< Cache-Control: max-age=300
< Cache-Control: max-age=30, s-maxage=3000
< Expires: Thu, 18 Sep 2025 21:34:50 GMT
Min TTL Default TTL Max TTL
Set min, max and default TTL on Amazon CloudFront
52.
Invalidações
• Último recurso
• Aplicado somente no cache do Amazon CloudFront, não é
válido nos browsers ou caches intermediários
53.
Habilitando o modo de desenvolvimento
• Configure o TTL máximo para 0
• Não necessita invalidar o cache constantemente!
• Enviar todos os headers vai mudar o
comportamento
• Faça o Whitelist do seu IP usando o AWS WAF
(permite somente o acesso de dentro da sua
organização)
• Use cookies assinados (signed cookies)
54.
Teste de carga
Teste de carga tradicional
• Usa um único cliente
• De uma única região
• Atinge um único IP
DNS load balancing
Simula ambiente real do usuário
Teste de carga ideal
• Clientes em múltiplas localidades
• Requisições de DNS
independentes
• Distribuição entre vários IPs
DNS load balancing
Simula ambiente real do usuário
Parece que tem um bloqueador de anúncios ativo. Ao listar o SlideShare no seu bloqueador de anúncios, está a apoiar a nossa comunidade de criadores de conteúdo.
Odeia anúncios?
Atualizámos a nossa política de privacidade.
Atualizámos a nossa política de privacidade de modo a estarmos em conformidade com os regulamentos de privacidade em constante mutação a nível mundial e para lhe fornecer uma visão sobre as formas limitadas de utilização dos seus dados.
Pode ler os detalhes abaixo. Ao aceitar, está a concordar com a política de privacidade atualizada.