<h2>NAT Gateway: Permitindo Acesso à Internet de Forma Segura</h2>
<p>O NAT Gateway é um serviço gerenciado da AWS que permite que instâncias em subnets privadas acessem a internet sem expor seus IPs privados. Diferente do NAT Instance (uma EC2 configurada manualmente), o NAT Gateway é altamente disponível, escalável automaticamente e gerenciado pela AWS. Você cria um NAT Gateway em uma subnet pública, aloca um Elastic IP e configura as tabelas de rota das subnets privadas para encaminhar tráfego 0.0.0.0/0 através dele.</p>
<p>Um ponto crítico: cada NAT Gateway custa aproximadamente $0,045/hora, portanto dimensionar corretamente é essencial. Se você precisa de alta disponibilidade, crie um NAT Gateway em cada zona de disponibilidade. Abaixo, veja como configurar via Terraform — uma ferramenta Infrastructure as Code que facilita automação e reprodutibilidade:</p>
<pre><code class="language-hcl"># Criar Elastic IP para o NAT Gateway
resource "aws_eip" "nat_eip" {
domain = "vpc"
tags = {
Name = "nat-eip"
}
depends_on = [aws_internet_gateway.igw]
}
Criar NAT Gateway em subnet pública
resource "aws_nat_gateway" "nat_gw" {
allocation_id = aws_eip.nat_eip.id
subnet_id = aws_subnet.public_subnet.id
tags = {
Name = "nat-gateway"
}
depends_on = [aws_internet_gateway.igw]
}
Configurar rota na subnet privada
resource "aws_route_table" "private_rt" {
vpc_id = aws_vpc.main.id
route {
destination_cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.nat_gw.id
}
}
resource "aws_route_table_association" "private_assoc" {
subnet_id = aws_subnet.private_subnet.id
route_table_id = aws_route_table.private_rt.id
}</code></pre>
<p>Após aplicar essa configuração, qualquer instância EC2 na subnet privada poderá fazer requisições HTTP/HTTPS para a internet, recebendo respostas através do NAT Gateway. Monitorar o tráfego com CloudWatch é recomendado para evitar surpresas na fatura.</p>
<h2>VPC Peering: Conectando VPCs Diretamente</h2>
<p>VPC Peering estabelece uma conexão peer-to-peer entre duas VPCs, permitindo que se comuniquem como se estivessem na mesma rede. Esse tipo de conexão é privada, não passa pela internet pública e oferece baixa latência. O desafio principal é evitar conflito de CIDRs — as duas VPCs devem ter ranges de IP não sobreposto. Além disso, peering é não-transitivo: se VPC-A faz peer com VPC-B, e VPC-B com VPC-C, A não consegue falar com C diretamente.</p>
<p>Abaixo, um exemplo prático criando peering entre duas VPCs usando Terraform:</p>
<pre><code class="language-hcl"># Requester side (VPC A)
resource "aws_vpc_peering_connection" "peering_a_to_b" {
vpc_id = aws_vpc.vpc_a.id
peer_vpc_id = aws_vpc.vpc_b.id
tags = {
Name = "vpc-a-to-b"
}
}
Accepter side (VPC B) — aceitar a conexão
resource "aws_vpc_peering_connection_accepter" "peering_accept" {
vpc_peering_connection_id = aws_vpc_peering_connection.peering_a_to_b.id
auto_accept = true
}
Adicionar rota em VPC A para alcançar VPC B
resource "aws_route" "route_to_vpc_b" {
route_table_id = aws_route_table.vpc_a_rt.id
destination_cidr_block = "10.1.0.0/16" # CIDR do VPC B
vpc_peering_connection_id = aws_vpc_peering_connection.peering_a_to_b.id
}
Adicionar rota em VPC B para alcançar VPC A
resource "aws_route" "route_to_vpc_a" {
route_table_id = aws_route_table.vpc_b_rt.id
destination_cidr_block = "10.0.0.0/16" # CIDR do VPC A
vpc_peering_connection_id = aws_vpc_peering_connection.peering_a_to_b.id
}</code></pre>
<p>Lembre-se: após criar as rotas, atualize os Security Groups de ambas as VPCs permitindo tráfego entre os ranges. Peering é ideal para conectar 2-3 VPCs; acima disso, considere Transit Gateway.</p>
<h2>Transit Gateway: Arquitetura Hub-and-Spoke em Escala</h2>
<p>Transit Gateway (TGW) é uma solução centralizada para conectar múltiplas VPCs, redes on-premises e AWS Direct Connect. Ele opera no modelo hub-and-spoke, onde o TGW é o hub central e as VPCs e redes corporativas são os spokes. Isso resolve o problema de transitividade do VPC Peering: qualquer spoke consegue falar com qualquer outro spoke através do hub.</p>
<p>O TGW simplifica operações: em vez de gerenciar N×(N-1)/2 conexões peering (complexidade exponencial), você gerencia apenas N conexões ao TGW. Transit Gateway também suporta attachments para Direct Connect, VPN e AWS PrivateLink, tornando-o essencial em arquiteturas multi-cloud e híbridas.</p>
<pre><code class="language-hcl"># Criar Transit Gateway
resource "aws_ec2_transit_gateway" "tgw" {
description = "Central Hub"
default_route_table_association = "enable"
default_route_table_propagation = "enable"
tags = {
Name = "main-tgw"
}
}
Anexar VPC A ao Transit Gateway
resource "aws_ec2_transit_gateway_vpc_attachment" "vpc_a_attachment" {
transit_gateway_id = aws_ec2_transit_gateway.tgw.id
vpc_id = aws_vpc.vpc_a.id
subnet_ids = [aws_subnet.vpc_a_subnet.id]
tags = {
Name = "vpc-a-attachment"
}
}
Anexar VPC B ao Transit Gateway
resource "aws_ec2_transit_gateway_vpc_attachment" "vpc_b_attachment" {
transit_gateway_id = aws_ec2_transit_gateway.tgw.id
vpc_id = aws_vpc.vpc_b.id
subnet_ids = [aws_subnet.vpc_b_subnet.id]
tags = {
Name = "vpc-b-attachment"
}
}
Configurar rota na VPC A para tráfego via TGW
resource "aws_route" "vpc_a_to_tgw" {
route_table_id = aws_route_table.vpc_a_rt.id
destination_cidr_block = "10.1.0.0/16" # Destino em VPC B
transit_gateway_id = aws_ec2_transit_gateway.tgw.id
}</code></pre>
<p>Transit Gateway suporta route tables internas para criar segmentação entre spokes. Por exemplo, você pode permitir que desenvolvimento fale com produção, mas bloquear outros fluxos. Isso oferece segurança e compliance em grandes organizações.</p>
<h2>Quando Usar Cada Solução</h2>
<p><strong>NAT Gateway</strong> é obrigatório quando instâncias privadas precisam iniciar conexões outbound para a internet. Use quando suas cargas trabalham com APIs públicas, atualizações de software ou logs para S3.</p>
<p><strong>VPC Peering</strong> é suficiente para conectar 2-3 VPCs com requisitos simples de comunicação. Exemplo: VPC de produção falando com VPC de data analytics, sem necessidade de transitividade.</p>
<p><strong>Transit Gateway</strong> é mandatório em arquiteturas com 4+ VPCs, integração on-premises, ou múltiplas contas AWS. Oferece controle centralizado, escalabilidade e segmentação avançada.</p>
<h2>Conclusão</h2>
<p>Os três serviços — NAT Gateway, VPC Peering e Transit Gateway — resolvem problemas complementares na AWS. NAT Gateway habilita acesso à internet de forma segura. VPC Peering conecta VPCs diretamente com baixa complexidade e latência mínima. Transit Gateway escala para arquiteturas complexas com múltiplas VPCs, redes híbridas e segmentação avançada. Dominar esses três conceitos é fundamental para construir infraestruturas robustas, seguras e econômicas na AWS.</p>
<h2>Referências</h2>
<ul>
<li><a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html" target="_blank" rel="noopener noreferrer">AWS Documentation: NAT Gateways</a></li>
<li><a href="https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html" target="_blank" rel="noopener noreferrer">AWS Documentation: VPC Peering</a></li>
<li><a href="https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html" target="_blank" rel="noopener noreferrer">AWS Documentation: Transit Gateway</a></li>
<li><a href="https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ec2_transit_gateway" target="_blank" rel="noopener noreferrer">Terraform AWS Provider: EC2 Resources</a></li>
<li><a href="https://docs.aws.amazon.com/wellarchitected/latest/userguide/workload-review.html" target="_blank" rel="noopener noreferrer">AWS Well-Architected Framework: Network Architecture</a></li>
</ul>