ルーティングオプションの例
以下のトピックでは、VPC の特定のゲートウェイまたは接続のルーティングについて説明します。
内容
インターネットゲートウェイへのルーティング
サブネットルートテーブル内のルートをインターネットゲートウェイに追加することで、サブネットをパブリックサブネットにすることができます。そのためには、インターネットゲートウェイを作成して VPC にアタッチ後、IPv4 トラフィックの場合は 0.0.0.0/0
、IPv6 トラフィックの場合は ::/0
を送信先に指定し、インターネットゲートウェイ ID (igw-xxxxxxxxxxxxxxxxx
) のターゲットを指定してルートを追加します。
送信先 | ターゲット |
---|---|
0.0.0.0/0 | igw-id |
::/0 | igw-id |
詳細については、「インターネットゲートウェイを使用してインターネットに接続する」を参照してください。
NAT デバイスへのルーティング
プライベートサブネットのインスタンスがインターネットに接続できるようにするには、パブリックサブネットで NAT ゲートウェイを作成するか、NAT インスタンスを起動します。次に、IPv4 インターネットトラフィック (0.0.0.0/0
) を NAT デバイスにルーティングするプライベートサブネットのルートテーブルのルートを追加します。
送信先 | ターゲット |
---|---|
0.0.0.0/0 | nat-gateway-id |
また、NAT ゲートウェイを使用するための不要なデータ処理料金を回避したり、特定のトラフィックをプライベートにルーティングしたりするために、他のターゲットへのより具体的なルートを作成することもできます。次の例では、Amazon S3 トラフィック (pl-xxxxxxxx。Amazon S3 の具体的な IP アドレス範囲) はゲートウェイ VPC エンドポイントにルーティングされ、10.25.0.0/16 トラフィックは VPC ピア接続にルーティングされます。pl-xxxxxxxx および 10.25.0.0/16 IP アドレスの範囲は、0.0.0.0/0 よりも具体的です。インスタンスが Amazon S3 またはピア VPC にトラフィックを送信すると、トラフィックはゲートウェイ VPC エンドポイントまたは VPC ピア接続に送信されます。その他のトラフィックはすべて NAT ゲートウェイに送信されます。
送信先 | ターゲット |
---|---|
0.0.0.0/0 | nat-gateway-id |
pl-xxxxxxxx | vpce-id |
10.25.0.0/16 | pcx-id |
詳細については、「NAT ゲートウェイ」および「NAT インスタンス」を参照してください。NAT デバイスは IPv6 トラフィックに使用することはできません。
仮想プライベートゲートウェイへのルーティング
AWS Site-to-Site VPN 接続を使用して、VPC 内のインスタンスが自ネットワークと通信できるようにできます。これを行うには、仮想プライベートゲートウェイを作成し、VPC にアタッチします。次に、ネットワークの送信先と仮想プライベートゲートウェイ (vgw-xxxxxxxxxxxxxxxxx
) のターゲットを含むルートをサブネットルートテーブルに追加します。
送信先 | ターゲット |
---|---|
10.0.0.0/16 | vgw-id |
その後、Site-to-Site VPN 接続を作成し、設定することができます。詳細については、AWS Site-to-Site VPN ユーザーガイドの「AWS Site-to-Site VPN とは」および「ルートテーブルと VPN ルーティングの優先度」を参照してください。
仮想プライベートゲートウェイ上の Site-to-Site VPN 接続は、IPv6 トラフィックをサポートしません。ただし、仮想プライベートゲートウェイを介した AWS Direct Connect 接続への IPv6 トラフィックのルーティングはサポートされています。詳細については、AWS Direct Connect ユーザーガイドを参照してください。
AWS Outposts ローカルゲートウェイへのルーティング
AWS Outposts に関連付けられた VPC 内のサブネットには、ローカルゲートウェイの追加ターゲットタイプを設定できます。送信先アドレス 192.168.10.0/24 のトラフィックをローカルゲートウェイでカスタマーネットワークにルーティングする場合を考えます。これを行うには、送信先ネットワークとローカルゲートウェイ (lgw-xxxx
) のターゲットで次のルートを追加します。
送信先 | ターゲット |
---|---|
192.168.10.0/24 | lgw-id |
VPC ピア接続へのルーティング
VPC ピアリング接続は、プライベート IPv4 アドレスを使用して 2 つの VPC 間でトラフィックをルーティングすることを可能にするネットワーク接続です。どちらの VPC のインスタンスも、同じネットワーク内に存在しているかのように、相互に通信できます。
VPC ピア接続にある VPC 間のトラフィックのルーティングを有効にするには、VPC ピア接続を指す 1 つ以上のサブネットルートテーブルにルートを追加する必要があります。これにより、ピア接続で他の VPC の CIDR ブロックのすべてまたは一部にアクセスできます。同様に、他の VPC の所有者は、自分のサブネットのルートテーブルにルートを追加して、ルーティング対象の VPC にトラフィックを送り返す必要があります。
例えば、次の情報を持つ 2 つの VPC 間に VPC ピアリング接続 (pcx-11223344556677889
) があるとします。
-
VPC A: CIDR ブロックは 10.0.0.0/16 です
-
VPC B: CIDR ブロックは 172.31.0.0/16 です
VPC 間のトラフィックを有効にし、両方の VPC の IPv4 CIDR ブロック全体にアクセスできるようにするには、VPC A のルートテーブルを次のように設定します。
送信先 | ターゲット |
---|---|
10.0.0.0/16 | [Local] (ローカル) |
172.31.0.0/16 | pcx-11223344556677889 |
VPC B のルートテーブルは次のように設定します。
送信先 | ターゲット |
---|---|
172.31.0.0/16 | [Local] (ローカル) |
10.0.0.0/16 | pcx-11223344556677889 |
VPC ピアリング接続では、VPC とインスタンスで IPv6 通信が有効な場合、VPC のインスタンス間で IPv6 通信をサポートできます。VPC 間の IPv6 トラフィックのルーティングを有効にするには、VPC ピアリング接続をポイントするルートテーブルにルートを追加して、ピア VPC の IPv6 CIDR ブロックのすべての部分にアクセスできるようにする必要があります。
例えば、同じ VPC ピアリング接続 (pcx-11223344556677889
) を使用して、VPC に次の情報を含めるとします。
-
VPC A: IPv6 CIDR ブロックは
2001:db8:1234:1a00::/56
-
VPC B: IPv6 CIDR ブロックは
2001:db8:5678:2b00::/56
VPC ピアリング接続で IPv6 通信を有効にするには、VPC A のサブネットルートテーブルに次のルートを追加します。
送信先 | ターゲット |
---|---|
10.0.0.0/16 | [Local] (ローカル) |
172.31.0.0/16 | pcx-11223344556677889 |
2001:db8:5678:2b00::/56 | pcx-11223344556677889 |
VPC B のルートテーブルに次のルートを追加します。
送信先 | ターゲット |
---|---|
172.31.0.0/16 | [Local] (ローカル) |
10.0.0.0/16 | pcx-11223344556677889 |
2001:db8:1234:1a00::/56 | pcx-11223344556677889 |
VPC ピア接続の詳細については、「Amazon VPC ピアリングガイド」を参照してください。
ゲートウェイ VPC エンドポイントへのルーティング
ゲートウェイ VPC エンドポイントにより、VPC と他の AWS のサービスとをプライベートに接続できます。ゲートウェイエンドポイントを作成するときは、ゲートウェイエンドポイントによって使用されるサブネットルートテーブルを VPC で指定します。ルートは自動的に各ルートテーブル追加されて、送信先としてサービス (pl-
) のプレフィックスリスト ID、ターゲットとしてエンドポイント ID (xxxxxxxx
vpce-
) が登録されます。エンドポイントルートを明示的に削除または変更することはできませんが、エンドポイントで使用されるルートテーブルは変更できます。xxxxxxxxxxxxxxxxx
エンドポイントのルーティングの詳細について、また AWS のサービスへのルートに対する影響については、「ゲートウェイエンドポイントのルーティング」を参照してください。
Egress-Only インターネットゲートウェイへのルーティング
VPC で Egress-Only インターネットゲートウェイを作成して、プライベートサブネットのインスタンスを有効にしてインターネットへのアウトバウンド通信を開始することができますが、インターネットはインスタンスとの接続を開始することはできません。Egress-Only インターネットゲートウェイは、IPv6 トラフィックでのみ使用されます。Egress-Only インターネットゲートウェイのルーティングを設定するには、Egress-Only インターネットゲートウェイに IPv6 インターネットトラフィック (::/0
) をルーティングするプライベートサブネットのルートテーブルにルートを追加します。
送信先 | ターゲット |
---|---|
::/0 | eigw-id |
詳細については、「エグレス専用インターネットゲートウェイを使用してアウトバウンド IPv6 トラフィックを有効にする」を参照してください。
トランジットゲートウェイのルーティング
VPC をトランジットゲートウェイにアタッチするときは、トラフィックがトランジットゲートウェイを通過してルーティングするよう、サブネットルートテーブルにルートを追加する必要があります。
トランジットゲートウェイに 3 つの VPC がアタッチされている次のシナリオを検討します。このシナリオでは、アタッチメントはすべて、トランジットゲートウェイのルートテーブルに関連付けられ、トランジットゲートウェイのルートテーブルに伝播されます。そのため、アタッチメントはすべて、単純なレイヤー 3 IP ハブとしてトランジットゲートウェイを提供しながら、パケットを相互にルーティングできます。
例えば、次の情報を持つ 2 つの VPC があるとします。
-
VPC A: 10.1.0.0/16, attachment ID tgw-attach-11111111111111111
-
VPC B: 10.2.0.0/16, attachment ID tgw-attach-22222222222222222
VPC 間のトラフィックを有効にし、トランジットゲートウェイにアクセスできるようにするには、VPC A のルートテーブルを次のように設定します。
送信先 | ターゲット |
---|---|
10.1.0.0/16 | ローカル |
10.0.0.0/8 | tgw-id |
以下は、VPC アタッチメントのトランジットゲートウェイルートテーブルエントリの例です。
送信先 | ターゲット |
---|---|
10.1.0.0/16 | tgw-attach-11111111111111111 |
10.2.0.0/16 | tgw-attach-22222222222222222 |
Transit Gateway ルートテーブルの詳細については、Amazon VPC Transit Gateway の「ルーティング」を参照してください。
ミドルボックスアプライアンスのルーティング
ミドルボックスアプライアンスを VPC のルーティングパスに追加できます。以下は想定されるユースケースです。
-
インターネットゲートウェイまたは仮想プライベートゲートウェイを介して VPC に入るトラフィックを、VPC のミドルボックスアプライアンスにルーティングして、インターセプトします。ミドルボックスのルーティングウィザードを使用して、AWS がゲートウェイ、ミドルボックス、送信先サブネットの適切なルートテーブルを自動的に設定できるようにします。詳細については、「ミドルボックスルーティングウィザード」を参照してください。
-
2 つのサブネット間のトラフィックをミドルボックスアプライアンスに転送します。そのためには、一方のサブネットのサブネットCIDR と一致させるサブネットルートテーブルのルートを作成して、 Gateway Load Balancer エンドポイント、NAT ゲートウェイ、Network Firewall endpoint エンドポイント、またはアプライアンスのネットワークインターフェイスをターゲットとして指定します。または、サブネットから他のサブネットにすべてのトラフィックをリダイレクトするには、ローカルルートのターゲットを Gateway Load Balancer エンドポイント、NAT ゲートウェイ、またはネットワークインターフェイスに置き換えます。
ニーズに合わせてアプライアンスを設定できます。例えば、すべてのトラフィックをスクリーニングするセキュリティアプライアンス、または WAN アクセラレーションアプライアンスを設定できます。アプライアンスは VPC のサブネットで Amazon EC2 インスタンスとしてデプロイされ、サブネット内の Elastic Network Interface (ネットワークインターフェイス) で表されます。
目的のサブネットのルートテーブルでルート伝達を有効にしている場合は、ルートの優先順位に注意してください。最も具体的なルートが優先され、ルートが一致する場合は、伝達されたルートよりも静的ルートが優先されます。ルートを確認して、トラフィックが正しくルーティングされていること、およびルート伝達を有効または無効にした場合に (ジャンボフレームをサポートする AWS Direct Connect 接続にはルート伝達が必要など)、意図しない結果がないことを確認します。
インバウンド VPC トラフィックをアプライアンスにルーティングするには、ルートテーブルをインターネットゲートウェイまたは仮想プライベートゲートウェイに関連付け、アプライアンスのネットワークインターフェイスを VPC トラフィックのターゲットとして指定します。詳細については、「ゲートウェイルートテーブル」を参照してください。また、サブネットから別のサブネットのミドルボックスアプライアンスにアウトバウンドトラフィックをルーティングすることもできます。
ミドルボックスのルーティングの例については、「ミドルボックスシナリオ」を参照してください。
アプライアンスに関する考慮事項
AWS Marketplace
-
アプライアンスは、送信元トラフィックまたは送信先トラフィックとは別のサブネットに設定する必要があります。
-
アプライアンスでの送信元/送信先のチェックを無効にする必要があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「送信元または送信先チェックの変更」を参照してください。
-
アプライアンスを経由して、同じサブネットのホスト間でトラフィックをルーティングすることはできません。
-
アプライアンスは、ネットワークアドレス変換 (NAT) を実行する必要はありません。
-
ローカルルートよりも具体的なルートを追加できます。より具体的なルートを使用して、VPC 内のサブネット間のトラフィック(East-West トラフィック)をミドルボックスアプライアンスにリダイレクトできます。ルートの送信先は、VPC 内のサブネットの IPv4 または IPv6 CIDR ブロック全体と一致させる必要があります。
-
IPv6 トラフィックをインターセプトするには、必ず IPv6 に VPC、サブネット、アプライアンスを設定します。詳細については、「VPC を操作する」を参照してください。仮想プライベートゲートウェイは IPv6 トラフィックをサポートしません。
ゲートウェイとアプライアンス間のトラフィックのルーティング
インバウンド VPC トラフィックをアプライアンスにルーティングするには、ルートテーブルをインターネットゲートウェイまたは仮想プライベートゲートウェイに関連付け、アプライアンスのネットワークインターフェイスを VPC トラフィックのターゲットとして指定します。次の例では、VPC にはインターネットゲートウェイ、アプライアンス、およびインスタンスを持つサブネットがあります。インターネットからのトラフィックは、アプライアンスを介してルーティングされます。

このルートテーブルをインターネットゲートウェイまたは仮想プライベートゲートウェイに関連付けます。最初のエントリはローカルルートです。2 番目のエントリは、サブネット宛ての IPv4 トラフィックをアプライアンスのネットワークインターフェイスに送信します。このルートは、デフォルトのローカルルートよりも具体的なルートです。
送信先 | ターゲット |
---|---|
VPC CIDR |
[Local] (ローカル) |
Subnet CIDR |
アプライアンスのネットワークインターフェイス ID |
または、ローカルルートのターゲットをアプライアンスのネットワークインターフェイスに置き換えることもできます。これを行うと、後で VPC に追加するサブネットを送信先とするトラフィックを含め、すべてのトラフィックがアプライアンスに自動的にルーティングされるようになります。
送信先 | ターゲット |
---|---|
VPC CIDR |
アプライアンスのネットワークインターフェイス ID |
サブネットから別のサブネットのアプライアンスにトラフィックをルーティングするには、アプライアンスのネットワークインターフェイスにトラフィックをルーティングするルートをサブネットルートテーブルに追加します。この送信先は、ローカルルートの宛先より具体性を低くする必要があります。例えば、インターネットを送信先とするトラフィックの場合、宛先に 0.0.0.0/0
(すべての IPv4 アドレス)を指定します。
送信先 | ターゲット |
---|---|
VPC CIDR |
[Local] (ローカル) |
0.0.0.0/0 | アプライアンスのネットワークインターフェイス ID |
次に、アプライアンスのサブネットに関連付けられたルートテーブルで、トラフィックをインターネットゲートウェイまたは仮想プライベートゲートウェイに送り返すルートを追加します。
送信先 | ターゲット |
---|---|
VPC CIDR |
[Local] (ローカル) |
0.0.0.0/0 | igw-id |
サブネット間トラフィックをアプライアンスへルーティング
特定のサブネットを送信先とするトラフィックを、アプライアンスのネットワークインターフェイスにルーティングできます。次の例では、VPC に 2 つのサブネットと 1 つのアプライアンスが含まれています。サブネット間のトラフィックは、アプライアンスを介してルーティングされます。

セキュリティグループ
ミドルボックスアプライアンスを介して異なるサブネットのインスタンス間でトラフィックをルーティングする場合、両方のインスタンスのセキュリティグループでインスタンス間のトラフィックフローを許可する必要があります。各インスタンスのセキュリティグループは、他のインスタンスのプライベート IP アドレス、または他のインスタンスを含むサブネットの CIDR 範囲を送信元として参照する必要があります。他のインスタンスのセキュリティグループを送信元として参照する場合、インスタンス間のトラフィックは許可されません。
ルーティング
次に、サブネット A のルートテーブルの例を示します。最初のエントリにより、VPC 内のインスタンスが通信できるようになります。2 番目のエントリは、サブネット A からサブネット B へのすべてのトラフィックをアプライアンスのネットワークインターフェイスにルーティングします。
送信先 | ターゲット |
---|---|
VPC CIDR |
[Local] (ローカル) |
Subnet B CIDR |
アプライアンスのネットワークインターフェイス ID |
次に、サブネット B のルートテーブルの例を示します。最初のエントリにより、VPC 内のインスタンスが相互に通信できるようになります。2 番目のエントリは、サブネット B からサブネット A へのすべてのトラフィックをアプライアンスのネットワークインターフェイスにルーティングします。
送信先 | ターゲット |
---|---|
VPC CIDR |
[Local] (ローカル) |
Subnet A CIDR |
アプライアンスのネットワークインターフェイス ID |
または、ローカルルートのターゲットをアプライアンスのネットワークインターフェイスに置き換えることもできます。これを行うと、後で VPC に追加するサブネットを送信先とするトラフィックを含め、すべてのトラフィックがアプライアンスに自動的にルーティングされるようになります。
送信先 | ターゲット |
---|---|
VPC CIDR |
アプライアンスのネットワークインターフェイス ID |
プレフィックスリストを使用したルーティング
AWS リソース全体で同じ CIDR ブロックのセットを頻繁に参照する場合は、カスタマーマネージドプレフィックスリストを作成して、それらをグループ化できます。その後、ルートテーブルエントリの送信先としてプレフィックスリストを指定できます。後でプレフィックスリストのエントリを追加または削除でき、ルートテーブルを更新する必要はありません。
例えば、複数の VPC アタッチメントを持つトランジットゲートウェイがあるとします。VPC は、次の CIDR ブロックを持つ 2 つの特定の VPC アタッチメントと通信できる必要があります。
-
10.0.0.0/16
-
10.2.0.0/16
両方のエントリを持つプレフィックスリストを作成します。サブネットルートテーブルで、ルートを作成し、送信先としてプレフィックスリストを指定して、ターゲットとしてトランジットゲートウェイを指定します。
送信先 | ターゲット |
---|---|
172.31.0.0/16 | [Local] (ローカル) |
pl-123abc123abc123ab | tgw-id |
プレフィックスリストのエントリの最大数は、ルートテーブル内のエントリ数と同じになります。
Gateway Load Balancer エンドポイントにルーティングする
Gateway Load Balancer を使用すると、ファイアウォールなどの仮想アプライアンスのフリートにトラフィックを分散できます。VPC エンドポイントサービス設定を作成して、ロードバランサーをサービスとして設定できます。その後、VPC 内に Gateway Load Balancer エンドポイントを作成し、VPC をサービスに接続します。
トラフィックを (例えば、セキュリティ検査のために) Gateway Load Balancer にルーティングするには、ルートテーブルで Gateway Load Balancer エンドポイントをターゲットとして指定します。
Gateway Load Balancer の背後にあるセキュリティアプライアンスの例については、「セキュリティ VPC のアプライアンスを使用してトラフィックを検査する」を参照してください。
ルートテーブルで Gateway Load Balancer エンドポイントを指定するには、VPC エンドポイントの ID を使用します。例えば、10.0.1.0/24 のトラフィックを Gateway Load Balancer エンドポイントにルーティングするには、次のルートを追加します。
送信先 | ターゲット |
---|---|
10.0.1.0/24 | vpc-endpoint-id |
詳細については、「Gateway Load Balancer の開始方法」をご参照ください。