翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: コマンドラインを使用して AWSAWS Transit Gateway を作成する
このチュートリアルでは、 を使用してトランジットゲートウェイ AWS CLI を作成し、2 つの VPCsを接続する方法について説明します。トランジットゲートウェイを作成し、両方の VPCsをアタッチしてから、トランジットゲートウェイと VPCs 間の通信を有効にするために必要なルートを設定します。
前提条件
開始する前に、以下を確認してください。
AWS CLI をインストールし、適切なアクセス許可で設定します。がインストールされていない場合は AWS CLI 、AWS 「 コマンドラインインターフェイスドキュメント」を参照してください。
VPCsは、同一または重複CIDRs を持つことはできません。詳細については、Amazon VPC ユーザーガイドの「VPC を作成する」を参照してください。
各 VPC に 1 つの EC2 インスタンス。VPC で EC2 インスタンスを起動する手順については、Amazon EC2 ユーザーガイド」の「インスタンスの起動」を参照してください。
インスタンス間の ICMP トラフィックを許可するように設定されたセキュリティグループ。セキュリティグループを使用してトラフィックを制御する手順については、「Amazon VPC ユーザーガイド」の「セキュリティグループを使用して AWS リソースへのトラフィックを制御する」を参照してください。
トランジットゲートウェイを操作するための適切な IAM アクセス許可。トランジットゲートウェイの IAM アクセス許可を確認するには、「 AWS Transit Gateway ガイド」の「Amazon VPC Transit Gateway での Identity and Access Management」を参照してください。
ステップ
ステップ 1: トランジットゲートウェイを作成する
トランジットゲートウェイを作成すると、 はデフォルトのトランジットゲートウェイルートテーブルAWS を作成し、それをデフォルトの関連付けルートテーブルとデフォルトの伝播ルートテーブルとして使用します。以下は、 us-west-2
リージョンでのcreate-transit-gateway
リクエストの例です。リクエストで追加の が渡options
されました。リクエストで渡すことができるオプションのリストなど、create-transit-gateway
コマンドの詳細については、「create-transit-gateway」を参照してください。
aws ec2 create-transit-gateway \ --description "My Transit Gateway" \ --region us-west-2
次に、トランジットゲートウェイが作成されたことがレスポンスに表示されます。レスポンスでは、返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 を含む新しいトランジットゲートウェイに関する情報を返します。以降のステップで必要になるため、トランジットゲートウェイ ID (tgw-1234567890abcdef0
) を書き留めます。
ステップ 2: Transit Gateway の可用性状態を確認する
トランジットゲートウェイを作成すると、 pending
状態になります。状態は自動的に保留中から使用可能に変わりますが、状態が変わるまで VPCsをアタッチすることはできません。状態を確認するには、新しく作成された Transit Gateway ID とフィルターオプションを使用して describe-transit-gatweways
コマンドを実行します。filters
オプションでは、 Name=state
と Values=available
ペアを使用します。その後、 コマンドは を検索して、トランジットゲートウェイの状態が使用可能な状態かどうかを確認します。その場合は、レスポンスに が表示されます"State": "available"
。他の状態にある場合は、まだ使用できません。コマンドを実行する前に数分待ちます。
describe-transit-gateways
コマンドの詳細については、describe-transit-gateways」を参照してください。
aws ec2 describe-transit-gateways \ --transit-gateway-ids tgw-1234567890abcdef0 \ --filters Name=state,Values=available
トランジットゲートウェイの状態が から 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をトランジットゲートウェイにアタッチする
トランジットゲートウェイが使用可能になったら、 を使用して各 VPC のアタッチメントを作成しますcreate-transit-gateway-vpc-attachment
。transit-gateway-id
、、 vpc-id
を含める必要がありますsubnet-ids
。
create-transit-vpc attachment
コマンドの詳細については、create-transit-gateway-vpc-attachment」を参照してください。
次の例では、コマンドは VPC ごとに 1 回、2 回実行されます。
最初の 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" } } }
2 番目の VPC では、2 番目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 アタッチメントが使用可能であることを確認する
トランジットゲートウェイアタッチメントは初期状態で作成されますpending
。状態が に変わるまで、これらのアタッチメントをルートで使用することはできませんavailable
。これは自動的に行われます。コマンドdescribe-transit-gateways
と を使用してtransit-gateway-id
、 を確認しますState
。describe-transit-gateways
コマンドの詳細については、describe-transit-gateways」を参照してください。
次のコマンドを実行して、ステータスを確認します。この例では、オプションフィールド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: トランジットゲートウェイと VPCsの間にルートを追加する
コマンドcreate-route
と各 VPC ルートテーブルの を使用して、トランジットゲートウェイ経由でトラフィックを他の VPC に転送するように各 VPC のルートテーブルtransit-gateway-id
にルートを設定します。次の例では、コマンドはルートテーブルごとに 1 回、2 回実行されます。リクエストにはroute-table-id
、作成する各 VPC ルートtransit-gateway-id
の destination-cidr-block
、、 が含まれます。
create-route
コマンドの詳細については、「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
2 番目の VPC のルートテーブルで、次のコマンドを実行します。このルートは、最初の VPC destination-cidr-block
とは異なる route-table-id
と を使用します。ただし、単一のトランジットゲートウェイのみを使用しているため、同じ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 ブロックを VPCs の実際の CIDR ブロックに置き換えます。
ステップ 6: トランジットゲートウェイをテストする
トランジットゲートウェイが正常に作成されたことを確認するには、ある VPC の EC2 インスタンスに接続し、別の VPC のインスタンスに ping を送信してから、 ping
コマンドを実行します。
-
SSH または EC2 Instance Connect を使用して最初の VPC の EC2 インスタンスに接続する
-
2 番目の VPC の EC2 インスタンスのプライベート IP アドレスへの Ping:
ping 10.2.0.50
注記
を 2 番目の VPC の EC2 インスタンスの実際のプライベート IP アドレス
10.2.0.50
に置き換えます。
ping が成功すると、トランジットゲートウェイが正しく設定され、VPCs。
ステップ 7: Transit Gateway アタッチメントと Transit Gateway を削除する
トランジットゲートウェイが不要になった場合は、削除できます。まず、すべての添付ファイルを削除する必要があります。アタッチメントtransit-gateway-attachment-id
ごとに を使用して delete-transit-gateway-vpc-attachment
コマンドを実行します。コマンドを実行したら、 delete-transit-gateway
を使用してトランジットゲートウェイを削除します。以下では、前のステップで作成した 2 つの VPC アタッチメントと 1 つのトランジットゲートウェイを削除します。
重要
トランジットゲートウェイアタッチメントをすべて削除すると、料金が発生しなくなります。
-
delete-transit-gateway-vpc-attachment
コマンドを使用して VPC アタッチメントを削除します。delete-transit-gateway-vpc-attachment
コマンドの詳細については、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" } }
2 番目のアタッチメントの
delete-transit-gateway-vpc-attachment
コマンドを実行します。aws ec2 delete-transit-gateway-vpc-attachment \ --transit-gateway-attachment-id tgw-attach-abcdef1234567890
2 番目の 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" } }
-
添付ファイルは、削除されるまで
deleting
状態になります。削除したら、トランジットゲートウェイを削除できます。コマンドをdelete-transit-gateway
とともに使用しますtransit-gateway-id
。delete-transit-gateway
コマンドの詳細については、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" } ] } }
結論
トランジットゲートウェイが正常に作成され、2 つの VPCs がアタッチされ、それらの間のルーティングが設定され、接続が確認されました。この簡単な例は、Amazon VPC Transit Gateway の基本機能を示しています。オンプレミスネットワークへの接続やより高度なルーティング設定の実装など、より複雑なシナリオについては、「Amazon VPC Transit Gateways ユーザーガイド」を参照してください。