As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Tutorial: Criar um AWS Transit Gateway usando a linha de comando da AWS
Neste tutorial, você aprenderá como usar a AWS CLI para criar um gateway de trânsito e conectar duas VPCs a ele. Você criará o gateway de trânsito, conectará as duas VPCs e configurará as rotas necessárias para permitir a comunicação entre o gateway de trânsito e suas VPCs.
Pré-requisitos
Antes de começar, garanta que você tenha:
A AWS CLI instalada e configurada com as permissões apropriadas. Se você não tiver a AWS CLI instalada, consulte a Documentação da AWS Command Line Interface.
As VPCs não podem ter CIDRs idênticos nem sobrepostos. Para obter mais informações, consulte Criar uma VPC no Guia do usuário da Amazon VPC.
Uma instância do EC2 em cada VPC. Para ver as etapas para iniciar uma instância do EC2 em uma VPC, consulte Executar uma instância no Guia do usuário do Amazon EC2.
Grupos de segurança configurados para permitir tráfego de ICMP entre as instâncias. Para as etapas de controle de tráfego usando grupos de segurança, consulte Controle o tráfego para seus recursos da AWS usando grupos de segurança no Guia do usuário da Amazon VPC.
Permissões do IAM apropriadas para trabalhar com gateways de trânsito. Para verificar as permissões do IAM do Transit Gateway, consulte Gerenciamento de identidade e acesso no AWS Transit Gateways no Guia do AWS Transit Gateway.
Etapas
Etapa 1: Criar o gateway de trânsito
Ao criar um gateway de trânsito, a AWS cria uma tabela de rotas de gateway de tráfego padrão e a usa como uma tabela de rotas de associação padrão e tabela de rotas de propagação padrão. O exemplo a seguir mostra uma solicitação create-transit-gateway na região us-west-2. options adicionais foram aprovadas na solicitação. Para obter mais informações sobre o comando create-transit-gateway, incluindo uma lista das opções que você pode aprovar na solicitação, consulte create-transit-gateway.
aws ec2 create-transit-gateway \ --description "My Transit Gateway" \ --region us-west-2
A resposta então mostra que o gateway de trânsito foi criado. Na resposta, as Options que são exibidas são todos valores padrão.
{ "TransitGateway": { "TransitGatewayId": "tgw-1234567890abcdef0", "TransitGatewayArn": "arn:aws:ec2:us-west-2:123456789012:transit-gateway/tgw-1234567890abcdef0", "State": "pending", "OwnerId": "123456789012", "Description": "My Transit Gateway", "CreationTime": "2025-06-23T17:39:33+00:00", "Options": { "AmazonSideAsn": 64512, "AutoAcceptSharedAttachments": "disable", "DefaultRouteTableAssociation": "enable", "AssociationDefaultRouteTableId": "tgw-rtb-abcdef1234567890a", "DefaultRouteTablePropagation": "enable", "PropagationDefaultRouteTableId": "tgw-rtb-abcdef1234567890a", "VpnEcmpSupport": "enable", "DnsSupport": "enable", "SecurityGroupReferencingSupport": "disable", "MulticastSupport": "disable" } } }
nota
Esse comando retorna informações sobre seu novo gateway de trânsito, incluindo seu ID. Anote o ID do gateway de trânsito (tgw-1234567890abcdef0), pois ele será necessário nas próximas etapas.
Etapa 2: verificar o estado de disponibilidade do gateway de trânsito
Quando você cria um gateway de trânsito, ele é colocado em um estado pending. O estado mudará de pendente para disponível automaticamente, mas até que isso aconteça, você não poderá anexar nenhuma VPC até que o estado mude. Para verificar o estado, execute o comando describe-transit-gatweways usando o ID do gateway de trânsito recém-criado junto com a opção de filtros. A opção filters usa pares Name=state e Values=available. Em seguida, o comando pesquisa para verificar se o estado do seu gateway de trânsito está em um estado disponível. Se estiver, a resposta "State": "available" será exibida. Se estiver em qualquer outro estado, ainda não estará disponível para uso. Aguarde alguns minutos antes de executar o comando.
Para obter mais informações sobre o comando describe-transit-gateways, consulte describe-transit-gateways.
aws ec2 describe-transit-gateways \ --transit-gateway-ids tgw-1234567890abcdef0 \ --filters Name=state,Values=available
Espere até que o estado do gateway de trânsito mude de pending para available antes de continuar. Na resposta a seguir, o State mudou para available.
{ "TransitGateways": [ { "TransitGatewayId": "tgw-1234567890abcdef0", "TransitGatewayArn": "arn:aws:ec2:us-west-2:123456789012:transit-gateway/tgw-1234567890abcdef0", "State": "available", "OwnerId": "123456789012", "Description": "My Transit Gateway", "CreationTime": "2022-04-20T19:58:25+00:00", "Options": { "AmazonSideAsn": 64512, "AutoAcceptSharedAttachments": "disable", "DefaultRouteTableAssociation": "enable", "AssociationDefaultRouteTableId": "tgw-rtb-abcdef1234567890a", "DefaultRouteTablePropagation": "enable", "PropagationDefaultRouteTableId": "tgw-rtb-abcdef1234567890a", "VpnEcmpSupport": "enable", "DnsSupport": "enable", "SecurityGroupReferencingSupport": "disable", "MulticastSupport": "disable" }, "Tags": [ { "Key": "Name", "Value": "example-transit-gateway" } ] } ] }
Etapa 3: Anexar as VPCs ao gateway de trânsito
Quando o gateway de trânsito estiver disponível, crie um anexo para cada VPC usando create-transit-gateway-vpc-attachment. Você precisará incluir transit-gateway-id, vpc-id e subnet-ids.
Para obter mais informações sobre o comando create-transit-vpc attachment, consulte create-transit-gateway-vpc-attachment.
No exemplo a seguir, o comando é executado duas vezes, uma para cada VPC.
Para a primeira VPC, execute o seguinte usando a primeira vpc_id e os subnet-ids:
aws ec2 create-transit-gateway-vpc-attachment \ --transit-gateway-id tgw-1234567890abcdef0 \ --vpc-id vpc-1234567890abcdef0 \ --subnet-ids subnet-1234567890abcdef0
A resposta mostra o anexo bem-sucedido. O anexo é criado em um estado pending. Não há necessidade de alterar esse estado, pois ele muda para um estado available automaticamente. Isso pode demorar vários minutos.
{ "TransitGatewayVpcAttachment": { "TransitGatewayAttachmentId": "tgw-attach-1234567890abcdef0", "TransitGatewayId": "tgw-1234567890abcdef0", "VpcId": "vpc-1234567890abcdef0", "VpcOwnerId": "123456789012", "State": "pending", "SubnetIds": [ "subnet-1234567890abcdef0", "subnet-abcdef1234567890" ], "CreationTime": "2025-06-23T18:35:11+00:00", "Options": { "DnsSupport": "enable", "SecurityGroupReferencingSupport": "enable", "Ipv6Support": "disable", "ApplianceModeSupport": "disable" } } }
Para a segunda VPC, execute o mesmo comando acima usando a segunda a vpc_id e os subnet-ids:
aws ec2 create-transit-gateway-vpc-attachment \ --transit-gateway-id tgw-1234567890abcdef0 \ --vpc-id vpc-abcdef1234567890 \ --subnet-ids subnet-abcdef01234567890
A resposta para esse comando também mostra um anexo bem-sucedido, com o anexo atualmente em um estado pending.
{ { "TransitGatewayVpcAttachment": { "TransitGatewayAttachmentId": "tgw-attach-abcdef1234567890", "TransitGatewayId": "tgw-1234567890abcdef0", "VpcId": "vpc-abcdef1234567890", "VpcOwnerId": "123456789012", "State": "pending", "SubnetIds": [ "subnet-fedcba0987654321", "subnet-0987654321fedcba" ], "CreationTime": "2025-06-23T18:42:56+00:00", "Options": { "DnsSupport": "enable", "SecurityGroupReferencingSupport": "enable", "Ipv6Support": "disable", "ApplianceModeSupport": "disable" } } }
Etapa 4: verificar se os anexos do gateway de trânsito estão disponíveis
Os anexos do gateway de trânsito são criados em um estado inicial pending. Não será possível usar esses anexos em suas rotas até que o estado mude para available. Isso acontece automaticamente. Use o comando describe-transit-gateways, junto com o transit-gateway-id, para verificar o State. Para obter mais informações sobre o comando describe-transit-gateways, consulte describe-transit-gateways.
Execute o comando a seguir para verificar o status. Neste exemplo, os campos opcionais Name e de filtros de Values são aprovados na solicitação:
aws ec2 describe-transit-gateway-vpc-attachments \ --filters Name=transit-gateway-id,Values=tgw-1234567890abcdef0
A resposta a seguir mostra que os dois anexos estão em um estado available:
{ "TransitGatewayVpcAttachments": [ { "TransitGatewayAttachmentId": "tgw-attach-1234567890abcdef0", "TransitGatewayId": "tgw-1234567890abcdef0", "VpcId": "vpc-1234567890abcdef0", "VpcOwnerId": "123456789012", "State": "available", "SubnetIds": [ "subnet-1234567890abcdef0", "subnet-abcdef1234567890" ], "CreationTime": "2025-06-23T18:35:11+00:00", "Options": { "DnsSupport": "enable", "SecurityGroupReferencingSupport": "enable", "Ipv6Support": "disable", "ApplianceModeSupport": "disable" }, "Tags": [] }, { "TransitGatewayAttachmentId": "tgw-attach-abcdef1234567890", "TransitGatewayId": "tgw-1234567890abcdef0", "VpcId": "vpc-abcdef1234567890", "VpcOwnerId": "123456789012", "State": "available", "SubnetIds": [ "subnet-fedcba0987654321", "subnet-0987654321fedcba" ], "CreationTime": "2025-06-23T18:42:56+00:00", "Options": { "DnsSupport": "enable", "SecurityGroupReferencingSupport": "enable", "Ipv6Support": "disable", "ApplianceModeSupport": "disable" }, "Tags": [] } ] }
Etapa 5: adicionar rotas entre os gateways de trânsito e as VPCs
Configure rotas em cada tabela de rotas da VPC para direcionar o tráfego para a outra VPC por meio do gateway de trânsito usando o comando create-route junto com a tabela de rotas de transit-gateway-id cada VPC. No exemplo a seguir, o comando é executado duas vezes, uma para tabela de rotas. A solicitação inclui o route-table-id, o destination-cidr-block e o transit-gateway-id para cada rota de VPC que você está criando.
Para obter mais informações sobre o comando create-route, consulte create-route.
Para a primeira tabela de rotas da VPC, execute o seguinte comando:
aws ec2 create-route \ --route-table-id rtb-1234567890abcdef0 \ --destination-cidr-block 10.2.0.0/16 \ --transit-gateway-id tgw-1234567890abcdef0
Para a segunda tabela de rotas da VPC, execute o seguinte comando. Essa rota usa um route-table-id e o destination-cidr-block diferente da primeira VPC. No entanto, como você está usando apenas um único gateway de trânsito, o mesmo transit-gateway-id é usado.
aws ec2 create-route \ --route-table-id rtb-abcdef1234567890 \ --destination-cidr-block 10.1.0.0/16 \ --transit-gateway-id tgw-1234567890abcdef0
A resposta retorna true para cada rota, indicando que as rotas foram criadas.
{ "Return": true }
nota
Substitua os blocos CIDR de destino pelos blocos CIDR reais de suas VPCs.
Etapa 6: Testar o gateway de trânsito
É possível confirmar se o gateway de trânsito foi criado com sucesso conectando-o a uma instância do EC2 em um VPC e fazendo ping a uma instância na outra VPC e, em seguida, executando o comando ping.
-
Conectar sua instância do EC2 na primeira VPC usando SSH ou EC2 Instance Connect
-
Faça ping do endereço IP privado da instância do EC2 na segunda VPC:
ping 10.2.0.50nota
Substitua
10.2.0.50pelo endereço IP privado real de sua instância do EC2 na segunda VPC.
Se o ping for bem-sucedido, seu gateway de trânsito está configurado corretamente e roteará o tráfego entre suas VPCs.
Etapa 7: exclua os anexos do gateway de trânsito e o gateway de trânsito
Quando não precisar mais de um gateway de trânsito, é possível excluí-lo. Primeiro, você deve excluir todos os anexos. Execute o comando delete-transit-gateway-vpc-attachment usando o transit-gateway-attachment-id para cada anexo. Depois de executar o comando, use delete-transit-gateway para excluir o gateway de trânsito. Para o seguinte, exclua os dois anexos de VPC e o gateway de trânsito único que foram criados nas etapas anteriores.
Importante
Você deixará de incorrer em cobranças depois de excluir todos os anexos do gateway de trânsito.
-
Exclua os anexos da VPC usando o comando
delete-transit-gateway-vpc-attachment. Para obter mais informações sobre o comandodelete-transit-gateway-vpc-attachment, consulte delete-transit-gateway-vpc-attachment.Para o primeiro anexo, execute o seguinte comando:
aws ec2 delete-transit-gateway-vpc-attachment \ --transit-gateway-attachment-id tgw-attach-1234567890abcdef0A resposta de exclusão para o primeiro anexo da VPC retorna o seguinte:
{ "TransitGatewayVpcAttachment": { "TransitGatewayAttachmentId": "tgw-attach-1234567890abcdef0", "TransitGatewayId": "tgw-1234567890abcdef0", "VpcId": "vpc-abcdef1234567890", "VpcOwnerId": "123456789012", "State": "deleting", "CreationTime": "2025-06-23T18:42:56+00:00" } }Execute o comando
delete-transit-gateway-vpc-attachmentpara o segundo anexo:aws ec2 delete-transit-gateway-vpc-attachment \ --transit-gateway-attachment-id tgw-attach-abcdef1234567890A resposta de exclusão para o segundo anexo da VPC retorna o seguinte:
The response returns: { "TransitGatewayVpcAttachment": { "TransitGatewayAttachmentId": "tgw-attach-abcdef1234567890", "TransitGatewayId": "tgw-1234567890abcdef0", "VpcId": "vpc-abcdef1234567890", "VpcOwnerId": "123456789012", "State": "deleting", "CreationTime": "2025-06-23T18:42:56+00:00" } } -
Os anexos ficam em um estado
deletingaté que sejam excluídos. Depois de excluídos, você pode excluir o gateway de trânsito. Use o comandodelete-transit-gatewayjunto com otransit-gateway-id. Como obter mais informações sobre o comandodelete-transit-gateway, consulte delete-transit-gateway.O exemplo a seguir exclui o
My Transit Gatewayque você criou na primeira etapa acima:aws ec2 delete-transit-gateway \ --transit-gateway-id tgw-1234567890abcdef0Veja a seguir a resposta à solicitação, que inclui o ID e o nome do gateway de trânsito excluídos, junto com as opções originais definidas para o gateway de trânsito quando ele foi criado.
{ "TransitGateway": { "TransitGatewayId": "tgw-1234567890abcdef0", "TransitGatewayArn": "arn:aws:ec2:us-west-2:123456789012:transit-gateway/tgw-1234567890abcdef0", "State": "deleting", "OwnerId": "123456789012", "Description": "My Transit Gateway", "CreationTime": "2025-06-23T17:39:33+00:00", "Options": { "AmazonSideAsn": 64512, "AutoAcceptSharedAttachments": "disable", "DefaultRouteTableAssociation": "enable", "AssociationDefaultRouteTableId": "tgw-rtb-abcdef1234567890a", "DefaultRouteTablePropagation": "enable", "PropagationDefaultRouteTableId": "tgw-rtb-abcdef1234567890a", "VpnEcmpSupport": "enable", "DnsSupport": "enable", "SecurityGroupReferencingSupport": "disable", "MulticastSupport": "disable" }, "Tags": [ { "Key": "Name", "Value": "example-transit-gateway" } ] } }
Conclusão
Você criou com sucesso um gateway de trânsito, conectou duas VPCs a ele, configurou o roteamento entre elas e verificou a conectividade. Este exemplo simples demonstra a funcionalidade básica do AWS Transit Gateways. Para cenários mais complexos, como conectar-se a redes on-premises ou implantar configurações de roteamento mais avançadas, consulte o Guia do AWS Transit Gateways.