DNS, CDN e serviços edge

As 7 politicas de roteamento do Route 53, caching CDN do CloudFront, Global Accelerator e protecao DDoS com WAF/Shield explicados com analogias.

Os servicos de DNS, CDN e edge representam 33 questoes no exame SOA-C03, tornando-os uma das areas mais testadas. Este guia explica cada servico desde os conceitos basicos para que voce entenda nao apenas os fatos mas o raciocinio por tras deles.

 

O que e DNS e por que existe?

Quando voce digita www.example.com no seu navegador, seu computador nao sabe onde esse servidor esta. Ele so entende enderecos IP como 192.0.2.1. DNS (Domain Name System) age como a lista telefonica da internet, traduzindo nomes de dominio amigaveis para humanos em enderecos IP lidos por maquinas.

Assim como procurar o nome de um amigo em uma lista telefonica para encontrar seu numero, seu dispositivo procura um nome de dominio no DNS para encontrar o endereco IP do servidor. So entao pode fazer uma conexao.

 

Amazon Route 53 — DNS e roteamento de trafego da AWS

O Route 53 e o servico DNS da AWS. Alem da simples traducao de nome para IP, ele fornece politicas de roteamento poderosas que permitem controlar exatamente para onde o trafego vai com base em varios criterios.

O nome vem do numero de porta DNS 53, combinado com a palavra Route para sugerir roteamento de trafego.

 

Hosted Zones — Conteineres para registros DNS

Uma hosted zone e como a lista telefonica de uma empresa, uma colecao de registros DNS para um unico dominio.

A Hosted Zone Publica gerencia registros para dominios voltados para a internet. Qualquer pessoa na internet pode consultar example.com e obter uma resposta.

A Hosted Zone Privada gerencia registros visiveis apenas dentro de VPCs especificas. Util para dominios internos como internal.company.com que nao devem ser resoluveis pela internet publica.

 

Tipos de registros DNS

| Tipo | Proposito | Exemplo | |------|-----------|---------| | Registro A | Dominio para endereco IPv4 | www.example.com -> 192.0.2.1 | | Registro AAAA | Dominio para endereco IPv6 | www.example.com -> 2001:db8::1 | | Registro CNAME | Dominio para outro nome de dominio | blog.example.com -> www.example.com | | Registro Alias | Dominio para recurso AWS | example.com -> ALB ou CloudFront |

A distincao Alias vs CNAME e frequentemente testada. Voce deve conhece-la claramente.

CNAME aponta um nome de dominio para outro nome de dominio. No entanto, nao pode ser usado no Zone Apex, que significa o dominio raiz em si (example.com). Voce pode usar CNAME para www.example.com mas nao para example.com diretamente. Esta e uma limitacao do padrao DNS. Alem disso, consultas CNAME incorrem em cobranças por consulta.

Alias e uma extensao do Route 53 ao padrao DNS. Pode ser usado no Zone Apex (example.com), resolvendo o problema que o CNAME nao consegue. Aponta diretamente para recursos AWS como ALB, distribuicoes do CloudFront, endpoints de sites estaticos do S3 e URLs do Elastic Beanstalk. Consultas Alias sao gratuitas. Use Alias sempre que precisar apontar seu dominio raiz para um recurso AWS.

 

Politicas de roteamento do Route 53 — O topico mais critico

Voce deve conhecer todas as sete politicas de roteamento e qual cenario cada uma resolve. Isso e intensamente testado.

Roteamento Simples e a politica mais basica. Retorna um unico endereco IP para um dominio. Use-o quando voce tem um recurso e nao precisa de logica especial. Nao suporta verificacoes de integridade.

Roteamento Ponderado atribui pesos a varios recursos e distribui o trafego proporcionalmente. E ideal para testes A/B. Por exemplo, envie 90 por cento do trafego para sua versao de producao estavel e 10 por cento para sua nova versao para testa-la com seguranca. Definir um peso de 0 para o trafego para esse recurso completamente.

Roteamento Baseado em Latencia roteia cada usuario para a Regiao AWS que fornece a menor latencia de rede para eles. Um usuario em Seoul se conecta a regiao de Toquio ou Seoul. Um usuario em Nova York se conecta a regiao da Virginia. Use isso para otimizar a experiencia do usuario para uma aplicacao implantada globalmente.

Roteamento de Failover cria uma configuracao de recuperacao de desastres Ativo-Passivo. Enquanto o recurso primario passa sua verificacao de integridade, todo o trafego vai para la. No momento em que a verificacao de integridade falha, o Route 53 redireciona automaticamente o trafego para o recurso secundario.

Roteamento de Geolocalizacao direciona o trafego com base em onde o usuario esta localizado geograficamente, nivel de pais ou continente. Usuarios da Coreia do Sul vao para um servidor de conteudo em coreano. Usuarios dos Estados Unidos vao para um servidor de conteudo em ingles. Isso tambem e util para conformidade legal.

Roteamento de Geoproximidade roteia com base na distancia geografica entre usuarios e recursos, mas adiciona um valor de Bias que permite deslocar o limite. Aumentar o bias para um recurso expande a area geografica que ele serve. Deve ser usado com o Route 53 Traffic Flow, o editor visual de politicas de trafego.

Roteamento de Multivalor retorna varios enderecos IP (ate 8) e inclui apenas recursos saudaveis, aqueles que passam nas verificacoes de integridade. Fornece distribuicao basica de carga. Nao e um substituto para o Elastic Load Balancer, mas funciona bem para casos de uso simples.

 

Verificacoes de integridade do Route 53

As verificacoes de integridade verificam periodicamente se seus recursos estao funcionando corretamente, como um medico agendando revisoes regulares para um paciente.

Voce pode monitorar endpoints HTTP/HTTPS, conexoes TCP ou o status de outras verificacoes de integridade. Combinadas com o roteamento de failover, as verificacoes de integridade permitem failover automatico quando um recurso primario fica indisponivel.

 

Amazon CloudFront — Rede de entrega de conteudo global

O CloudFront e um servico CDN (Content Delivery Network). Ele armazena em cache seu conteudo em edge locations distribuidas pelo mundo para que os usuarios o recebam mais rapido, de uma localizacao mais proxima a eles.

Pense em uma rede de lojas de conveniencia. Voce poderia ter um unico armazem central e fazer todos viajarem ate la para comprar produtos. Ou poderia armazenar produtos em lojas de conveniencia locais perto de onde os clientes moram. O CloudFront e a rede de lojas de conveniencia. Seu servidor de origem e o armazem.

Sem o CloudFront, um usuario em Seoul baixando uma imagem armazenada em um bucket S3 na Virginia deve esperar os dados viajarem ate metade do mundo, centenas de milissegundos. Com o CloudFront, a imagem esta em cache na edge location de Seoul e e entregue em dezenas de milissegundos.

 

Origens do CloudFront

Uma origem e o servidor de origem onde o CloudFront busca conteudo quando ainda nao esta em cache.

Buckets S3 armazenam arquivos estaticos como imagens, CSS, JavaScript e HTML. ALB (Application Load Balancer) fica a frente de aplicacoes web dinamicas. Instancias EC2 podem servir como servidores web diretamente. Servidores HTTP externos fora da AWS tambem podem ser origens.

 

Caching do CloudFront

TTL (Time to Live) define por quanto tempo o conteudo em cache permanece valido antes que o CloudFront busque uma copia nova da origem. O padrao e 24 horas. Defina TTL mais longo para conteudo que muda raramente como imagens ou fontes. Defina TTL mais curto para conteudo que muda frequentemente.

A Invalidacao de Cache obriga o CloudFront a excluir o conteudo em cache antes que seu TTL expire. Se voce atualizar seu site mas os usuarios ainda virem a versao antiga, execute uma invalidacao. Voce pode especificar padroes de caminho como /images/* para invalidar arquivos especificos apenas. As invalidacoes incorrem em uma pequena cobrança.

A Chave de Cache determina quais solicitacoes compartilham a mesma resposta em cache. Uma chave de cache normalmente e o caminho URL, mas tambem pode incluir strings de consulta, cabecalhos e cookies. Uma chave de cache mais simples significa que mais solicitacoes atingem o cache, melhorando o desempenho.

 

OAC do CloudFront — Protegendo o conteudo do S3

OAC restringe o acesso ao seu bucket S3 para que o conteudo seja acessivel apenas atraves do CloudFront, nao diretamente via URLs do S3.

Imagine este cenario: voce serve imagens atraves do CloudFront. Alguem descobre a URL direta do S3 e comeca a baixar conteudo sem passar pelo CloudFront. O OAC resolve isso configurando a politica do bucket S3 para permitir apenas solicitacoes que venham do principal de servico do CloudFront. Solicitacoes diretas de URL do S3 sao bloqueadas. OAC e o substituto moderno do antigo OAI (Origin Access Identity).

 

AWS Global Accelerator — IPs estaticos mais rede global da AWS

O Global Accelerator melhora o desempenho da aplicacao roteando o trafego do usuario para a edge location mais proxima da AWS e depois carregando-o pela rede interna de alta velocidade da AWS para seus endpoints de aplicacao.

Ele fornece dois enderecos IP Anycast estaticos. Como esses IPs nunca mudam, voce pode fazer failover entre regioes sem nenhuma mudanca de DNS ou atrasos de propagacao. Suporta protocolos TCP e UDP, tornando-o ideal para aplicacoes em tempo real como jogos multiplayer, chamadas VoIP e sistemas de trading financeiro.

 

CloudFront vs Global Accelerator

| Recurso | CloudFront | Global Accelerator | |---------|-----------|-------------------| | Uso principal | Conteudo cacheable (imagens, video, HTML) | Aplicacoes em tempo real nao cacheables | | Enderecos IP | Baseados em dominio, podem mudar | 2 IPs Anycast estaticos, nunca mudam | | Protocolos | HTTP e HTTPS | TCP e UDP | | Caching | Sim, em edge locations | Sem caching | | Melhor para | Sites, distribuicao de midia | Jogos, VoIP, IoT, aplicacoes financeiras |

A regra de selecao e direta. Se voce pode cachea-lo e e baseado em HTTP, use CloudFront. Se e em tempo real, nao pode ser cacheado, ou precisa de IPs estaticos, use Global Accelerator.

Voltar à lista do blog