Apontando domínios raiz (APEX) para endpoints do Amplify no Route53
Como sabemos, a raiz de um domínio (APEX) não pode ser apontada para endereços diferentes de IPs (IPV4 ou IPV6). Este artigo resume a solução que encontrei sem precisar envolver serviços intermediários (DNSimple ou Cloudflare, por exemplo). Que podem impactar a performance e disponibilidade, além de oferecem custos adicionais.
Antes de começarmos, uma breve definição sobre APEX:
O termo "APEX" em relação aos domínios de internet refere-se ao domínio raiz de um nome de domínio. Em outras palavras, é o nome de domínio sem nenhum subdomínio adicional. Por exemplo, se o seu domínio é meusite.com, o "APEX" seria simplesmente meusite.com, sem nenhum subdomínio adicional como www. Geralmente não associamos isso, mas o prefixo www. é considerado um subdomínio e não o dominio original.
O APEX de um domínio é o nível mais alto na hierarquia de nomes de domínio. Ele geralmente se refere ao endereço principal de um site ou aplicativo na web, sendo o ponto de entrada para o domínio, e muitas vezes é associado diretamente ao conteúdo principal ou à página inicial do serviço hospedado nesse domínio.
Em termos técnicos, é onde o registro de zona do domínio está localizado. O APEX é frequentemente usado para apontar para servidores, aplicativos ou serviços específicos na web, como servidores da web, serviços de e-mail, aplicativos web, entre outros, usando registros DNS como registros do tipo A, AAAA ou outros tipos de registro, para direcionar o tráfego para o destino desejado.
Então, ao configurar um domínio para apontar para um serviço específico, como AWS Amplify, é comum buscar maneiras de associar o APEX do domínio diretamente ao serviço, o que às vezes requer soluções específicas, como o uso de registros do tipo A com alias, redirecionamentos ou serviços de DNS especializados para alcançar esse objetivo.
Entendido o termo APEX, vamos agora configurar um domínio no Route53 para acessar um projeto rodando no AWS Amplify. Este método funciona inclusive para apontar domínios e aplicativos dentre contas distintas. Que foi justamente o caso que precisei configurar.
Passo a passo:
1-) Realize Login em sua conta AWS qu está hospedado seu aplicativo Amplify:
2-) Na Barras de Pesquisas, procure por Amplify (1) e clique na primeira opção nos resultados (2):
3-) Acessando a Página Inicial do Amplify, verifique se está na região correta aonde foi criado seu Aplicativo (1) e selecione-o para abrir as configurações (2):
4-) Tendo acessado seu aplicativo, clique no menu à esquerda "Gerenciamento de Domíníos"(1) e depois no botão "Adicionar Domínio" (2):
5-) Neste tela digite o domínio que pretende configurar (ele não precisa estar associado a mesma conta do aplicativo), (1).
- Clique no botão "Configurar Domínio" (2);
- Observe e altere subdomínios que deseja apontar (3);
- Clique no botão "Salvar" (4).
6-) Você será redirecionado para a tela de Status, apenas espere a criação do SSL e siga para o próximo passo:
7-) Agora será necessário configurar uma entrada do tipo CNAME para validar o certificado SSL criado. No seu Route53 (que também pode ser de outra conta AWS):
- Crie uma nova entrada com valor do subdominio (1);
- Do tipo CNAME (2);
- Com o Valor (3):
8- ) Validado o SSL agora resta apenas configurar o apontamento do domínio. Na tela de Status, clique no botão "Ações"(1) e depois na opção "Visualizar Registros DNS"(2):
9-) Copie o DNS do valor CNAME e crie um novo registro do mesmo tipo apontando para ele com o subdomínio "www":
10-) Para apontar a raiz (APEX) do seu domínio, crie um registro do tipo A com alias e preencha com o mesmo valor do passo nº 9:
Pronto !!
Agora você pode acessar o seu domínio tanto com o prefixo "www", ou diretamente. Ex:
https://www.marcomapa.com
ou
https://marcomapa.com