80
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アイレット株式会社Advent Calendar 2024

Day 8

初学者でもわかる!!Transit Gatewayでアカウント間のVPC接続を行う方法

Last updated at Posted at 2024-12-08

超詳細Transit Gatewayのアカウント間VPC接続手順


クラウドベンダーに入社してから約半年、何度も何度もTransit Gateway という言葉が出てきて、すでに3回ほど触る機会がありました。こんなに短いスパンで関わっているということは、重要でよく使うものなのだろう!でも手順やコミュニケーションが多くてよくわかりにくい!!ということで、初学の私でもわかりやすいTransit Gateway接続手順を作らせていただきました。 こちらの記事は作成の手順をメインに進めていきます!

Transit Gatewayとは

Amazon VPC Transit Gateway は、仮想プライベートクラウド (VPC) とオンプレミスネットワークを相互接続するために使用されるネットワークの中継ハブです。Site to Site VPNやDirect Connectも各ネットワークリソースも柔軟に接続することができます。Site to Site VPNやDirect Connect等を通してオンプレミスと接続します。

image.png

なぜTransit Gatewayなのか?

Direct ConnectやSite to Site VPNが存在する中、Transit Gatewayを選ぶべきはいつなのか。

先に回答です!
①20個以上のVPCを接続したい場合
②VPC同士を接続したい場合
の2パターンです。

逆にいうと①②はDirect Gatewayでは不可能です。VPCピアリングでVPC同士を接続する方法もありますが、VPCが多い場合はそれぞれにVPCピアリングを設定する必要があるため作業量が多くなります。
しかし、TGWは単一リージョン内での通信を対象とするなどデメリットもあるので構築環境ともとにベストプラクティスを考えてください。

ではここから、実際の接続手順に入ります!

全体図

今回作成するTransit Gatewayの構成図です!

スクリーンショット 2024-12-05 1.03.04.png

アカウント1 アカウント2
Transit Gateway test-tgw1
アタッチメント tgw-at1 tgw-at2
VPC test-vpc1 (172.31.0.0/16) test-vpc2 (10.0.0.0/24)

2つのアカウントのVPC接続を行うためにアカウントごとのアクションが必要になります。今回は以下の手順でTransit Gatewayを作成しました!

アカウント1 アカウント2
1 Transit Gatewayの作成
2 アタッチメント作成
3 RAMでTransit Gatewayを共有
4 Transit Gateway共有の承認
5 アタッチメントの作成
6 アタッチメントの承認
7 Transit Gatewayルートテーブルの設定
8 VPCルートテーブルの設定 VPCルートテーブルの設定

1, Transit Gatewayの作成(アカウント1)

まずは先ほど説明したTransit Gatewayを作成していきます。

VPC

Transit Gateway

Transit Gateway作成

スクリーンショット 2024-12-02 18.38.55.png

・ASN番号ーAWSのTransit Gatewayが外部のネットワークとやり取りするために必要な「ネットワークの住所」のようなものです。

GWを使用するときに他のDirect Connectなどを使用している際は番号が重複しないように気をつけてください。何も設定しないとAWSが自動的にASNを割り当てます (デフォルト: 64512)。

・DNSサポートーTGWで接続されたVPC内のパブリック IPv4 DNS ホスト名をプライベートIPアドレスに名前解決をできるようにするための機能です。

・セキュリティグループの参照ーセキュリティグループを使った通信制御を可能にします。

通常、セキュリティグループはVPC内の通信を制御します。しかし、Transit Gatewayを経由してネットワーク間をつなぐと、セキュリティグループの設定が適用されない場合があります。この機能を有効にすると、Transit Gatewayで接続されたVPC間でもVPC内で行う制御と同様にセキュリティグループを使った通信制御が可能になります。この機能により、VPC同士の通信やVPN、Direct Connect経由の通信をより柔軟かつ安全に管理できます。

・VPN ECMP サポートー同じ帯域のVPNを束ねて高帯域化させることが可能な機能です。1つのVPN接続では、最大で1.25Gbpsまでの帯域を利用可能ですが、それを超えるスループットが必要な場合にはECMPを有効にします。

・デフォルトルートテーブルの関連付けーTransit Gateway アタッチメントがこの Transit Gateway のデフォルトのルートテーブルに自動的に関連付けられます。

・デフォルトルートテーブル伝播ールートテーブルアタッチメントがこの Transit Gateway のデフォルトのルートテーブルに自動的に伝播されます。

Transit Gateway作成時にデフォルトルートテーブルの関連付けと、デフォルトルートテーブル伝搬を有効化すると共有元と共有先のVPC CIDRが登録されています。Transit Gatewayに接続されている全てのVPCで通信が可能となります。
関連付け、伝播に関しては後で詳しく説明します!

・マルチキャストサポートーマルチキャストは、1つの送信者が複数の受信者に同じデータを同時に送信する通信プロトコルです。

・クロスアカウント共有オプションの設定ー手動の操作を行わずに共有アタッチメントをに承諾します。(今回は手動で行います。こちらを有効化する際は手順6をスキップしてください)

・CIDR ブロックーCIDRで指定されるIPアドレスの集まりです。

Connect (GRE) アタッチメントまたは PrivateIP VPN を設定する場合に使用されます。他のアタッチメントと被らない任意のCIDRを入力してください。
IPv4 にはサイズ /24 CIDR ブロック以上 (例: /23 または /22) 、IPv6 にはサイズ /64 CIDR ブロック以上 (例: /63 または /62) を指定できます。

2, アタッチメント作成(アカウント1)

Transit Gateway アタッチメントはVPCとTransitGatewayを接続するエンドポイントに近いもので、AWS Transit Gatewayと別のネットワークとの接続点になります。

スクリーンショット 2024-12-05 0.20.40.png

VPC

Transit Gatewayアタッチメント

スクリーンショット 2024-12-03 23.38.12.png

・セキュリティグループ参照サポートーセキュリティグループを参照する場合はここの設定でも有効にする必要があります。

・アプライアンスモードサポートー通信先が異なるAZであっても、戻りの通信は行きの通信と同じ経路を辿るようになります。

VPC アタッチメントが複数のアベイラビリティーゾーンにまたがっており、ステートフルな検査のために送信元ホストと送信先ホスト間のトラフィックを同じアプライアンスを介してルーティングする必要がある場合に有効とします。

・VPC IDーアタッチメントを作成するVPCを選択します。

・サブネットIDーVPCアタッチメントを作成するサブネットを選択します。1つのAZに1つのENIのみ可能です。

TGWアタッチメント専用サブネットを作成するのがベストプラクティスとされており、その際は小さな CIDR (/28 など)を設定することが推奨されています。


Transit Gatewayアタッチメントを作成。

3, RAMでTransit Gatewayを共有(アカウント1)

AWS Resource Access Manager(RAM)は異なるアカウントで様々なリソースの共有を行うことができる機能です。今回はTransitgatewayを共有していきます。

Resource Access Manager

自分が共有/リソース共有

リソース共有の作成

スクリーンショット 2024-12-02 18.40.35.png

・リソースー共有するリソースを選択します。今回は先ほど作成したトランジットゲートウェイを選んでください。


次の画面へ。


スクリーンショット 2024-12-02 18.40.59.png

・マネージド型アクセス許可を関連付けるーデフォルトの設定では「サービスネットワークへのサービスの関連付け」と「サービスネットワークへのVPCの関連付け」を行うことが可能になります。それに加えて共有リソースでプリンシパルが実行できるアクションを指定するには許可の選択が必要です。

次の画面へ。

スクリーンショット 2024-12-02 18.41.38.png

・プリンシパルー今回は他のAWSアカウントとリソースを共有するため「全てのユーザーとの共有を許可」を選択します。

Transit Gateway を Organization 内でのみ共有する場合は、自分の組織内でのみ共有を許可を選択します。

・プリンシパルのタイプー共有先を選択します。今回は「AWSアカウント」を選択し、RAMの共有先であるアカウント2のアカウントIDを追加します。

次の画面へ。

内容を確認してリソース共有を作成。

4, TGWの共有を承諾(アカウント2)

RAM

リソースの共有

先ほど共有された共有リソースを選択(名前をチェック)

リソースの共有を承認

スクリーンショット 2024-12-02 23.33.46.png

ステータスがアクティブになっていることを確認します。
これでTransit Gatewayの共有が完了!!!

5, アタッチメント作成(アカウント2)

手順3と同様にアタッチメントを作成

6, アタッチメントの承認(アカウント1)

VPC

Transit Gatewayアタッチメント

スクリーンショット 2024-12-05 8.45.27.png

アカウント2で作成したアタッチメントの承認を行います。
共有先側(アカウント1)は共有元(アカウント2)のアタッチメントの承認が必要です。

7, Transit Gatewayルートテーブルの設定(アカウント1)

ルートテーブルの作成

Transit Gateway アタッチメントのルーティングを設定します。
ここからが私的いちばんの難関でした!ルートテーブルの作成は簡単なのですが、ルーティングが、、
ここからややこしくなっていくので実際のリソースネームを使用していきます。

今回VPC同士の相互接続を設定するためルートテーブルを2つ、tgw-rt1tgw-rt2を作成します。

VPC

Transit Gatewayルートテーブル

Transit Gatewayルートテーブルを作成

スクリーンショット 2024-12-02 23.57.11.png

名前:tgw-rt1
Transit Gateway ID:test-tgw1のID

Transit Gatewayルートテーブルの作成

以上!!!!!同様にtgw-rt2も作成します。

でも、今はこの状態↓
スクリーンショット 2024-12-05 0.42.58.png

ルートテーブルを作っただけでは接続ができないのでルーティングをします。

ルーティングは関連付け、伝播の2種類があります。
これがまたややこしい、、、、

Transit Gatewayの関連付けと伝播

スクリーンショット 2024-12-03 22.49.59.png

・関連付けー固定されたルートを設定し、管理者がルートテーブルに手動でエントリを追加・変更します。1つのアタッチメント(1つのVPC)が、1つのルートテーブルにしか関連付けできないのでVPCごとに異なるルーティングが必要な、変更が少ない場合に適しています。

スクリーンショット 2024-12-05 0.47.40.png

(例)開発VPCの 10.1.0.0/16 から本番VPCの 10.2.1.0/24 への通信だけを許可する

デメリットとして、ネットワーク構成が変更されるたびに手動で更新が必要でありスケーラビリティに限界があります。



・伝播ーVPCにセカンダリCIDRが追加されたときなどに自動的にルートテーブルに反映されるようになります。これにより、手動でルートを設定する手間が省け、通信がスムーズになります。また、ネットワーク管理が簡単になることで全体の運用効率が向上します。Transit Gateway peeringは、伝播ができないので注意が必要です。

スクリーンショット 2024-12-05 0.47.40.png

(例)オンプレミスに新しいサブネット 172.16.2.0/24 を追加した際、BGP経由で自動的にルートを学習

デメリットとして、意図しないルートが伝播される可能性があるためセキュリティ要件によっては不適切な場合があります。

Transit Gatewayルーティング設定

tgw-rt1をアカウント1へのルーティングに設定します。

・関連付け
VPC

Transit Gateway ルートテーブル

tgw-rt1を選択

関連付け

関連付けを作成

スクリーンショット 2024-12-05 8.48.29.png
伝播するアタッチメント: tgw-at2



・伝播
Transit Gateway ルートテーブル

tgw-rt1を選択

伝播

伝播を作成

Transit Gateway ID.png

伝播するアタッチメント: tgw-at1


スクリーンショット 2024-12-05 19.04.07.png

↑ルートを確認するとアカウント1へのルーティングされていることが確認できます。

tgw-rt2にも同様アカウント2へのルーティングを進めてください。

8, VPCルートテーブルの設定(アカウント1&アカウント2)

最後の手順です!VPC側ではTransit Gatewayからは経路を受け取りません。 VPC側ルートテーブルには静的にTransit Gatewayへのルートを追加する必要があります。両方のアカウントで、VPCのルートテーブルを設定を行い、他のアカウント向けの経路をTGWに向けます。

VPC

ルートテーブル

ルートテーブルを選択

ルート

ルートを編集

スクリーンショット 2024-12-05 8.55.13.png

スクリーンショット 2024-12-05 8.55.23.png

アカウント1のVPC
送信先:172.31.0.0/16(アカウント2のVPC)
ターゲット:test-tgw1

アカウント2のVPCにも以下のルートを追加!!!
送信先:10.1.0.0/24(アカウント1のVPC)
ターゲット:test-tgw1

これにてTGWによるアカウント間VPC接続完了!!

まとめ

今回初めてブログを書いてみました!
私自身理解がとっても遅く、たくさんの記事を読み漁るのでこの記事1つでみなさんがTransit Gateway作成に苦手意識がなくなったら嬉しいです。
お疲れ様です!!

参考文献

80
3
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
80
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?