

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 자습서: AWS 명령줄을 사용하여 AWS Transit Gateway 생성
<a name="tgw-getting-started-cli"></a>

이 자습서에서는를 사용하여 전송 게이트웨이 AWS CLI 를 생성하고 두 개의 VPCs 연결하는 방법을 알아봅니다. Transit Gateway를 생성하고, 두 VPC를 연결하며, Transit Gateway와 VPC 간의 통신을 활성화하도록 필요한 라우팅을 구성합니다.

## 사전 조건
<a name="prerequisites"></a>

시작하기 전에, 다음 사항을 확인해야 합니다.
+ AWS CLI 적절한 권한으로 설치 및 구성되었습니다. AWS CLI 이(가) 설치되어 있지 않다면, *AWS 명령줄 인터페이스 문서*를 참조합니다.
+ VPC는 CIDR이 동일하거나 겹칠 수 없습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC 생성](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)을 참조하세요.
+ 각 VPC에 하나의 EC2 인스턴스가 있어야 합니다. VPC에 EC2 인스턴스를 시작하는 단계는 *Amazon EC2 사용 설명서*의 [인스턴스 시작](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance)을 참조하세요.
+ 인스턴스 간 ICMP 트래픽을 허용하도록 보안 그룹이 구성되어 있어야 합니다. 보안 그룹을 사용하여 트래픽을 제어하는 단계는 *Amazon VPC 사용 설명서*에서 [보안 그룹을 사용하여 AWS 리소스에 대한 트래픽 제어](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)를 참조하세요.
+ Transit Gateway 작업에 필요한 적절한 IAM 권한이 있어야 합니다. 전송 게이트웨이 IAM 권한을 확인하려면 *AWS Transit Gateway 가이드*의 [AWS 전송 게이트웨이의 ID 및 액세스 관리를 참조하세요](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-authentication-access-control.html).

**Topics**
+ [사전 조건](#prerequisites)
+ [1단계: Transit Gateway 생성](#create-transit-gateway)
+ [2단계: Transit Gateway 가용 상태 확인](#verify-state)
+ [3단계: 전송 게이트웨이에 VPCs 연결](#attach-vpcs)
+ [4단계: Transit Gateway Attachment의 가용성 확인](#configure-routes)
+ [5단계: Transit Gateway와 VPC 간의 라우팅 추가](#create-routes)
+ [6단계: 전송 게이트웨이 테스트](#test-connectivity)
+ [7단계: Transit Gateway 연결 및 Transit Gateway 삭제](#cleanup)
+ [결론](#conclusion)

## 1단계: Transit Gateway 생성
<a name="create-transit-gateway"></a>

전송 게이트웨이를 생성할 때는 기본 전송 게이트웨이 라우팅 테이블을 AWS 생성하고 이를 기본 연결 라우팅 테이블 및 기본 전파 라우팅 테이블로 사용합니다. 다음은 `us-west-2` 리전에서의 `create-transit-gateway` 요청 예시를 보여줍니다. 요청에 추가 `options`이(가) 전달됩니다. 요청에서 전달할 수 있는 옵션 목록을 포함하여 `create-transit-gateway` 명령에 대한 자세한 정보는 [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
```

응답은 Transit Gateway가 생성되었음을 보여줍니다. 응답에서 반환된 `Options`은(는) 모두 기본값입니다.

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

**참고**  
이 명령은 ID를 포함하여 새 Transit Gateway에 대한 정보를 반환합니다. 후속 단계에서 필요하므로 Transit Gateway ID(`tgw-1234567890abcdef0`)를 기록해 두어야 합니다.

## 2단계: Transit Gateway 가용 상태 확인
<a name="verify-state"></a>

Transit Gateway를 생성할 때, `pending` 상태가 됩니다. 상태는 자동으로 보류 중에서 사용 가능으로 변경되지만, 상태가 변경될 때까지 VPC를 연결할 수 없습니다. 상태를 확인하려면 새로 생성된 Transit Gateway ID와 필터 옵션을 사용하여 `describe-transit-gatweways` 명령을 실행합니다. `filters` 옵션은 `Name=state` 및 `Values=available` 쌍을 사용합니다. 이 명령은 Transit Gateway의 상태가 사용 가능한 상태인지 확인하도록 검색합니다. 사용 가능한 상태인 경우 응답은 `"State": "available"`을(를) 표시합니다. 다른 상태인 경우 아직 사용할 수 없습니다. 명령을 실행하기 전에 몇 분 정도 기다립니다.

`describe-transit-gateways` 명령에 대한 자세한 정보는 [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
```

진행하기 전에 Transit Gateway 상태가 `pending`에서 `available`(으)로 변경될 때까지 기다립니다 다음 응답에서 `State`이(가) `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"
                }
            ]
        }
    ]
}
```

## 3단계: 전송 게이트웨이에 VPCs 연결
<a name="attach-vpcs"></a>

Transit Gateway를 사용할 수 있게 되면, `create-transit-gateway-vpc-attachment`을(를) 사용하여 각 VPC에 대한 연결을 생성합니다. `transit-gateway-id`, `vpc-id`, `subnet-ids`을(를) 포함해야 합니다.

`create-transit-vpc attachment` 명령에 대한 자세한 정보는 [create-transit-gateway-vpc-attachment](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-transit-gateway-vpc-attachment)를 참조합니다.

 다음 예시에서는 각 VPC에 대해 명령이 두 번 실행됩니다.

첫 번째 VPC의 경우, 첫 번째 `vpc_id` 및 `subnet-ids`을(를) 사용하여 다음을 실행합니다.

```
aws ec2 create-transit-gateway-vpc-attachment \
  --transit-gateway-id tgw-1234567890abcdef0 \
  --vpc-id vpc-1234567890abcdef0 \
  --subnet-ids subnet-1234567890abcdef0
```

응답은 성공적인 연결을 보여줍니다. 연결은 `pending` 상태로 생성됩니다. 이 상태는 자동으로 `available` 상태로 변경되므로 변경할 필요가 없습니다. 몇 분 정도 걸릴 수 있습니다.

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

두 번째 VPC의 경우, 두 번째 `vpc_id`와(과) `subnet-ids`을(를) 사용하여 위와 동일한 명령을 실행합니다.

```
aws ec2 create-transit-gateway-vpc-attachment \
  --transit-gateway-id tgw-1234567890abcdef0 \
  --vpc-id vpc-abcdef1234567890 \
  --subnet-ids subnet-abcdef01234567890
```

이 명령에 대한 응답 역시 성공적인 연결을 보여주며, 연결은 현재 `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"
        }
    }
}
```

## 4단계: Transit Gateway Attachment의 가용성 확인
<a name="configure-routes"></a>

Transit Gateway Attachment은 초기 `pending` 상태로 생성됩니다. 상태가 `available`(으)로 변경될 때까지 라우팅에서 이 연결을 사용할 수 없습니다. 이는 자동으로 발생합니다. `describe-transit-gateways` 명령어를 `transit-gateway-id`와(과) 함께 사용하여 `State`을(를) 확인하세요. `describe-transit-gateways` 명령에 대한 자세한 정보는 [describe-transit-gateways](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route)를 참조하세요.

상태를 확인하기 위해 다음 명령을 실행합니다. 이 예시에서는 선택적 `Name` 및 `Values` 필터가 요청에 전달됩니다.

```
aws ec2 describe-transit-gateway-vpc-attachments \
  --filters Name=transit-gateway-id,Values=tgw-1234567890abcdef0
```

다음 응답은 두 연결 모두 `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": []
        }
    ]
}
```

## 5단계: Transit Gateway와 VPC 간의 라우팅 추가
<a name="create-routes"></a>

각 VPC의 라우팅 테이블에 경로를 구성하여 `create-route` 명령어를 `transit-gateway-id`와(과) 함께 사용하여 Transit Gateway를 통해 다른 VPC로 트래픽을 전달하십시오. 다음 예시에서는 각 라우팅 테이블에 대해 명령이 두 번 실행됩니다. 요청에는 생성하려는 각 VPC 경로에 대한 `route-table-id`, `destination-cidr-block`, `transit-gateway-id`이(가) 포함됩니다.

`create-route` 명령에 대한 자세한 내용은 [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route)를 참조하세요.

첫 번째 VPC의 라우팅 테이블에 대해 다음 명령을 실행합니다.

```
aws ec2 create-route \
  --route-table-id rtb-1234567890abcdef0 \
  --destination-cidr-block 10.2.0.0/16 \
  --transit-gateway-id tgw-1234567890abcdef0
```

두 번째 VPC의 라우팅 테이블에 대해 다음 명령을 실행합니다. 이 경로는 첫 번째 VPC와는 다른 `route-table-id` 및 `destination-cidr-block`을(를) 사용합니다. 하지만 단일 Transit Gateway만 사용하고 있기 때문에, 동일한 `transit-gateway-id`이(가) 사용됩니다.

```
aws ec2 create-route \
  --route-table-id rtb-abcdef1234567890 \
  --destination-cidr-block 10.1.0.0/16 \
  --transit-gateway-id tgw-1234567890abcdef0
```

응답은 각 경로에 대해 `true`을(를) 반환하며, 경로가 생성되었음을 나타냅니다.

```
{
    "Return": true
}
```

**참고**  
대상 CIDR 블록을 귀하의 VPC의 실제 CIDR 블록으로 교체하세요.

## 6단계: 전송 게이트웨이 테스트
<a name="test-connectivity"></a>

Transit Gateway가 성공적으로 생성되었는지 확인하려면, 한 VPC 내의 EC2 인스턴스에 연결하여 다른 VPC의 인스턴스로 핑을 보낸 다음, `ping` 명령어를 실행하면 됩니다.

1. SSH 또는 EC2 Instance Connect를 사용하여 첫 번째 VPC의 EC2 인스턴스에 연결하세요.

1. 두 번째 VPC의 EC2 인스턴스 프라이빗 IP 주소로 핑을 보냅니다.

   ```
   ping 10.2.0.50
   ```
**참고**  
`10.2.0.50`을(를) 두 번째 VPC에 있는 EC2 인스턴스의 실제 프라이빗 IP 주소로 교체하세요.

핑이 성공하면, 귀하의 Transit Gateway는 올바르게 구성되어 VPC 간에 트래픽을 라우팅하고 있는 것입니다.

## 7단계: Transit Gateway 연결 및 Transit Gateway 삭제
<a name="cleanup"></a>

Transit Gateway가 더 이상 필요하지 않으면 삭제할 수 있습니다. 먼저, 모든 연결을 삭제해야 합니다. 각 연결마다 `transit-gateway-attachment-id`을(를) 사용하여 `delete-transit-gateway-vpc-attachment` 명령어를 실행하세요. 명령을 실행한 후 `delete-transit-gateway`(을)를 사용하여 Transit Gateway를 삭제합니다. 다음 단계에 따라 이전 단계에서 생성한 두 개의 VPC 연결과 단일 Transit Gateway를 삭제합니다.

**중요**  
모든 Transit Gateway 연결을 삭제하면 더 이상 요금이 발생하지 않습니다.

1. `delete-transit-gateway-vpc-attachment` 명령을 사용하여 VPC 연결을 삭제합니다. `delete-transit-gateway-vpc-attachment` 명령에 대한 자세한 내용은 [delete-transit-gateway-vpc-연결](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-transit-gateway-vpc-attachment)를 참조하세요.

   첫 번째 연결의 경우 다음 명령을 실행합니다.

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

    첫 번째 VPC 연결에 대한 삭제 응답은 다음을 반환합니다.

   ```
   {
       "TransitGatewayVpcAttachment": {
           "TransitGatewayAttachmentId": "tgw-attach-1234567890abcdef0",
           "TransitGatewayId": "tgw-1234567890abcdef0",
           "VpcId": "vpc-abcdef1234567890",
           "VpcOwnerId": "123456789012",
           "State": "deleting",
           "CreationTime": "2025-06-23T18:42:56+00:00"
       }
   }
   ```

   두 번째 연결에 대해 `delete-transit-gateway-vpc-attachment` 명령을 실행합니다.

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

   두 번째 VPC 연결에 대한 삭제 응답은 다음을 반환합니다.

   ```
   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. 연결은 삭제될 때까지 `deleting` 상태입니다. 삭제되면 Transit Gateway를 삭제할 수 있습니다. `delete-transit-gateway` 명령어와 함께 `transit-gateway-id`을(를) 사용하세요. `delete-transit-gateway` 명령어에 대한 자세한 내용은 [delete-transit-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-transit-gateway)를 참조하세요.

   다음 예시는 위에 있는 첫 번째 단계에서 생성하신 `My Transit Gateway`을(를) 삭제합니다.

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

   다음은 요청에 대한 응답을 보여주며, 여기에는 삭제된 Transit Gateway ID와 이름, 그리고 Transit Gateway 생성 시 설정된 원래 옵션이 포함됩니다.

   ```
   {
       "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"
               }
           ]
       }
   }
   ```

## 결론
<a name="conclusion"></a>

Transit Gateway를 성공적으로 생성하고, 두 VPC를 연결했으며, 그 사이의 라우팅을 구성하고, 연결을 확인했습니다. 이 간단한 예제에서는 AWS Transit Gateway의 기본 기능을 보여줍니다. 온프레미스 네트워크 연결 또는 더 고급 라우팅 구성 구현과 같은 더 복잡한 시나리오에 대해서는 [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)를 참조합니다.