Se você precisa configurar AWS Virtual Private Cloud (VPC), você poderia fazer isso através do AWS Management Console, mas automatizar isso é muito mais divertido! Em um cenário de DevOps, construir serviços AWS por meio de ferramentas como Terraform é uma abordagem mais escalável e automatizada para o provisionamento de recursos na nuvem.
Neste tutorial, você aprenderá como construir e executar uma configuração do Terraform para construir um VPC do Terraform do zero!
Pré-requisitos
Este post será um tutorial passo a passo. Se você deseja acompanhar, certifique-se de ter o seguinte em lugar:
- Uma conta AWS
- Terraform – Este tutorial usará o Terraform v0.14.9 rodando 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.
Entendendo os VPCs da AWS
O serviço de nuvem da AWS possui dezenas de diversos serviços, desde computação, armazenamento, rede e muito 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 entre si e não necessariamente isolado dos outros serviços. O VPC da AWS muda isso.
Um VPC da AWS é uma única rede que permite que você inicie 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, como escalabilidade, tolerância a falhas, armazenamento ilimitado, etc.

Os VPCs da AWS são restritos por região. Não é possível ter um VPC que se estenda por 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 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 de 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çado pelo mundo exterior.
- Cria uma sub-rede pública e privada
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 ‘pedaços’ 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 se conectem à 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.
4. Crie mais um arquivo dentro do diretório ~/terraform-vpc-demo, cole o seguinte código e nomeie 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 com os serviços de nuvem corretos.
provider "aws" { region = "us-east-2" }
5. Finalmente, crie mais um arquivo dentro do diretório ~/terraform-vpc-demo, nomeie 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 o AWS VPC
Agora que você tem o arquivo de configuração do Terraform e os arquivos de variáveis prontos, é hora de iniciar o Terraform e criar a VPC! Para provisionar uma configuração do Terraform, o Terraform geralmente usa uma abordagem de três estágios terraform init → terraform plan → terraform apply. Vamos passar por cada estágio agora.
1. Abra um terminal e navegue até 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 que são necessários para trabalhar com recursos.
Se tudo correr bem, você deverá ver a mensagem O Terraform foi inicializado com sucesso
na saída, conforme 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 na sua infraestrutura. terraform plan
Se for bem-sucedido, você 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 provisionar efetivamente 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 da AWS
Neste ponto, você deverá ter criado a VPC com o Terraform. Vamos verificar manualmente no Console de Gerenciamento da AWS se a VPC foi criada.
1. Abra seu navegador da web favorito e acesse o Console de Gerenciamento da AWS e faça login.
2. Enquanto estiver no Console, clique na barra de pesquisa no topo, procure por ‘vpc’ e clique no item do menu VPC.

3. Uma vez na página da 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 uso!
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 em cima dele.