Webinar: Serviço de Distribuição de Conteúdo da AWS

49
Serviço de Distribuição de Conteúdo da AWS Amazon CloudFront

Transcript of Webinar: Serviço de Distribuição de Conteúdo da AWS

Page 1: Webinar: Serviço de Distribuição de Conteúdo da AWS

Serviço de Distribuição de

Conteúdo da AWS

Amazon CloudFront

Page 2: Webinar: Serviço de Distribuição de Conteúdo da AWS

Agenda

O que é uma CDN?

Como o CloudFront funciona

Por que CloudFront?

CloudFront: Conteúdo Estático e Dinâmico.

Arquiteturas com CloudFront

Page 3: Webinar: Serviço de Distribuição de Conteúdo da AWS

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.

Page 4: Webinar: Serviço de Distribuição de Conteúdo da AWS

Entrega de conteúdo sem CDN

PoP

PoP

Telefonica

Oi

Redes / peeringProvedores de Conteúdo

Level 3

End User

End User

End User

Page 5: Webinar: Serviço de Distribuição de Conteúdo da AWS

PoP

PoP

End User

End User

End User

Entrega de conteúdo com CloudFront

Provedores de Conteúdo Redes / peering

Page 6: Webinar: Serviço de Distribuição de Conteúdo da AWS

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: Webinar: Serviço de Distribuição de Conteúdo da AWS

Como CloudFront faz isso

Rtd = 350ms

Rtd = 15ms

Page 8: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 9: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 10: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 11: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 12: Webinar: Serviço de Distribuição de Conteúdo da AWS

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.

Page 13: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 14: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 15: Webinar: Serviço de Distribuição de Conteúdo da AWS

CloudFront Reference Customers: M&E

Page 16: Webinar: Serviço de Distribuição de Conteúdo da AWS

Dinâmico

EstáticoVídeo

Entregue todo o seu conteúdo: entregue todo site

Input do

Usuário

SSL

Page 17: Webinar: Serviço de Distribuição de Conteúdo da AWS

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

Page 18: Webinar: Serviço de Distribuição de Conteúdo da AWS

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

Page 19: Webinar: Serviço de Distribuição de Conteúdo da AWS

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

Page 20: Webinar: Serviço de Distribuição de Conteúdo da AWS

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.

Page 21: Webinar: Serviço de Distribuição de Conteúdo da AWS

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.

Page 22: Webinar: Serviço de Distribuição de Conteúdo da AWS

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:

Page 23: Webinar: Serviço de Distribuição de Conteúdo da AWS

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

Page 24: Webinar: Serviço de Distribuição de Conteúdo da AWS

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á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 25: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 26: Webinar: Serviço de Distribuição de Conteúdo da AWS

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/)

Page 27: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 28: Webinar: Serviço de Distribuição de Conteúdo da AWS

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

Page 29: Webinar: Serviço de Distribuição de Conteúdo da AWS

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

Page 30: Webinar: Serviço de Distribuição de Conteúdo da AWS

Exemplo de Relatório: 4xx Rate

Page 31: Webinar: Serviço de Distribuição de Conteúdo da AWS

Exemplo de Alarme: 4xx Rate

Page 32: Webinar: Serviço de Distribuição de Conteúdo da AWS

Exemplo de Relatório: Total de Requisições

Page 33: Webinar: Serviço de Distribuição de Conteúdo da AWS

Exemplo de Relatório: Porcentagem de

Requisições pelo Tipo de Resultado

Page 34: Webinar: Serviço de Distribuição de Conteúdo da AWS

Exemplo de Relatório: Código de Status HTTP

Page 35: Webinar: Serviço de Distribuição de Conteúdo da AWS

Exemplo de Relatório: Objetos Populares

Page 36: Webinar: Serviço de Distribuição de Conteúdo da AWS

Escalabilidade Automática

CloudFront escala de

acordo com a demanda

enquanto reduz a carga

na sua origem

User A

User B

User C

Request A

OriginCloudFront

Page 37: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 GeralEntrega de Conteúdo Estático e Dinâmico

Page 38: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 39: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 40: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 41: Webinar: Serviço de Distribuição de Conteúdo da AWS

CloudFront

EC2S3 ELB

53

Balanceamento

Origem não-

AWS

Reference Architecture: 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 42: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 43: Webinar: Serviço de Distribuição de Conteúdo da AWS

Arquitetura de Referência: HTTP HeadersVarie 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

Page 44: Webinar: Serviço de Distribuição de Conteúdo da AWS

Header use for CloudFrontHeader 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

Page 45: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 46: Webinar: Serviço de Distribuição de Conteúdo da AWS
Page 47: Webinar: Serviço de Distribuição de Conteúdo da AWS

Arquitetura de Referência: CloudFront + WAF

Tradicional

CloudFront

Edge

Location

users

hackers

bad botssite

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

Page 48: Webinar: Serviço de Distribuição de Conteúdo da AWS

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 49: Webinar: Serviço de Distribuição de Conteúdo da AWS

Perguntas?

Obrigado!