Se precisar configurar AWS Virtual Private Cloud (VPC), é possível fazer isso através da AWS Management Console, mas automatizar é muito mais divertido! Em um cenário de DevOps, a construção de serviços AWS por meio de ferramentas como Terraform é uma abordagem mais escalável e automatizada para a provisionamento de recursos na nuvem.
Neste tutorial, você aprenderá como criar e executar uma configuração do Terraform para construir uma VPC do Terraform do zero!
Pré-requisitos
Este post será um tutorial passo a passo. Se desejar acompanhar, certifique-se de ter o seguinte em vigor:
- Uma conta AWS
- Terraform – Este tutorial usará o Terraform v0.14.9 em execução no Ubuntu 18.04.5 LTS, mas qualquer sistema operacional com Terraform deve funcionar.
- A code editor – Even though you can use any text editor to work with Terraform configuration files, you should have one that understands the HCL Terraform language. Try out Visual Studio (VS) Code.
Compreensão das VPCs da AWS
A nuvem da AWS possui dezenas de serviços variados, desde computação, armazenamento, redes e mais. Cada um desses serviços pode se comunicar entre si, assim como os serviços de um datacenter local. No entanto, cada um desses serviços é independente um do outro, e não necessariamente isolado dos outros serviços. O VPC da AWS muda isso.
Um VPC da AWS é uma rede única que permite lançar serviços da AWS dentro de uma única rede isolada. Tecnicamente, um VPC da AWS é quase o mesmo que possuir um datacenter, mas com benefícios adicionais incorporados de escalabilidade, tolerância a falhas, armazenamento ilimitado, etc.

Os VPCs da AWS são restritos por região. Você não pode ter um VPC abrangendo várias regiões, com até cinco VPCs suportados por região.
Construindo a Configuração do Terraform para um VPC da AWS
Chega de conversa, vamos começar a construir!
1. Para começar, crie uma pasta para armazenar seus arquivos de configuração do Terraform. Este tutorial criará uma pasta chamada terraform-vpc-demo no seu diretório home.
2. Abra seu editor de código favorito e copie/cole a seguinte configuração já criada para você, salvando o arquivo como main.tf dentro do diretório ~/terraform-vpc-demo. Informações sobre cada recurso a ser criado estão embutidas.
O arquivo main.tf contém todos os recursos que precisam ser provisionados.
O Terraform utiliza vários tipos diferentes de arquivos de configuração. Cada arquivo é escrito em formato de texto simples ou formato JSON. Eles têm uma convenção de nomenclatura específica, seja no formato .tf ou .tfjson.
A configuração do Terraform abaixo:
- Cria uma VPC
- Cria um Gateway de Internet e o conecta à VPC para permitir que o tráfego dentro da VPC seja alcançável pelo mundo exterior.
- Cria uma sub-rede pública e privada
As sub-redes são redes dentro de redes. Elas são projetadas para ajudar o fluxo de tráfego de rede a ser mais eficiente e fornecer “partes” menores e mais gerenciáveis de endereços IP
- Cria uma tabela de roteamento para as sub-redes pública e privada e associa a tabela a ambas as sub-redes
- Cria um Gateway NAT para permitir que as sub-redes privadas alcancem a internet sem precisar de um endereço IP roteável externamente atribuído a cada recurso.
3. Agora, crie outro arquivo dentro do diretório ~/terraform-vpc-demo, nomeie-o vars.tf e cole o conteúdo abaixo.
Vars.tf é um arquivo de variáveis Terraform que contém todas as variáveis que o arquivo de configuração referencia.
Você pode ver as referências de variáveis no arquivo de configuração por:
var.region
var.main_vpc_cidr
var.public_subnets
var.private_subnets
É possível incluir todos os valores de configuração em um único arquivo de configuração. Para manter as coisas claras e facilitar para os desenvolvedores e administradores, é importante dividir as coisas.
4. Crie mais um arquivo dentro do diretório ~/terraform-vpc-demo, cole o seguinte código e nomeie-o como provider.tf para definir o provedor AWS. O tutorial estará criando recursos na região us-east-2
.
O arquivo de provedores define provedores como AWS, Oracle ou Azure, etc., para que o Terraform possa se conectar aos serviços em nuvem corretos.
provider "aws" { region = "us-east-2" }
5. Por fim, crie mais um arquivo dentro do diretório ~/terraform-vpc-demo, nomeie-o como terraform.tfvars, e cole o código abaixo. Este arquivo de variáveis contém os valores que o Terraform usará para substituir as referências de variáveis dentro do arquivo de configuração.
Agora, abra seu terminal favorito (Bash neste caso) e verifique se todos os arquivos necessários abaixo estão contidos na pasta executando o comando tree
.

Executando o Terraform para Criar a VPC AWS
Agora que você tem o arquivo de configuração do Terraform e os arquivos de variáveis prontos para serem usados, é hora de iniciar o Terraform e criar a VPC! Para provisionar uma configuração do Terraform, o Terraform geralmente utiliza uma abordagem de três etapas terraform init → terraform plan → terraform apply. Vamos percorrer cada etapa agora.
1. Abra um terminal e vá para o diretório ~\terraform-vpc-demo.
2. Execute o comando terraform init
no mesmo diretório. O comando terraform init
inicializa os plugins e provedores necessários para trabalhar com recursos.
Se tudo correr bem, você deverá ver a mensagem O Terraform foi inicializado com sucesso
na saída, como mostrado abaixo.

3. Agora, execute o comando terraform plan
. Esta é uma ação opcional, mas recomendada para garantir que a sintaxe da sua configuração esteja correta e fornecer uma visão geral dos recursos que serão provisionados em sua infraestrutura. terraform plan
Se for bem-sucedido, deverá ver uma mensagem como Plano: "X" para adicionar, "Y" para alterar ou "Z" para destruir
na saída para indicar que o comando foi bem-sucedido. Você também verá todos os recursos da AWS que o Terraform pretende criar.

4. Em seguida, informe ao Terraform para realmente provisionar a VPC da AWS e os recursos usando terraform apply
. Quando você invoca terraform apply
, o Terraform lerá a configuração (main.tf) e outros arquivos para compilar uma configuração. Em seguida, enviará essa configuração para a AWS como instruções para construir a VPC e outros componentes.

Observe os IDs definidos na saída do Terraform. Você precisará desses IDs para correlacionar os recursos criados na próxima seção.
O comando Terraform foi executado com sucesso, então vamos mudar para o Console de Gerenciamento da AWS para confirmar que a VPC e os componentes foram criados com sucesso.
Verificando a VPC do Terraform AWS
Neste momento, você deverá ter criado a VPC com o Terraform. Vamos verificar verificando manualmente a VPC no Console de Gerenciamento da AWS.
1. Abra seu navegador da web favorito e vá para o Console de Gerenciamento da AWS e faça login.
2. Enquanto estiver no Console, clique na barra de pesquisa no topo, pesquise por ‘vpc’ e clique no item de menu VPC.

3. Uma vez na página VPC, clique em Suas VPCs. Você deverá ver a VPC criada com o mesmo ID que o Terraform retornou anteriormente.

4. Uma vez que o Terraform criou mais do que apenas o recurso VPC, mas todos os recursos necessários para a VPC, você deve então encontrar cada recurso nesta página também.




Com todos os componentes criados com sucesso, usando o Terraform, esta VPC está pronta para ser utilizada!
Conclusão
Neste tutorial, você aprendeu como usar o Terraform para implantar uma VPC AWS e seus componentes usando o Terraform.
Construir uma Amazon Virtual Private Cloud com o Terraform permite que você crie recursos de forma rápida, fácil e previsível. Agora você está pronto para usar esse conhecimento com outros serviços da AWS e construir serviços poderosos com base nele.