0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS Transit Gateway】Transit GatewayでセキュアなVPC間通信

Last updated at Posted at 2025-08-04

目指すはコレ!

同一リージョン内の異なる2つのAmazon VPC間で、Transit Gateway (TGW) を用いたプライベートネットワーク接続を確立すること。VPC-AのEC2インスタンスからTGWを経由してVPC-BのEC2インスタンスへpingコマンドで接続を確認します。なお、VPC-AのEC2にはAWS Systems Manager (SSM) を使ってセキュアにアクセスし、そこから通信テストを実施します。

この構成のメリット

TGWによるVPC接続は、スケーラブルかつセキュアなネットワーク設計を実現できます。

  • セキュアな通信経路
    TGWはAWSの内部ネットワークを通じてVPC間通信を提供するため、インターネットを介さずセキュアな環境が構築できます。

  • スケーラブルな接続性
    複数のVPCをハブアンドスポーク構成で簡単に接続可能。ピアリング接続のようにフルメッシュにする必要がありません。

  • 運用の柔軟性と拡張性
    ネットワーク構成の拡張やマルチアカウント構成への対応がしやすく、将来的な構成変更にも柔軟に対応可能です。

アーキテクチャ図

【Transit GatewayによるVPC間通信アーキテクチャ】
image.png

Transit Gatewayの基本用語と概念

Transit Gatewayとは???

複数のVPCやオンプレミス環境をハブ型構成で相互接続できるAWSサービス。 ピアリング接続とは異なり、スケーラブルかつセントラルな管理が可能。ルーティングも柔軟で、ルートテーブルを分けることでVPC間のアクセス制御も容易に行える。

アタッチメントとは???

VPC、VPN接続、またはDirect ConnectゲートウェイといったネットワークリソースをTransit Gatewayに接続するための論理的なリンク。 これにより、これらのネットワークがTransit Gatewayを介して相互に通信できるようになります。Transit Gatewayにトラフィックを流し込むための出入口となる接続点。

アソシエーション(関連付け)とは???

特定のアタッチメントをTransit Gatewayルートテーブルに紐づけること。 これにより、そのアタッチメントからのトラフィックが、どのルーティングルールに従うかが決まる。

プロパゲーション(伝播)とは???

Transit Gatewayアタッチメントに接続されたネットワークのルート(CIDRブロックなど)を、自動的にTransit Gatewayルートテーブルに伝播(学習)させる機能。 この設定を有効にすると、手動でルートを追加することなく、接続されたネットワークの情報をTransit Gatewayルートテーブルが自動的に認識し、ルーティングに利用できるようになる。

手順

VPCとプライベートサブネットの準備

VPC-A

  • CIDR
    10.1.0.0/16
  • サブネット(EC2-A用)
    10.1.1.0/24 → SSM接続 & pingの送信元
  • サブネット(TransitGateway用)
    10.1.2.0/28
  • AZ
    ap-northeast-1a

VPC-B

  • CIDR
    10.2.0.0/16
  • サブネット(EC2-B用)
    10.2.1.0/24 → ping受信先
  • サブネット(TransitGateway用)
    10.2.2.0/28
  • AZ
    ap-northeast-1a

TransitGateway用サブネット
セキュリティとネットワーク管理の明確化のために、TransitGateway専用のサブネットを作成することが推奨されいる。 他のリソースから分離することで、TGWのENIを保護し、ルーティングやセキュリティグループのルール適用をシンプルかつ効果的に行える。
また、TGW専用サブネットはTGWのENI以外の用途には使わないため、必要最小限のIPアドレスで十分であり、ネットワークリソースの効率的な利用のために小さいサイズ(xxx.xxx.xxx.xxx/28) にすることが推奨されている。

TransitGatewayの作成と設定

1. TGW作成

  • DNSサポート
    Transit Gateway にアタッチされた VPC のドメイン名の解決を有効にする
  • セキュリティグループ参照サポート
    Transit Gateway にアタッチされた VPC のセキュリティグループ参照を有効にする
  • デフォルトルートテーブルの関連付け
    新しいTransit Gatewayアタッチメントを作成した際に、自動的にTransit Gatewayの「デフォルトルートテーブル」に紐づけられる設定
    → 今回は設定をOFFにして手動で設定
  • デフォルトルートテーブル伝播
    新しいTransit Gatewayアタッチメントを作成した際に、そのアタッチメントに接続されたネットワークのルート情報(CIDRブロックなど)が、自動的にTransit Gatewayの「デフォルトルートテーブル」に登録される設定
    → 今回は設定をOFFにして手動で設定

【TGW作成画面】
image.png

TGWルートテーブル作成

  • Transit Gateway ID
    作成したTGW ID

【TGWルートテーブル作成画面】
image.png

2. アタッチメント作成

VPC-A、VPC-Bそれぞれのアタッチメントを作成します。

  • Transit Gateway ID
    作成したTGW ID
  • アッチメントタイプ
    VPC
  • VPC ID
    VPC-A / VPC-B
  • サブネットID
    VPC-AのTGW専用サブネット / VPC-BのTGW専用サブネット

【アタッチメント作成画面】
image.png

3. アソシエーション設定

作成した2つのアタッチメントをTransit Gatewayルートテーブルに紐づけます。

【関連付け(アソシエーション)作成画面】
image.png

4. プロパゲーション設定

作成した2つのアタッチメントのCIDR情報を自動的にTransit Gatewayルートテーブルに伝播させます。

【伝播(プロパゲーション)作成画面】
image.png

Transit Gatewayルートテーブルに追加される
【Transit Gatewayルート画面】
image.png

EC2インスタンスの準備

EC2-A(VPC-A)

  • サブネット
    10.1.1.0/24
  • AMI
    Amazon Linux 2023 AMI
  • インスタンスタイプ
    t2.micro
  • パブリックIPの自動割り当て
    無効化
  • IAMインスタンスプロフィール(SSM接続用)
    AmazonSSMManagedInstanceCore ポリシーをアタッチしたロールを付与
  • セキュリティグループ設定
    Ping接続用SSM接続用の設定が必要
    セキュリティグループ設定参照

EC2-B(VPC-B)

  • サブネット
    10.2.1.0/24
  • AMI
    Amazon Linux 2023 AMI
  • インスタンスタイプ
    t2.micro
  • パブリックIPの自動割り当て
    無効化
  • セキュリティグループ設定
    Ping接続用の設定が必要
    セキュリティグループ設定参照

SSM接続に必要な準備

IFエンドポイント作成、IAMロール作成、セキュリティグループ設定などの準備が必要。
詳細は以下を参照。

ルートテーブルとセキュリティグループの設定

ルートテーブル

VPC-A

  • TransitGateway用サブネット
    • 宛先:10.1.0.0/16、ターゲット:local
  • EC2-A用サブネット
    • 宛先:10.1.0.0/16、ターゲット:local
    • 宛先:10.2.0.0/16、ターゲット:tgw-xxxxxxxxxxxxxx

VPC-B

  • TransitGateway用サブネット
    • 宛先:10.2.0.0/16、ターゲット:local
  • EC2-B用サブネット
    • 宛先:10.2.0.0/16、ターゲット:local
    • 宛先:10.1.0.0/16、ターゲット:tgw-xxxxxxxxxxxxxx

【TransitGatewayルートテーブル】

  • CIDR:10.1.0.0/16、アタッチメントID:tgw-attach-xxxxx(VPC-A)
  • CIDR:10.2.0.0/16、アタッチメントID:tgw-attach-xxxxx(VPC-B)

セキュリティグループ

VPC-A

  • EC2-A

    • Ping接続用
      ■インバウンド
      なし
      ■アウトバウンド
      タイプ:すべての ICMP - IPv4、送信先:10.2.0.0/16(VPC-BのCIDR)
    • SSM接続用
      ■インバウンド
      タイプ:HTTPS(443)、送信元:sg-IfEndPoint(IFエンドポイント用)
      ■アウトバウンド
      なし
  • IFエンドポイント用(SSM接続)

    • 共通
      ■インバウンド
      タイプ:HTTPS(443)、送信元:sg-SSM-EC2-A(EC2-AのSSM接続用)
      ■アウトバウンド
      なし

VPC-B

  • EC2-B
    • Ping接続用
      ■インバウンド
      タイプ:すべての ICMP - IPv4、送信元:sg-ICPM-EC2-A(Ping接続EC2-A用)
      ■アウトバウンド
      なし

セキュリティグループ参照サポート
別VPCのSGが参照できるのはインバウンドルール作成時のみ。
アウトバウンドルール作成時は参照できないので、CIDRを設定する必要がある。

[以下参考]

SSMによるEC2接続と通信確認

SSM Session開始

aws ssm start-session --target <インスタンスID(EC2-A)>

Ping実行

ping <EC2-BのプライベートIPアドレス>

【Ping疎通確認結果画面】
image.png
結果として、EC2-A から EC2-B に対する Ping が成功すれば、TGW経由の通信が正しく設定されていることが確認できます。

今回の学び

  • TGWのセキュリティグループ参照サポート
    TGW経由の通信ではこの設定を有効することで、異なるVPCのSGを参照できるようになる!
    ※インバウンドルール作成時のみ!アウトバウンドルール作成時には参照できない!
    (知らずにSG設定を行っていたが、Ping通信が失敗した。CIDRを指定したら成功したのでSGが参照できていない事が原因だと気づき、調べたらこの設定が必要だと知った)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?