Este projeto provisiona automaticamente VPCs, subnets públicas e privadas, Internet Gateways, Route Tables, Virtual Private Gateways (VGW), Transit Gateways (TGW), conexões de VPC Peering e rotas personalizadas na AWS utilizando Terraform. Toda configuração é realizada através de arquivos .csv, permitindo fácil manutenção e escalabilidade sem modificar diretamente o código Terraform.
tf-aws-project/
├── main.tf
├── provider.tf
├── variables.tf
├── outputs.tf
├── redes.csv
├── peerings.csv
├── routes.csv
├── .gitignore
└── modules/
└── network/
├── main.tf
├── variables.tf
└── outputs.tf
git clone <url_do_seu_repositorio>
cd tf-aws-projectCertifique-se que suas credenciais AWS estão configuradas:
aws configureContém as definições de VPCs, subnets e ativação de VGW/TGW:
name,vpc_cidr,public_subnet_cidr,private_subnet_cidr,region,az,enable_vgw,enable_tgw
vpc-network-services-us-east-2a,10.10.0.0/22,10.10.0.0/23,10.10.2.0/23,us-east-2,us-east-2a,true,true
vpc-security-services-us-east-2a,10.10.4.0/22,10.10.4.0/23,10.10.6.0/23,us-east-2,us-east-2a,true,true
vpc-infrastructure-services-us-east-2a,10.10.8.0/22,10.10.8.0/23,10.10.10.0/23,us-east-2,us-east-2a,true,trueDefine os pares de VPCs que devem ser interconectados via peering:
requester,accepter
vpc-network-services-us-east-2a,vpc-security-services-us-east-2a
vpc-network-services-us-east-2a,vpc-infrastructure-services-us-east-2a
vpc-security-services-us-east-2a,vpc-infrastructure-services-us-east-2aDefine rotas customizadas nas VPCs:
vpc_name,route_table_type,destination_cidr,target_type,target_value
vpc-infrastructure-services-us-east-2a,private,0.0.0.0/0,tgw,auto
vpc-security-services-us-east-2a,public,0.0.0.0/0,igw,auto
vpc-network-services-us-east-2a,private,10.10.4.0/22,vpc_peering,vpc-network-services-us-east-2a-vpc-security-services-us-east-2aUse
target_value = autopara IGWs e TGWs criados automaticamente pelo módulo.
Rode os comandos abaixo para provisionar os recursos:
terraform init
terraform plan
terraform applyPara cada linha no redes.csv, o Terraform provisionará automaticamente:
- 1 VPC
- 1 Internet Gateway (se necessário)
- 1 Subnet Pública (com acesso direto à internet)
- 1 Route Table Pública (associada à subnet pública)
- 1 Subnet Privada (sem acesso direto à internet)
- 1 Route Table Privada (associada à subnet privada)
- Virtual Private Gateway (VGW) (opcional)
- Transit Gateway (TGW) (opcional, compartilhado entre várias VPCs)
Para cada linha no peerings.csv, o Terraform provisionará:
- 1 VPC Peering Connection
- Rotas privadas entre as VPCs envolvidas
Para cada linha no routes.csv, o Terraform provisionará:
- Rotas customizadas (para TGW, IGW, VPC Peering, etc.) nas route tables públicas ou privadas
- Para adicionar novos ambientes, basta incluir linhas no
redes.csv - Para interconectar redes, edite o
peerings.csv - Para criar rotas customizadas, use o
routes.csv - Para adicionar NAT Gateway, Bastion Hosts, etc., expanda o módulo
network
.terraform/
*.tfstate
*.tfstate.backup
.terraform.lock.hcl
*.csv.backupEsses arquivos são gerados automaticamente e não devem ser versionados.
- Terraform instalado (
>= v1.0) - AWS CLI configurado com credenciais válidas
- Faça testes sempre com
terraform planantes de aplicar as mudanças - Utilize versionamento Git para gerenciar mudanças e evoluções do projeto
- Use budgets na AWS para evitar cobranças inesperadas
- Destrua recursos ao final do teste com
terraform destroy
Em caso de dúvidas ou problemas, consulte a documentação oficial do Terraform ou abra uma issue no seu repositório.