Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação
-
Upload
amazon-web-services-latam -
Category
Technology
-
view
2.278 -
download
0
Transcript of Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação
![Page 1: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/1.jpg)
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Ricardo Geh, Enterprise Solutions Architect
Junho 2016
Usando Amazon CloudFront para aumentar
performance, disponibilidade e cache na sua
aplicação
![Page 2: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/2.jpg)
Agenda
O que é uma CDN?
Como o CloudFront funciona
Case Esporte Interativo – Turner
Funcionalidades do CloudFront
Arquiteturas de Referência
Aplicando melhores práticas
![Page 3: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/3.jpg)
Entrega de conteúdo sem CDN
PoP
PoP
Telefonica
Oi
Redes / peeringProvedores de Conteúdo
Level 3
End User
End User
End User
![Page 4: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/4.jpg)
PoP
PoP
End User
End User
End User
Entrega de conteúdo com CloudFront
Provedores de Conteúdo Redes / peering
![Page 5: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/5.jpg)
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.
![Page 6: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/6.jpg)
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
![Page 7: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/7.jpg)
Sem utilizar CloudFrontlongas 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
![Page 8: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/8.jpg)
TTL = 60! TTL =
60
X-Cache: Miss from cloudfront
Utilizando CloudFrontcurtas 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
![Page 9: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/9.jpg)
DEMO
![Page 10: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/10.jpg)
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
![Page 11: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/11.jpg)
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
![Page 12: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/12.jpg)
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
Pri
ce p
er
GB
Data Transfer
Data Transfer Economies of Scale
Public Rates Private Rates
![Page 13: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/13.jpg)
Preço do CloudFront: Classe de PreçosPerformance / 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
![Page 14: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/14.jpg)
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
![Page 15: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/15.jpg)
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
![Page 16: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/16.jpg)
CloudFront Refências: M&E
![Page 17: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/17.jpg)
A CASA DA LIGA DOS CAMPEÕES NO BRASIL
Flavio Menna BarretoDiretor de Tecnologia e Operaçõ[email protected]
![Page 18: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/18.jpg)
“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ícioadequada”
- Maurício Portela, VP de
Mídias Digitais
![Page 19: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/19.jpg)
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
![Page 20: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/20.jpg)
Solução
ENCODING TRANSCODING PLAYERORIGIN CDN’s
4K
1080p
720p
480p
![Page 21: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/21.jpg)
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
![Page 22: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/22.jpg)
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
![Page 23: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/23.jpg)
Dinâmico
EstáticoVídeo
Entregue todo o seu conteúdo: entregue todo site
Input do
Usuário
SSL
![Page 24: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/24.jpg)
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
![Page 25: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/25.jpg)
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
![Page 26: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/26.jpg)
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.
![Page 27: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/27.jpg)
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.
![Page 28: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/28.jpg)
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:
![Page 29: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/29.jpg)
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
![Page 30: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/30.jpg)
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
![Page 31: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/31.jpg)
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/2012-07-01/">
Gerencie seu conteúdo da sua maneira
API ConsoleGerenciamento e Relatório
![Page 32: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/32.jpg)
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
![Page 33: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/33.jpg)
Arquitetura de Referência: Visão GeralStreaming pelo CloudFront
LondonSingapore NY
Estático ou
DinâmicoServido pelo ELB e/ou EC2
*.php, *.js, *m3u8, *.ts
EstáticoServido pelo S3
*.jpg, *.m3u8, *.ts, *.css
Estático ou DinâmicoServido 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 vivoRTMP
![Page 34: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/34.jpg)
CloudFront
Arquitetura de Referência: Seleção de Origens do CloudFrontOrigin 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)
![Page 35: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/35.jpg)
CNAME =
xyz.cloudfront.net
CloudFront
53
Balanceamento
Endpoint
Não-AWS
Arquitetura de Referência: Balanceamento de CargaBalanceie a carga entre seus provedores usando o Route 53
Customer Location
www.mysite.com
Weighted Round Robin RoutingCNAME = xyz.cloudfront.net, weight = 0-255
CNAME = xyz.somecdn.com, weight = 0-255
CNAME =
xyz.somecdn.com
Latency Based RoutingCNAME = xyz.cloudfront.net, latency metric
CNAME = xyz.somecdn.com, latency metric
Fail Over RoutingCNAME = xyz.cloudfront.net, PRIMARY
CNAME = xyz.somecdn.com, SECONDARY
Geolocation RoutingCNAME = xyz.cloudfront.net, LOCATION 1…LOCATION X
CNAME = xyz.somecdn.com, LOCATION 2…LOCATION Y
![Page 36: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/36.jpg)
CloudFront
EC2S3 ELB
53
Balanceamento
Origem não-
AWS
Arquitetura de Referência: Roteamento InteligenteUsando 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.
![Page 37: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/37.jpg)
Arquitetura de Referência: Regras de RoteamentoEscolha 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
2CloudFront
CloudFront PoP
London
CloudFront PoP
Paris
CloudFront PoP
Miami
X
New York London France Argentina
![Page 38: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/38.jpg)
Arquitetura de Referência: Regras de RoteamentoHeaders, 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
2CloudFront
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
![Page 39: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/39.jpg)
CloudFront
Edge
Location WAF
users
hackers
bad botssite
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 WAFSe proteja de ataques DDoS, SQL Injection...
![Page 40: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/40.jpg)
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áticoServido do S3
*.jpg, *.m3u8, *.ts, *.css
Conteúdo
estático ou
dinâmicoServido do ELB e/ou
EC2
*.php, *.js, *m3u8, *.ts
Conteúdo estático
ou dinâmicoServido de uma origem não
AWS
*.php, *.js, *m3u8, *.ts
![Page 41: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/41.jpg)
Aplicando as Melhores Práticas
Maior segurança
Maior disponibilidade
Melhor performance
Facilidade de debug
Visibilidade
Testando sua Distribuição
![Page 42: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/42.jpg)
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 IPWhitelist somente do range de IP do
Amazon CloudFront
• Protege a origem de sobrecarga
• Benefícios de performance para todos
os seus clientes.
![Page 43: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/43.jpg)
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
![Page 44: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/44.jpg)
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
![Page 45: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/45.jpg)
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
![Page 46: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/46.jpg)
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
![Page 47: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/47.jpg)
Relatórios do Amazon CloudFront para
identificar tendências
• Cache hit/miss
• Incomplete downloads
• Top countries
• Mobile users
• Popular objects
![Page 48: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/48.jpg)
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">
![Page 49: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/49.jpg)
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
![Page 50: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/50.jpg)
Distribuição compartilhada
• Assets compartilhados entre múltiplos sites
Static content
Amazon S3
Amazon CloudFront
assets.example.com
www.example.com
www.example.org
![Page 51: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/51.jpg)
Forwarded values
• Checar forwarded headers
• Query string forwarding
• Cookie forwarding
• Trusted Advisor checks
![Page 52: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/52.jpg)
Invalidações
• Último recurso
• Aplicado somente no cache do Amazon CloudFront, não é
válido nos browsers ou caches intermediários
![Page 53: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/53.jpg)
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)
![Page 54: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/54.jpg)
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
![Page 55: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/55.jpg)
SSL labs
• Verifique sua configuração de SSL
![Page 56: Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação](https://reader036.fdocumentos.tips/reader036/viewer/2022092700/586fe2b61a28ab18428b7c9b/html5/thumbnails/56.jpg)
Obrigado!