Usando Amazon CloudFront para aumentar performance, disponibilidade e cache na sua aplicação

50 %
50 %
Information about Usando Amazon CloudFront para aumentar performance, disponibilidade e...

Published on June 7, 2016

Author: AmazonWebServicesLATAM

Source: slideshare.net

1. © 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

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

9. DEMO

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

16. CloudFront Refências: M&E

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

20. Solução ENCODING TRANSCODING PLAYERORIGIN CDN’s 4K 1080p 720p 480p

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

50. Distribuição compartilhada • Assets compartilhados entre múltiplos sites Static content Amazon S3 Amazon CloudFront assets.example.com www.example.com www.example.org

51. Forwarded values • Checar forwarded headers • Query string forwarding • Cookie forwarding • Trusted Advisor checks

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 

55. SSL labs • Verifique sua configuração de SSL

56. Obrigado!

Add a comment