Amazon Virtual Private Cloud
Guia do usuário

Gateways NAT

Você pode usar um gateway de conversão de endereços de rede (NAT) para permitir que instâncias em uma sub-rede privada se conectem à internet ou a outros serviços da AWS, mas evitar que a internet inicie uma conexão com essas instâncias. Para obter mais informações sobre NAT, consulte NAT.

Você será cobrado para criar e usar um gateway NAT em sua conta. Serão aplicadas taxas de uso por hora do gateway NAT. Cobranças pela transferência de dados no Amazon EC2 também se aplicam. Para obter mais informações, consulte Definição de preço da Amazon VPC.

Os gateways NAT não são compatíveis com tráfego IPv6 — em vez disso, use um gateway da internet somente de saída. Para obter mais informações, consulte Gateways da Internet apenas de saída.

Noções básicas de gateway NAT

Para criar um gateway NAT, você deve especificar uma sub-rede pública na qual o gateway NAT residirá. Para obter mais informações sobre sub-redes públicas e privadas, consulte Roteamento de sub-rede. Também é necessário especificar um endereço IP elástico para associá-lo com o gateway NAT ao criá-lo. O endereço IP elástico não poderá ser alterado depois que for associado ao gateway NAT. Depois que você criar um gateway NAT, você precisará atualizar a tabela de rotas associada a uma ou mais de suas sub-redes privadas para direcionar o tráfego vinculado à Internet para o gateway NAT. Isso permite que as instâncias nas sub-redes privadas se comuniquem com a internet.

Todo gateway NAT é criado em uma Zona de disponibilidade específica e implementado com redundância nessa zona. Existe um limite de gateways NAT que podem ser criados em uma Zona de disponibilidade. Para obter mais informações, consulte Limites do Amazon VPC.

nota

Se você tiver recursos em várias zonas de disponibilidade e eles compartilharem um único gateway NAT, caso a zona de disponibilidade do gateway NAT fique inativa, os recursos em outras zonas de disponibilidade perderão o acesso à internet. Para criar uma Zona de disponibilidade com arquitetura independente, crie um gateway NAT em cada Zona de disponibilidade e configure seu roteamento para garantir que os recursos usem o gateway NAT na mesma Zona de disponibilidade.

Caso não precise mais de um gateway NAT, você pode excluí-lo. A exclusão de um gateway NAT dissocia o respectivo endereço IP elástico, mas não libera o endereço de sua conta.

O diagrama a seguir mostra a arquitetura desse de uma VPC com um gateway NAT. A tabela de rotas principal envia tráfego de internet das instâncias na sub-rede privada para o gateway NAT. O gateway NAT envia o tráfego para o gateway da internet usando o endereço IP elástico do gateway NAT como o endereço IP de origem.


          VPC com sub-redes públicas e privadas e um gateway NAT

Regras e limitações do gateway NAT

Um gateway NAT tem as características e limitações a seguir:

  • Um gateway NAT comporta 5 Gbps de largura de banda e escala automaticamente até 45 Gbps. Se você precisar de mais, é possível distribuir a carga de trabalho dividindo os recursos em várias sub-redes e criando um gateway NAT em cada sub-rede.

  • Você pode associar precisamente um endereço IP elástico ao gateway NAT. Não é possível dissociar um endereço IP elástico de um gateway NAT depois que ele é criado. Para usar outro endereço IP elástico no gateway NAT, crie um novo gateway NAT com o endereço necessário, atualize suas tabelas de rotas e, em seguida, exclua o gateway NAT existente, caso não precise mais dele.

  • Um gateway NAT é compatível com os seguintes protocolos: TCP, UDP e ICMP.

  • Não é possível associar um security group a um gateway NAT. Você pode usar security groups para suas instâncias em sub-redes privadas para controlar o tráfego para e proveniente dessas instâncias.

  • Você pode usar uma Network ACL para controlar o tráfego para e proveniente da sub-rede na qual o gateway NAT está localizado. Uma Network ACL é aplicável ao tráfego do gateway NAT. Um gateway NAT usa as portas 1024 a 65535. Para obter mais informações, consulte Network ACLs.

  • No momento em que um gateway NAT é criado, ele recebe uma interface de rede à qual é automaticamente atribuído um endereço IP privado de um intervalo de endereços IP de sua sub-rede. Você pode visualizar a interface de rede do gateway NAT no console do Amazon EC2. Para obter mais informações, consulte Viewing Details about a Network Interface. Não é possível modificar os atributos da interface de rede.

  • O gateway NAT não pode ser acessado por uma conexão ClassicLink associa à sua VPC.

  • Um gateway NAT comporta no máximo 55.000 conexões simultâneas para cada destino exclusivo. Esse limite também se aplica se você criar aproximadamente 900 por segundo com um único destino (aproximadamente 55.000 conexões por minuto). Se o endereço IP de destino, a porta de destino ou o protocolo (TCP/UDP/ICMP) mudar, você poderá criar 55,000 conexões suplementares. Para mais de 55.000 conexões, há uma chance maior de erros de conexão devido a erros de alocação de porta. Esses erros podem ser monitorados visualizando a métrica do ErrorPortAllocation CloudWatch do seu gateway NAT. Para obter mais informações, consulte Monitoramento de gateways NAT usando o Amazon CloudWatch.

Migrar de uma instância NAT

Se você já tiver uma instância NAT, poderá substituí-la por um gateway NAT. Para isso, crie um gateway NAT na mesma sub-rede de sua instância NAT e substitua a rota existente em sua tabela direcionada à instância NAT que tem uma rota para o gateway NAT. Para usar o mesmo endereço IP elástico para o gateway NAT que está sendo usado atualmente para a instância NAT, você deve primeiro desassociar o endereço IP elástico da instância NAT e associá-lo a seu gateway NAT ao criar o gateway.

nota

Se mudar o roteamento de uma instância NAT para um gateway NAT ou se dissociar o endereço IP elástico de sua instância NAT, qualquer conexão atual será interrompida e precisará ser restabelecida. Verifique se não há nenhuma tarefa essencial em execução (ou qualquer tarefa que seja executada por meio de uma instância NAT).

Como usar um gateway NAT com VPC endpoints, AWS Site-to-Site VPN, AWS Direct Connect ou emparelhamento de VPC

Um gateway NAT não pode enviar tráfego por VPC endpoints, conexões do AWS Site-to-Site VPN, AWS Direct Connect ou conexões de emparelhamento de VPC. Se as instâncias na sub-rede privada precisarem acessar recursos por meio de um VPC endpoint, de uma conexão do Site-to-Site VPN ou do AWS Direct Connect, use a tabela de rotas da sub-rede privada para rotear o tráfego diretamente para esses dispositivos.

Por exemplo, a tabela de rotas da sub-rede privada tem as seguintes rotas: o tráfego vinculado à internet (0.0.0.0/0) é roteado para um gateway NAT, o tráfego do Amazon S3 traffic (pl-xxxxxxxx; um intervalo específico de endereços IP para o Amazon S3) é roteado para um VPC endpoint e o tráfego 10.25.0.0/16 é roteado para uma conexão de emparelhamento de VPC. Os intervalos de endereço IP pl-xxxxxxxx e 10.25.0.0/16 são mais específicos do que 0.0.0.0/0; quando suas instâncias enviam tráfego para o Amazon S3 ou a VPC emparelhada, o tráfego é enviado para o VPC endpoint ou a conexão de emparelhamento de VPC. Quando as instâncias enviam tráfego para a internet (além dos endereços IP do Amazon S3), o tráfego é enviado para o gateway NAT.

Não é possível rotear o tráfego para um gateway NAT por meio de uma conexão de emparelhamento de VPC, uma conexão do Site-to-Site VPN ou do AWS Direct Connect. Um gateway NAT não pode ser usado por recursos que se encontram no outro lado dessas conexões.

Melhores práticas ao enviar tráfego para o Amazon S3 ou o DynamoDB na mesma região

Para evitar cobranças por processamento de dados para gateways NAT ao acessar Amazon S3 e DynamoDB que estejam na mesma região, configure um endpoint de gateway e faça o roteamento do tráfego através dele, em vez do gateway NAT. Não há cobranças pelo uso de um endpoint do gateway. Para obter mais informações, consulte VPC Endpoints de gateway.

Como trabalhar com gateways NAT

Você pode usar o console da Amazon VPC para criar, visualizar e excluir um gateway NAT. Além disso, você pode usar o assistente de Amazon VPC para criar uma VPC com uma sub-rede pública, uma sub-rede privada e um gateway NAT. Para obter mais informações, consulte Cenário 2: VPC com sub-redes pública e privada (NAT).

Criando um gateway de NAT

Para criar um gateway NAT, é necessário especificar uma sub-rede e um endereço IP elástico. Verifique se no momento o endereço IP elástico está associado a uma instância ou a uma interface de rede. Se estiver migrando de uma instância NAT para um gateway NAT e desejar reutilizar o endereço IP elástico da instância NAT, deverá primeiro dissociar o endereço de sua instância NAT.

Para criar um gateway NAT

  1. Abra o console de Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha NAT Gateways, Create NAT Gateway.

  3. Especifique a sub-rede na qual criará o gateway NAT e selecione o ID de alocação de um endereço IP elástico para associá-lo ao gateway NAT. Quando concluir, escolha Create a NAT Gateway.

  4. O gateway NAT é exibido no console. Após alguns instantes, quando o status muda para Available, ele estará pronto para ser usado.

Se o gateway NAT adquirir o status Failed, isso significa que ocorreu um erro durante sua criação. Para obter mais informações, consulte O gateway NAT entra no status de falha.

Atualizando sua tabela de rotas

Depois de criar o gateway NAT, você deve atualizar as tabelas de rotas de suas sub-redes privadas para apontarem o tráfego da internet para o gateway NAT. Para determinar como o tráfego deve ser roteado, usamos a rota mais específica que corresponde ao tráfego (correspondência de prefixo mais longa). Para obter mais informações, consulte Prioridade de rota.

Para criar uma rota para um gateway NAT

  1. Abra o console de Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Route Tables.

  3. Selecione a tabela de rotas associada à sua sub-rede privada e escolha Routes, Edit.

  4. Escolha Add another route. Em Destination, digite 0.0.0.0/0. Em Target, selecione o ID de seu gateway NAT.

    nota

    Se estiver migrando de uma instância NAT, poderá substituir a rota atual direcionada para uma instância NAT por uma rota para o gateway NAT.

  5. Escolha Salvar.

Para garantir que seu gateway NAT possa acessar a internet, a tabela de rotas associada à sub-rede na qual seu gateway NAT reside deve conter uma rota que aponte o tráfego da internet para um gateway da internet. Para obter mais informações, consulte Criando uma tabela de rotas personalizada. Se excluir um gateway NAT, as rotas desse gateway permanecerão com o status blackhole até o momento em que excluir ou atualizar as rotas. Para obter mais informações, consulte Como adicionar e remover rotas de uma tabela.

Exclusão de um gateway NAT

É possível excluir um gateway NAT usando o console da Amazon VPC. Depois que um gateway NAT é excluído, sua entrada permanece visível no console da Amazon VPC durante um breve período (normalmente, uma hora) e depois é automaticamente removida. Você não consegue removê-la.

Para excluir um gateway NAT

  1. Abra o console de Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha NAT Gateways.

  3. Selecione o gateway NAT e escolha Actions, Delete NAT Gateway.

  4. Na caixa de diálogo de confirmação, escolha Delete NAT Gateway.

Como testar um gateway NAT

Depois de criar o gateway NAT e atualizar as tabelas de rotas, você poderá executar ping na internet de uma instância na sua sub-rede privada para testar se ela pode se conectar à internet. Para obter um exemplo de como fazer isso, consulte Como testar a conexão com a Internet.

Se não for possível conectar-se à internet, você também poderá executar os testes a seguir para determinar se o tráfego da internet está sendo roteado através do gateway NAT:

  • Você pode rastrear a rota do tráfego de uma instância em sua sub-rede privada. Para isso, execute o comando traceroute em uma instância Linux em sua sub-rede privada. Na saída, você deve ver o endereço IP privado do gateway NAT em um dos saltos (normalmente, no primeiro salto).

  • Use um site ou uma ferramenta de terceiros que exiba o endereço IP de origem quando você se conecta a ele de uma instância de sua sub-rede privada. O endereço IP de origem deve ser o endereço IP elástico de seu gateway NAT. Você pode obter o endereço IP elástico e o endereço IP privado de seu gateway NAT visualizando as respectivas informações na página Gateways NAT no console da Amazon VPC.

Se os testes anteriores falharem, consulte Solução de problemas com gateways NAT.

Como testar a conexão com a Internet

O exemplo a seguir demonstra como você testa se a instância em uma sub-rede privada pode conectar-se com a internet.

  1. Execute uma instância em sua sub-rede pública (você a usa como bastion host). Para obter mais informações, consulte Inicialização de uma instância em sua sub-rede. No assistente de execução, você deve selecionar uma AMI do Amazon Linux e atribuir um endereço IP público à sua instância. Verifique se as regras do grupo de segurança permitem tráfego SSH de entrada do intervalo de endereços IP de sua rede local e tráfego SSH de saída para o intervalo de endereços IP da sub-rede privada (você também pode usar 0.0.0.0/0 para tráfego SSH de entrada e de saída para este teste).

  2. Execute uma instância em sua sub-rede privada. No assistente de execução, selecione uma AMI do Amazon Linux. Não atribua um endereço IP público à sua instância. Confirme se as regras de seu security group permitem tráfego SSH de entrada do intervalo de endereços IP privados da instância que você executou na sub-rede pública e todos os tráfegos ICMP de saída. Você deve escolher o mesmo par de chaves que usou para executar sua instância na sub-rede pública.

  3. Configure o encaminhamento de agente SSH no computador local e conecte-se ao host bastion na sub-rede pública. Para obter mais informações, consulte Para configurar o encaminhamento de agente SSH para Linux ou macOS ou Para configurar o encaminhamento de agente SSH para Windows (PuTTY).

  4. No host bastion, conecte-se à instância na sub-rede privada e teste a conexão com a internet na instância na sub-rede privada. Para obter mais informações, consulte Para testar a conexão com a internet.

Para configurar o encaminhamento de agente SSH para Linux ou macOS

  1. Em seu computador local, adicione sua chave privada para o agente de autenticação.

    Para o Linux, use o comando a seguir:

    ssh-add -c mykeypair.pem

    Para o macOS, use o comando a seguir:

    ssh-add -K mykeypair.pem
  2. Conecte-se à sua instância na sub-rede pública usando a opção -A para permitir o encaminhamento de agente SSH e use o endereço público da instância; por exemplo:

    ssh -A ec2-user@54.0.0.123

Para configurar o encaminhamento de agente SSH para Windows (PuTTY)

  1. Faça download e instale o Pageant na página de download PuTTY, se ele ainda não estiver instalado.

  2. Converta sua chave privada no formato .ppk. Para obter mais informações, consulte Converter sua chave privada usando o PuTTYgen no Guia do usuário do Amazon EC2 para instâncias do Linux.

  3. Inicie o Pageant, clique com o botão direito no ícone do Pageant na barra de tarefas (ele pode estar oculto) e escolha Add Key. Selecione o arquivo .ppk que você criou, digite a senha se necessário e escolha Open.

  4. Inicie a sessão PuTTY session e conecte-se à sua instância na sub-rede pública usando o respectivo endereço IP. Para obter mais informações, consulte Starting a PuTTY Session. Na categoria Auth, selecione a opção Allow agent forwarding e deixe a caixa Private key file for authentication em branco.

Para testar a conexão com a internet

  1. Em sua instância na sub-rede pública, conecte-se à sua instância na sub-rede privada usando o respectivo endereço IP privado; por exemplo:

    ssh ec2-user@10.0.1.123
  2. Na instância privada, teste se é possível conectar-se à internet executando o comando ping para um site que tenha o ICMP habilitado, por exemplo:

    ping ietf.org
    PING ietf.org (4.31.198.44) 56(84) bytes of data. 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=1 ttl=47 time=86.0 ms 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=2 ttl=47 time=75.6 ms ...

    Pressione Ctrl+C no teclado para cancelar o comando ping. Se o comando ping falhar, consulte As instâncias não conseguem acessar a Internet.

  3. (Opcional) Se você não precisar mais das instâncias, encerre-as. Para obter mais informações, consulte Encerrar sua instância no Guia do usuário do Amazon EC2 para instâncias do Linux.

Como controlar o uso de gateways NAT

Por padrão, os usuários do IAM não têm permissão para trabalhar com gateways NAT. Você pode criar uma política de usuário do IAM que conceda permissão aos usuários para criar, descrever e excluir gateways NAT. No momento, não oferecemos permissões de recurso para nenhuma ec2:*NatGateway* operação de API. Para obter mais informações sobre políticas do IAM para Amazon VPC, consulte Como controlar o acesso aos recursos do Amazon VPC.

Marcar um gateway NAT

Você pode marcar o gateway NAT para ajudar a identificá-lo ou categorizá-lo de acordo com as necessidades da organização. Para obter informações sobre trabalhar com tags, consulte Marcar os recursos do Amazon EC2 no Guia do usuário do Amazon EC2 para instâncias do Linux.

As tags de alocação de custos são compatíveis com gateways NAT, portanto, você também pode usar tags para organizar a conta da AWS e refletir sua própria estrutura de custo. Para obter mais informações, consulte Uso de tags de alocação de custos no Guia do usuário do AWS Billing and Cost Management. Para obter mais informações sobre como configurar um relatório de alocação de custos com tags, consulte Relatório mensal de alocação de custos em Sobre o faturamento de conta da AWS.

Visão geral sobre API e CLI

Você pode executar as tarefas descritas nesta página usando a linha de comando ou uma API. Para obter mais informações sobre as interfaces de linha de comando e uma lista de operações de API disponíveis, consulte Como acessar a Amazon VPC.

Criar um gateway NAT

Marcar um gateway NAT

Descrever um gateway NAT

Excluir um gateway NAT