Customizar o Domínio de um Site Hospedado na Amazon

Quando criamos um Servidor de Origem na Amazon para hospedar os arquivos de um site ou aplicação que desejamos disponibilizar aos usuários da internet, acabamos recebendo o endereço desse servidor, seja ele o DNS ou IP público, através do qual podemos fazer o acesso ao site.

Esse endereço garalmente é algo parecido com o que está na imagem abaixo.

Endereço de instância EC2.

Outra coisa trivial de se fazer, é configurar uma distribuição do CloudFront para buscar os arquivos do nosso site no Servidor de Origem e disponibilizá-los em espelhos espalhados pelo mundo, tornando-os acessíveis mais localmente aos usuários com o objetivo de melhor performance.

Quando isso é configurado, o nosso site passa então a estar disponível em um endereço gerado pelo CloudFront, o constante na coluna Domain Name, semelhante ao mostrado na imagem.

Endereço para acesso do site através do CloudFront.Acesso do site no navegador através do endereço entregue pelo CloudFront.

A questão é que, tanto o endereço do Servidor de Origem, quando o do CloudFront, são difíceis de serem memorizados pelos usuários.

Por isso então, é muito comum customizar o endereço do site com um nome que lembre a nossa marca. Essa tarefa envolve vários conceitos e passos, que serão explicados na sequência.

Primeiro, precisamos começar entendendo o que é um Servidor DNS e como funciona a resolução de nomes na internet. Na sequencia, vamos registrar um domínio e assim ter um em mão para utilizar. Feito isso, vamos criar os nossos Servidores DNS na Amazon e depois juntar as peças desse quebra-cabeças e tornar as páginas de um site exemplo realmente acessíveis através de um domínio customizado.

Qual é o Papel do DNS nessa História?

Os computadores se dão melhor com números. Aliás, cada computador tem seu número na rede, que é o IP, algo parecido com isso aqui: 192.168.56.1. Só que para nós seres humanos é mais fácil memorizar nomes.

Imagine você ter que ficar lembrando do CEP no lugar dos nomes das ruas ou, ao invés de memorizar google.com, ter que decorar 216.58.202.206 que é o endereço do Google. Bem mais difícil, não é?

É aí que entra o DNS, para justamente fazer essa conversão de nomes para números ou vice-versa.

Como Funciona a Resolução de Nomes?

A mecânica do DNS funciona da seguinte forma: digamos que você faça uma pesquisa por google.com em seu navegador e pressione Enter.

Pesquisa por google.com no navegador de um celular.

O seu navegador não faz ideia do que seria google.com e pergunta ao Resolvedor DNS do seu provedor de serviços de internet, que pode ser a net, claro, vivo, entre outros ou, no caso de uma empresa, para o próprio Resolvedor DNS dessa empresa: quem é google.com?

Esse Resolvedor DNS, que também é chamado de DNS Recursivo responde: não sei, mas vou fazer uma pesquisa a fim de encontrar a resposta.

Requisição do navegador ao Resolvedor DNS.

O Resolvedor DNS vai responder ao navegador. Porém, antes disso, precisa fazer uma pesquisa nos Servidores DNS para obter a resposta.

Existe uma hierarquia entre os Servidores DNS, e cada um responde por um nível de especificidade dos domínios. É aquela história, dividir para conquistar! Abaixo há uma figura sobre a hierarquia dos domínios para facilitar seu entendimento.

Hierarquia dos domínios.

No topo da hierarquia, temos o domínio raiz também chamado de root domain em inglês. Na sequência, os Top Level Domain - TLDs (Domínios de Nível Superior) compostos pelos country-code top-level domains ou ccTLD como br, uk, us, fr entre outros. E os generic top-level domains ou gTLD que não estão associados a nenhum país. Por exemplo: com, edu, net e org.

Da terceira camada em diante, temos os subdomínios: gov governamental, com comercial e outros, registrados por empresas ou pessoas, como por exemplo devcontent.

Cada nível dessa hierarquia dos domínios é responsabilidade de um grupo de Servidores DNS.

Voltando ao nosso exemplo de resolução do nome google.com, o Resolvedor DNS pergunta primeiro aos Servidores DNS Raiz, também conhecidos como Root Servers se eles conhecem o domínio google.com.

Eles respondem: esse domínio é muito específico e, por conta disso, não temos a resposta exata. Mas temos a relação dos servidores que respondem pelos domínios .com. Segue como resposta e, por favor, Resolvedor DNS, faça essa pergunta a eles.

Requisição do Resolvedor DNS aos Servidore DNS Raiz.

Então o Resolvedor DNS faz a mesma pergunta aos Servidores DNS .com. Esses servidores, por sua vez, respondem: não temos propriedade para te responder isso pois a pergunta ainda é muito específica. Mas conhecemos e vamos te enviar, Resolvedor DNS, a relação dos Servidores DNS do Google. Faça essa pergunta a eles que saberão te responder.

Requisição do Resolvedor DNS aos Servidores DNS que respondem pelos domínios .com na internet.

Novamente, o Resolvedor DNS encaminha a mesma pergunta. Dessa vez, para os Servidores do Google. E eles, obviamente, têm e encaminham a resposta.

Os Servidores DNS do Google falam assim: olha, Resolvedor DNS, o endereço google.com, na verdade, corresponde ao número 216.58.202.206.

Requisição do Resolvedor DNS aos Servidores DNS que respondem especifícamente pelos domínios google.

De posse da resposta, o Resolvedor DNS a repassa ao navegador e mantém essa informação cacheada por um período de tempo para futuras requisições. Com o endereço em mãos, agora o navegador acessa o servidor do Google, obtém os dados de sua aplicação e a exibe no navegador do usuário.

Processo de resolução de nome feito pelo DNS.

Então é justamente essa a próxima etapa do nosso projeto. Registrar um domínio, criar e configurar nossos Servidores DNS, que representarão uma resposta autoritativa ao domínio, e apontar as requisições para os nossos servidores onde de fato estão os arquivos do nosso site.

Registrar Gratuitamente um Domínio de Teste

Agora vamos então, fazer o registro de um domínio, para que possamos, na sequência, criar e configurar nossos Servidores DNS que terão autoridade para resolvê-lo. Você pode ficar a vontade para escolher a empresa de sua preferência e fazer esse registro. Eu vou usar o Freenom porque é gratuito.

Então vamos entrar no site e pesquisar pela disponibilidade do domínio devcontent.

Pesquisando a disponibilidade de um domínio no Freenom.

Está disponível. Se você quiser utilizar domínios com, net, org enfim, os mais comuns. Há um custo. Mas fique à vontade para usar o de sua preferência. Vou usar aqui o tk por ser gratuito. Para isso, clico em Obtê-lo agora. Depois, em Pagamento, para ser redirecionado ao check-out.

Selecionar o domínio escolhido e fazer check-out.

Na sequência, escolhemos o período que queremos ficar com o domínio. Por padrão vem três meses, mas vou diminuir para um mês pois a finalidade aqui é só vermos como funciona esse processo.

Escolher o período de tempo que se deseja ficar com o domínio.

Clicamos em Continuar e na próxima tela colocamos nosso e-mail, permitindo que o Freenom faça a devida validação. Para finalizar essa etapa, entramos em nosso e-mail e clicamos no link enviado pelo Freenom para confirmar o e-mail como sendo válido.

Revisão e autenticação.

Clicando no link do e-mail, recebemos a tela abaixo para preencher nossos dados pessoais ou da companhia e aceitar os termos do contrato. Por último, completamos a ordem.

Formulário para preencher dados pessoais e da companhia.

Já temos agora o registro. Na próxima etapa, precisamos criar os nossos Servidores DNS na Amazon, que serão os responsáveis por responderem às consultas realizadas para esse domínio.

Criar e Configurar Servidores DNS com o Route 53

Agora precisamos criar e configurar de fato nossos Servidores DNS na Amazon para representarem uma resposta autoritativa a esse domínio que acabamos de registrar.

Route 53

Para criar os nossos Servidores DNS, utilizaremos o serviço de DNS da Amazon chamado Route 53. Então vamos para o Console de gerenciamento da AWS pesquisar por ele.

Busca pelo serviço de DNS da Amazon chamado Route 53.

Depois, clicamos em Começar a usar agora para iniciar o processo.

Acessar Gerenciador de serviços DNS Route 53.

Criar Zona Hospedada

Nessa etapa em que precisamos criar uma Zona Hospedada há um custo estipulado pela Amazon que no momento é de 0,50 USD por zona de configuração de domínio criada.

A tabela de preços pode ser consultada digitando-se preços route 53 em uma nova aba do navegador, por exemplo. Essa informação está descrita na seção Zonas hospedadas.

Preço para criação de Zona Hospedada.

Seguindo em frente, clicamos em Criar zona hospedada e especificamos o nome do domínio que precisa ser igual ao que registramos na etapa anterior. Para isso, vamos acessar novamente o Freenom e em Services > My Domains, copiar o nome do domínio e colar no campo Nome do domínio no Route 53.

Acessando os meus domínios no Freenom.

Esse é o domínio que deve ser utilizado pelos usuários na internet. A ideia é que qualquer pessoa com ele em mãos, possa fazer o acesso de leitura. Então a visibilidade deve ser pública. Por isso, em Tipo, mantemos Zona hospedada pública.

Criar Zona Hospedada no Route 53.

Feito isso, clicamos em Criar

Note que, finalizada essa etapa, a Amazon já configurou e está informando o nome dos nossos Servidores DNS que têm autoridade para responder especificamente pelo domínio devcontent.tk. Criando um registro do tipo NS (Name Server) com o nome dos servidores, e outro do tipo SOA – Start Of Authority que indica o início de autoridade do domínio.

Nome dos Servidores DNS responsáveis por resolver o domínio devcontent.

Informar meus Servidores DNS aos Servidores DNS .tk

Os Servidores DNS que respondem pelos domínios tk na internet precisam ser avisados disso. Então precisamos voltar para o Freenom e pedir para ele fazer essa divulgação aos Servidores DNS tk sobre quem tem autoridade para resolver o nosso domínio específico devcontent.tk.

Esse processo varia um pouco dependendo da empresa em que você registrou seu domínio. Mas o fluxo, a essência, é basicamente a mesma.

Aqui no Freenom, clicamos em Services > My Domains > Manage Domain;

Área para fazer o gerenciamento dos meus domínios no Freenom.

Depois, na aba Management Tools > Nameservers

Caminho para acessar nome dos servidores que respondem pelo domínio devcontent.

Escolhemos Use custom nameservers e inserimos os nomes dos nossos Servidores DNS nos campos especificados.

Escolher usar servidores customizados.

Aqui você pode executar um ping em cada servidor, a fim de colocá-los em ordem crescente de tempo de resposta. É o que vou fazer, pois se um não responder, a requisição do seu Resolvedor DNS será redirecionada ao próximo servidor.

Executando ping em Servidores DNS.Informar os Servidores DNS customizados.

Por fim, envie os dados. Esse processo poderá levar até algumas horas para ser completamente concluído.

Desfecho: juntar as peças do quebra-cabeças

Como saber se o Freenom já atualizou os Servidores .tk com o nome dos nossos Servidores DNS que serão os responsáveis por resolver o domínio devcontent.tk?

Existe um meio: fazendo uma consulta DNS através da ferramenta dig.

Os usuários Windows provavelmente não devem ter essa ferramenta nativamente em seus sistemas operacionais e, por isso, podem fazer a instalação dela através deste post. Sistemas baseados em Unix já dispõem dela nativamente.

Vamos pedir para o dig nos dar detalhes de todo o processo, mostrando todas as consultas intermediárias, até chegar ao nível do nosso domínio. Para isso, após o dig, usamos o comando +trace e, na sequência, o domínio. Da seguinte forma:

dig +trace devcontent.tk

Olha só: a primeira consulta, conforme vimos acima, é realizada aos servidores root que estão lá no topo da hierarquia e são representados por um ponto.

Consulta realizada pelo dig aos servidores root.

Obviamente, esses servidores não têm uma entrada tão específica quanto a do nosso domínio. Mas eles têm a relação dos servidores que respondem pelos domínios tk e a encaminham como resposta a essa primeira consulta.

Consulta DNS realizada pela ferramenta dig aos servidores tk.

Então é feita uma nova consulta, agora para os servidores que respondem pelos domínios tk. Esses servidores já devem ter os registros dos servidores específicos que respondem pelo nosso domínio porque eu pedi para o Freenom fazer essa divulgação.

Nome dos Servidores DNS que respondem especificamente pelo domínio devcontent.tk

Realmente quem está respondendo pelo nosso domínio são exatamente aqueles quatro servidores da Amazon que configuramos.

Apontando as requisições para o servidor com os arquivos do nosso site

Estamos então conseguindo chegar até aquela Zona de Configuração de Domínios que fizemos acima. Agora o que precisamos fazer é criar alguns registros nos Servidores DNS da Amazon apontando para o endereço do servidor onde estão os arquivos do nosso site, ou seja, aquela distribuição do CloudFront representada por aquela url padrão que comentei lá no início do Artigo.

Então vamos voltar para o Route 53, acessar novamente nossa zona de configuração;

Acessar Zonas Hospedadas no Route 53 da AWS.

E criar um registro do tipo Address (A). Para isso, clicamos em Criar conjunto de registros, mantemos o Tipo A selecionado e, em Alias - apelido, inserimos o endereço do CloudFront que tínhamos usado anteriormente para acessar o site.

Primeiramente, vamos fazer o mapeamento para o domínio raiz.

Mapear domínio raiz para o servidor da aplicação.

Mas o usuário pode também digitar www.devcontent.tk afinal, é bem comum. Então vamos mapear esse domínio também.

Digitamos www no campo Nome. O restante das configurações são as mesmas utilizadas no domínio raiz.

Mapear domínio com www para o servidor da aplicação.

Inserindo os Cnames no CloudFront

Para que o CloudFront permita o acesso por nomes alternativos, precisamos indicá-los no campo CNAME que é propício para isso.

Mas, para podermos utilizar um nome de domínio alternativo, precisamos primeiramente, provar que somos proprietários desse nome.

Atualmente, a grande maioria do tráfego da Internet é criptografada usando o protocolo SSL/TLS e os Certificados SSL/TLS.

Mas ninguém pode obter um Certificado SSL/TLS válido sem primeiro provar que é o proprietário do domínio inserindo uma entrada exclusiva em seus registros DNS ou validando a solicitação do certificado por email.

O processo do CloudFront para validar o direito de um cliente de usar um nome de domínio alternativo se baseia nessas mesmas verificações já estabelecidas e confiáveis ​​em vigor para obter um certificado. Então, em vez de fazer com que os clientes passem por um processo redundante para validar novamente sua propriedade, o CloudFront simplesmente exigirá que um certificado seja anexado a essa distribuição ao adicionar um nome de domínio alternativo à distribuição.

Solicitando Certificado SSL/TLS

Um certificado válido deve ser obtido através de uma Autoridade Certificadora. Aqui vamos usar o Certificate Manager que fornece certificados públicos SSL/TLS gratuitamente.

Para isso, no Console da AWS, buscamos por Certificate Manager;

Pesquisando por Certificate Manager na busca do Console da AWS.

Certifique-se de que você está na região do Norte da Virgínia.

Seleção da região do Norte da Virgínia no Console da AWS.

Depois clique em Comece a usar.

Iniciar a solicitação do certificado SSL/TLS.

Escolha o tipo de certificado público dentre as opções público e privado e prossiga clicando em Solicitar certificado.

Escolher tipo de certificado público.

Adicionamos os domínios para os quais queremos os certificados e clicamos em Próximo.

Adicionar os domínios para os quais queremos os certificados.

Mantemos a Validação DNS e clicamos em Revisão. Estando tudo ok, confirmamos a solicitação.

Selecionar o método de validação DNS.

O Status do certificado nesse momento é Validação Pendente, pois justamente ainda não inserimos aquela entrada em nossos registros DNS para comprovar a propriedade.

Status da validação do certificado pendente.

Comprovando a Propriedade do Domínio pelo DNS

Detalhando a ocorrência, vemos os atributos que devemos usar para adicionar o registro CNAME à configuração de DNS do nosso domínio.

Podemos fazer essa inserção manualmente acessando o serviço do Route 53 e criar mais um registro. Mas a Amazon facilita nossa vida dando a possibilidade de simplesmente criar o registro através do botão Criar registro no Route 53 sem precisar sair do Certificate Manager.

Adicionando os registros CNAME ao Route 53 diretamente pelo Certificate Manager.

Agora o registro para o domínio devcontent.tk foi criado no Route 53.

Constatando a criação do registro CNAME no Route 53.

Repetimos os passos para a versão com www. Essa é a última etapa do processo, agora precisamos esperar até que o certificado seja emitido, o que pode levar em torno de 20 minutos ou mais.

Certificado com status Emitido para os domínios solicitados.

Continuando Inserção dos Cnames no CloudFront

Vamos então agora adicionar os nossos domínios personalizados no CloudFront. Fazemos isso através do Console clicando sobre a distribuição que temos interesse em alterar e editamos a aba General. No campo nome de domínio alternativo (CNAME) acrescentamos a nossa versão com e sem www.

Adicionar os nomes dos domínios customizados ao CloudFront e selecionar o certificado recém-criado para uso.

Selecionamos Custom SSL Certificate e escolhemos o certificado que foi emitido na etapa anterior. Feito isso, mandamos salvar as alterações clicando em Yes Edit e aguardamos até que o Status mude de In Progress para Deployed.

Testando acesso pelo domínio customizado

Dessa forma, já deve ser possível acessar nosso site pelos nomes de domínios personalizados. Vamos comprovar isso abrindo uma nova janela anônima no Browser para garantir que não tenhamos dados cacheados e procurar pelos nossos domínios.

Fazendo acesso do site pelo domínio customizado raiz.Fazendo acesso do site pelo domínio customizado com www.

Maravilha! Está tudo funcionando. Se você está buscando hospedar um site ou aplicação na Amazon, considere este curso. São duas horinhas de conteúdo bem focado sobre o assunto e que te levarão pela mão desde a criação do primeiro servidor até o redirecionamento 301 que tornará o seu site disponível em um endereço único na web.

Ir para o topo