Cloud & Infraestrutura

Guia Completo de NAT Gateway, VPC Peering e Transit Gateway na Prática

8 min de leitura

Guia Completo de NAT Gateway, VPC Peering e Transit Gateway na Prática

NAT Gateway: Permitindo Acesso à Internet de Forma Segura 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. 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: 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

<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 &quot;aws_eip&quot; &quot;nat_eip&quot; {

domain = &quot;vpc&quot;

tags = {

Name = &quot;nat-eip&quot;

}

depends_on = [aws_internet_gateway.igw]

}

Criar NAT Gateway em subnet pública

resource &quot;aws_nat_gateway&quot; &quot;nat_gw&quot; {

allocation_id = aws_eip.nat_eip.id

subnet_id = aws_subnet.public_subnet.id

tags = {

Name = &quot;nat-gateway&quot;

}

depends_on = [aws_internet_gateway.igw]

}

Configurar rota na subnet privada

resource &quot;aws_route_table&quot; &quot;private_rt&quot; {

vpc_id = aws_vpc.main.id

route {

destination_cidr_block = &quot;0.0.0.0/0&quot;

nat_gateway_id = aws_nat_gateway.nat_gw.id

}

}

resource &quot;aws_route_table_association&quot; &quot;private_assoc&quot; {

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 &quot;aws_vpc_peering_connection&quot; &quot;peering_a_to_b&quot; {

vpc_id = aws_vpc.vpc_a.id

peer_vpc_id = aws_vpc.vpc_b.id

tags = {

Name = &quot;vpc-a-to-b&quot;

}

}

Accepter side (VPC B) — aceitar a conexão

resource &quot;aws_vpc_peering_connection_accepter&quot; &quot;peering_accept&quot; {

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 &quot;aws_route&quot; &quot;route_to_vpc_b&quot; {

route_table_id = aws_route_table.vpc_a_rt.id

destination_cidr_block = &quot;10.1.0.0/16&quot; # 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 &quot;aws_route&quot; &quot;route_to_vpc_a&quot; {

route_table_id = aws_route_table.vpc_b_rt.id

destination_cidr_block = &quot;10.0.0.0/16&quot; # 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 &quot;aws_ec2_transit_gateway&quot; &quot;tgw&quot; {

description = &quot;Central Hub&quot;

default_route_table_association = &quot;enable&quot;

default_route_table_propagation = &quot;enable&quot;

tags = {

Name = &quot;main-tgw&quot;

}

}

Anexar VPC A ao Transit Gateway

resource &quot;aws_ec2_transit_gateway_vpc_attachment&quot; &quot;vpc_a_attachment&quot; {

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 = &quot;vpc-a-attachment&quot;

}

}

Anexar VPC B ao Transit Gateway

resource &quot;aws_ec2_transit_gateway_vpc_attachment&quot; &quot;vpc_b_attachment&quot; {

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 = &quot;vpc-b-attachment&quot;

}

}

Configurar rota na VPC A para tráfego via TGW

resource &quot;aws_route&quot; &quot;vpc_a_to_tgw&quot; {

route_table_id = aws_route_table.vpc_a_rt.id

destination_cidr_block = &quot;10.1.0.0/16&quot; # 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>

Comentários

Mais em Cloud & Infraestrutura

Guia Completo de AWS Security Hub: Postura de Segurança Centralizada
Guia Completo de AWS Security Hub: Postura de Segurança Centralizada

Introdução ao AWS Security Hub O AWS Security Hub é um serviço centralizado q...

Boas Práticas de AWS WAF e Shield: Proteção contra DDoS e Ataques Web para Times Ágeis
Boas Práticas de AWS WAF e Shield: Proteção contra DDoS e Ataques Web para Times Ágeis

Fundamentos de AWS WAF e Shield para Proteção Web AWS WAF (Web Application Fi...

Boas Práticas de AppSync: GraphQL Gerenciado com Resolvers e Real-time para Times Ágeis
Boas Práticas de AppSync: GraphQL Gerenciado com Resolvers e Real-time para Times Ágeis

AppSync: Fundamentos e Arquitetura AWS AppSync é um serviço gerenciado que pe...