

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: Crie um AWS Transit Gateway usando a linha de AWS comando
<a name="tgw-getting-started-cli"></a>

Neste tutorial, você aprenderá a usar o AWS CLI para criar um gateway de trânsito e conectar dois VPCs a ele. Você criará o gateway de trânsito, conectará os dois VPCs e configurará as rotas necessárias para permitir a comunicação entre o gateway de trânsito e o seu VPCs.

## Pré-requisitos
<a name="prerequisites"></a>

Antes de começar, você deve ter o seguinte:
+ AWS CLI instalado e configurado com as permissões apropriadas. Se você não tiver a AWS CLI instalada, consulte a *Documentação da AWS Command Line Interface*.
+ Eles não VPCs podem ser idênticos nem sobrepostos CIDRs. Para obter mais informações, consulte [Criar uma VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) 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](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) 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 em AWS Transit Gateways](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-authentication-access-control.html) no *AWS Transit Gateway Guia*. 

**Topics**
+ [Pré-requisitos](#prerequisites)
+ [Etapa 1: Criar o gateway de trânsito](#create-transit-gateway)
+ [Etapa 2: verificar o estado de disponibilidade do gateway de trânsito](#verify-state)
+ [Etapa 3: conecte seu VPCs ao seu gateway de trânsito](#attach-vpcs)
+ [Etapa 4: verificar se os anexos do gateway de trânsito estão disponíveis](#configure-routes)
+ [Etapa 5: Adicione rotas entre seu gateway de trânsito e VPCs](#create-routes)
+ [Etapa 6: testar o gateway de trânsito](#test-connectivity)
+ [Etapa 7: exclua os anexos do gateway de trânsito e o gateway de trânsito](#cleanup)
+ [Conclusão](#conclusion)

## Etapa 1: Criar o gateway de trânsito
<a name="create-transit-gateway"></a>

Quando você cria um gateway de trânsito, AWS cria uma tabela de rotas padrão do gateway de trânsito e a usa como 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 `create-transit-gateway` comando, incluindo uma lista das opções que você pode passar na solicitação, consulte [create-transit-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/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
<a name="verify-state"></a>

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 nenhum VPCs 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](https://docs.aws.amazon.com/cli/latest/reference/ec2/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: conecte seu VPCs ao seu gateway de trânsito
<a name="attach-vpcs"></a>

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 `create-transit-vpc attachment` comando, consulte [create-transit-gateway-vpc-attachment](https://docs.aws.amazon.com/cli/latest/reference/ec2/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
<a name="configure-routes"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route).

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: Adicione rotas entre seu gateway de trânsito e VPCs
<a name="create-routes"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/ec2/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 do seu. VPCs

## Etapa 6: testar o gateway de trânsito
<a name="test-connectivity"></a>

É 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`.

1. Conectar sua instância do EC2 na primeira VPC usando SSH ou EC2 Instance Connect

1. Faça ping do endereço IP privado da instância do EC2 na segunda VPC:

   ```
   ping 10.2.0.50
   ```
**nota**  
Substitua `10.2.0.50` pelo 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 seus VPCs.

## Etapa 7: exclua os anexos do gateway de trânsito e o gateway de trânsito
<a name="cleanup"></a>

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.

1. Exclua os anexos da VPC usando o comando `delete-transit-gateway-vpc-attachment`. Para obter mais informações sobre o `delete-transit-gateway-vpc-attachment` comando, consulte [delete-transit-gateway-vpc-attachment](https://docs.aws.amazon.com/cli/latest/reference/ec2/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-1234567890abcdef0
   ```

    A 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-attachment` para o segundo anexo:

   ```
   aws ec2 delete-transit-gateway-vpc-attachment \
     --transit-gateway-attachment-id tgw-attach-abcdef1234567890
   ```

   A 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"
       }
   }
   ```

1. Os anexos ficam em um estado `deleting` até que sejam excluídos. Depois de excluídos, você pode excluir o gateway de trânsito. Use o comando `delete-transit-gateway` junto com o `transit-gateway-id`. Para obter mais informações sobre `delete-transit-gateway` o comando, consulte [delete-transit-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-transit-gateway). 

   O exemplo a seguir exclui o `My Transit Gateway` que você criou na primeira etapa acima:

   ```
   aws ec2 delete-transit-gateway \
     --transit-gateway-id tgw-1234567890abcdef0
   ```

   Veja 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
<a name="conclusion"></a>

Você criou com sucesso um gateway de trânsito, anexou dois VPCs a ele, configurou o roteamento entre eles e verificou a conectividade. Este exemplo simples demonstra a funcionalidade básica dos 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 [https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html).