Configurando VPC e redes
Provisione uma nuvem privada virtual da AWS, sub-redes e grupos de segurança com Terraform para fornecer uma base de rede segura e isolada à sua infraestrutura.
Configurando VPC e redes é uma aula grátis de Terraform Infrastructure as Code no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Terraform Infrastructure as Code, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Terraform Infrastructure as Code inclui 4 aulas no total.
Por que usar uma VPC personalizada?
Toda conta da AWS vem com uma VPC padrão, mas a infraestrutura de produção merece uma rede projetada por você. Uma VPC (nuvem privada virtual) é uma seção isolada da nuvem da AWS na qual você controla intervalos de IP, sub-redes, roteamento e firewalls.
Com o Terraform, você descreve toda a rede como código, tornando-a reproduzível entre regiões e contas.
Declarando o recurso VPC
O recurso aws_vpc é a raiz da sua rede. O bloco CIDR define o intervalo de IP privado. Um bloco /16 fornece aproximadamente 65.000 endereços para dividir em sub-redes.
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true
tags = {
Name = "main-vpc"
}
}Sub-redes públicas e privadas
As sub-redes dividem o intervalo da VPC em blocos menores associados a uma zona de disponibilidade.
- Sub-rede pública — roteia para um gateway da Internet e é usada por balanceadores de carga e servidores bastion.
- Sub-rede privada — não possui uma rota direta para a Internet e é ideal para bancos de dados e servidores de aplicações.
Criando uma sub-rede pública
Cada sub-rede precisa de seu próprio CIDR (uma parte do intervalo da VPC) e de uma zona de disponibilidade. Definir map_public_ip_on_launch como true atribui automaticamente IPs públicos às instâncias iniciadas aqui.
resource "aws_subnet" "public" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1a"
map_public_ip_on_launch = true
tags = {
Name = "public-subnet"
}
}O gateway da Internet
Um gateway da Internet (IGW) permite que os recursos de uma sub-rede pública acessem a Internet. Você o associa diretamente à VPC.
resource "aws_internet_gateway" "gw" {
vpc_id = aws_vpc.main.id
tags = {
Name = "main-igw"
}
}Tabelas de rotas
Uma sub-rede só se torna realmente pública quando uma tabela de rotas envia o tráfego 0.0.0.0/0 para o gateway da Internet. As tabelas de rotas associam CIDRs de destino a alvos.
resource "aws_route_table" "public" {
vpc_id = aws_vpc.main.id
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.gw.id
}
}Associando rotas a sub-redes
As tabelas de rotas não fazem nada até serem associadas a uma sub-rede. O recurso aws_route_table_association cria essa ligação.
resource "aws_route_table_association" "public" {
subnet_id = aws_subnet.public.id
route_table_id = aws_route_table.public.id
}Grupos de segurança como firewalls
Um grupo de segurança é um firewall virtual com estado ao redor de uma instância. Ter estado significa que o tráfego de retorno de uma solicitação de entrada permitida é autorizado automaticamente; por isso, normalmente você só precisa especificar as regras de entrada relevantes.
Definindo um grupo de segurança web
Abaixo, permitimos HTTP de entrada de qualquer origem e todo o tráfego de saída. Em implantações reais, restrinja o CIDR de origem tanto quanto possível.
resource "aws_security_group" "web" {
name = "web-sg"
vpc_id = aws_vpc.main.id
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}Conectando uma instância à rede
Associe a sub-rede e o grupo de segurança a uma instância do EC2 por meio de subnet_id e vpc_security_group_ids. Isso coloca o servidor dentro da sua rede personalizada.
resource "aws_instance" "app" {
ami = "ami-0abcd1234"
instance_type = "t3.micro"
subnet_id = aws_subnet.public.id
vpc_security_group_ids = [aws_security_group.web.id]
}Expondo IDs de rede
Exponha IDs importantes como saídas para que outros módulos ou sua equipe possam referenciá-los após a aplicação.
output "vpc_id" {
value = aws_vpc.main.id
}
output "public_subnet_id" {
value = aws_subnet.public.id
}Verificação rápida
Teste sua compreensão do roteamento de VPC.
Recapitulação: sua base de rede
Você criou uma rede completa no Terraform:
- aws_vpc com um intervalo CIDR.
- Sub-redes distribuídas entre zonas de disponibilidade, públicas ou privadas.
- Gateway da Internet e tabelas de rotas para acesso público.
- Grupos de segurança como firewalls com estado.
Essa rede é a base à qual todos os outros recursos da AWS se conectam.
Perguntas Frequentes
A aula “Configurando VPC e redes” é grátis?
Sim — o texto completo de “Configurando VPC e redes” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Terraform Infrastructure as Code, atualize para CoddyKit PRO. O curso de Terraform Infrastructure as Code inclui 4 aulas no total.
O que vou aprender em “Configurando VPC e redes”?
Provisione uma nuvem privada virtual da AWS, sub-redes e grupos de segurança com Terraform para fornecer uma base de rede segura e isolada à sua infraestrutura. Você pratica Terraform Infrastructure as Code com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Terraform Infrastructure as Code?
Nenhuma experiência prévia é necessária. Terraform Infrastructure as Code no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Configurando VPC e redes”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Terraform Infrastructure as Code?
Sim. Cada aula de Terraform Infrastructure as Code inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Configuração do Provedor AWS
- Provisionamento de Instâncias EC2
- Gerenciamento de Buckets S3 e IAM
- Configurando VPC e redes