Provisionando um domínio .com.br com AWS Route 53 via Terraform

Rhian Lopes da Costa
Fretebras Tech
Published in
6 min readApr 30, 2023

Um guia simples e objetivo para provisionar um domínio .com.br pelo registro.br pela AWS Route 53 via Terraform

Desde que iniciei na área da tecnologia, sempre tive a curiosidade de ter meu próprio domínio, mas confesso que sempre tive diversos receios principalmente envolvendo custos das ferramentas entre outros receios.

Por meio desse artigo gostaria de compartilhar um pouco de como foi a experiência e os passos que segui para provisionar meu próprio domínio.

Domínio

Existem diversas maneiras de adquirir um domínio, seja registrando um novo domínio, comprando um existente, adquirindo um domínio expirado por alguém que acabou não renovando, etc. Como meu objetivo é obter um domínio para estudos, acabei optando por registrar um domínio com um nome fictício de “fusotech.com.br”.

Existem diversos registradores de domínios no mercado, como GoDaddy, Namecheap, HostGator, entre outros. Acabei optando por registrar o domínio pelo Registro.br.

Na página inicial do Registro.br já é possível fazer a pesquisa pelo nome de domínio que deseja adquirir, se ele estiver disponível sera possível registra-lo pelo tempo que desejar e criar sua conta caso não possua.

Basta realizar o passo a passo intuitivo de criação de conta informando seus dados e efetuando o pagamento pelo registro do domínio pelo tempo que desejar.

Feito isso, você acaba de adquirir seu primeiro domínio 🎉 Podendo conferir no seu painel do Registro.br.

Ferramentas & Console

Completando essa etapa, vamos seguir para o provisionarmos seu domínio na AWS, para isso será necessário que possua ou crie uma conta no console da AWS gratuitamente podendo fazer uso de diversos recursos de forma gratuita. Mas adianto que para provisionarmos teremos um custo para hospedar o nosso domínio, falaremos sobre isso mais tarde.

Com sua conta da AWS em mãos, vamos agora precisar instalar o Terraform e em seguida o AWS CLI.

Feita a instalação de ambas ferramentas, podemos verificar a instalação com sucesso e versão executando os seguintes comandos:

$ terraform version && aws --version

Onde caso a instalação tenha sido feita de forma correta retornará a versão de ambas ferramentas.

AWS & CLI

Com as ferramentas instaladas, iremos configurar um “profile” da AWS locamente para que fique mais simples a execução dos nossos arquivos Terraform.

Para isso, iremos utilizar as Chaves de Acesso na AWS, o indicado pelas boas práticas é a criação de um usuário no serviço do IAM da AWS, criar as chaves de acesso do mesmo e fazer uso delas. Se tratando de um ambiente de estudos irei assumir os riscos e utilizar as chaves de acesso do meu usuário root da conta. Para isso, basta acessar a aba de “Credenciais de segurança” clicando no nome de usuário no canto superior direito do console da AWS.

E clicar em criar suas Chaves de Acesso.

Feito isso, será exibido o ID e o secreto da sua chave de acesso, guarde-as em um local seguro. Agora iremos criar o “profile” via AWS CLI, para isso basta executar o comando abaixo e preencher com as seguintes informações:

$ aws configure --profile <seu nome de profile>
AWS Access Key ID [None]: <seu ID da chave de acesso>
AWS Secret Access Key [None]: <seu segredo da chave de acesso>
Default region name [None]: us-east-1
Default output format [None]: json

Podemos conferir o “profile” criado executando:

$ aws configure list-profiles
default
<seu nome de profile>

Terraform

Feito isso, nosso próximo passo é a criação do script Terraform para provisionarmos nosso domínio via Route 53.

Para isso podemos criar dois arquivos em uma pasta, um “provider.tf” para indicarmos a região e o “profile” da AWS que desejamos provisionar os recursos pelo terraform.

E um arquivo “route53.tf” para a criação do recurso de Zona Hospedada do nosso domínio na AWS.

Com isso, podemos executar o seguinte comando para efetuar o download das dependências do script terraform:

$ terraform init

Em seguida, o comando para executar o planejamento das modificações que iremos realizar a partir do script terraform:

$ terraform plan -out plan_terraform_route53

O script exibirá de forma detalhada os recursos que serão adicionados, modificados ou destruidos. Em nosso caso, iremos apenas adicionar um novo recurso na AWS, estando de acordo podemos executar o seguinte comando para aplicar as modificações na AWS:

$ terraform apply "plan_terraform_route53"

Com isso provisionamos nosso recurso na AWS via Terraform 🎉

Podemos conferir o recurso criado no serviço do Route 53 no console da AWS.

Podemos acessar nossa zona hospedada clicando no domínio. Onde podemos observar os registros criados via script Terraform.

Propagação DNS

Por fim, precisamos fazer um último passo para completar o provisionamento do domínio. Devemos copiar os roteadores de tráfego do registro do tipo NS e retomarmos para o nosso painel do Registro.br, mas agora clicamos em nosso domínio e vamos até a parte de DNS para indicarmos os servidores DNS que serão responsáveis por deixar o seu domínio ser localizado na internet.

Onde basta editar e cadastrar os valores copiados anteriormente, por fim salvar.

Feito isso, provisionamos nosso domínio 🎉 Mas ainda é necessário aguardar a propagação do mesmo que pode durar até 48 horas, mas em 2 horas já é possível acompanhar a propagação pelo site https://www.whatsmydns.net/ sendo necessário informar seu domínio e o tipo NS.

Para finalizar é importante ressaltar que o recurso de Zona Hospedada da AWS é pago e pode ser verificado os detalhes em https://aws.amazon.com/pt/route53/pricing/.

No momento da escrita desse artigo, os valores são de USD 0,50/mês para cada zona hospedada podendo ter até 10 mil registros, para testes a AWS não irá cobrar a sua Zona Hospedada caso a mesma seja excluída em até 12 horas, por tanto é possível realizar o guia sem custos desde que a zona seja excluída dentro do tempo indicado.

Removendo Recursos Criados

Para realizar a exclusão do recurso, basta executar o seguinte comando e confimar com “yes” caso deseje remover os recursos indicados.

$ terraform destroy

Preços

Como pretendo utilizar o domínio para estudos e testes, deixei o mesmo provisionado na AWS, por tanto fui cobrado em USD 0,50 + 0,07 de impostos convertendo na cotação no momento da escrita desse artigo algo em torno de R$ 3,00.

Conclusão

Pretendo em breve trazer mais artigos relacionados a criação de recursos sob demanda na AWS seguindo meus estudos de ferramentas para arquitetura Serverless.

Obrigado pelo seu tempo e atenção! Tmjj! 😁

--

--

Rhian Lopes da Costa
Fretebras Tech

Olá! Me chamo Rhian, sou apaixonado por resolver problemas utilizando Tecnologia e Inovações