ルーティングオプションの例 - Amazon Virtual Private Cloud

ルーティングオプションの例

以下のトピックでは、VPC の特定のゲートウェイまたは接続のルーティングについて説明します。

インターネットゲートウェイへのルーティング

サブネットルートテーブル内のルートをインターネットゲートウェイに追加することで、サブネットをパブリックサブネットにすることができます。そのためには、インターネットゲートウェイを作成して VPC にアタッチ後、IPv4 トラフィックの場合は 0.0.0.0/0、IPv6 トラフィックの場合は ::/0 を送信先に指定し、インターネットゲートウェイ ID (igw-xxxxxxxxxxxxxxxxx) のターゲットを指定してルートを追加します。

送信先 ターゲット
0.0.0.0/0 igw-id
::/0 igw-id

詳細については、「インターネットゲートウェイを使用して VPC インターネットアクセスを有効にする」を参照してください

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 ピアリング接続にルーティングされます。これらの 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 デバイス」を参照してください。

仮想プライベートゲートウェイへのルーティング

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 ローカルゲートウェイにルーティングするためのルーティングテーブル設定について説明します。

Outpost サブネットとオンプレミスネットワーク間のトラフィックを有効にする

AWS Outposts に関連付けられた VPC 内のサブネットには、ローカルゲートウェイの追加ターゲットタイプを設定できます。送信先アドレス 192.168.10.0/24 のトラフィックをローカルゲートウェイでカスタマーネットワークにルーティングする場合を考えます。これを行うには、送信先ネットワークとローカルゲートウェイ (lgw-xxxx) のターゲットで次のルートを追加します。

送信先 ターゲット
192.168.10.0/24 lgw-id

Outposts 全体で同じ VPC 内のサブネット間のトラフィックを有効にする

Outpost のローカルゲートウェイとオンプレミスネットワークを使用して、異なる Outposts 全体で同じ VPC 内のサブネット間の通信を確立できます。

この機能を使用して、異なる AZ に固定されている Outposts ラック間の接続を確立することにより、Outposts ラック上で実行されるオンプレミスアプリケーションのマルチアベイラビリティーゾーン (AZ) アーキテクチャと同様のアーキテクチャを構築できます。

ローカルゲートウェイを使用する、Outposts 全体の同じ VPC 内に存在するサブネット間のトラフィック

この機能を有効にするには、Outpost ラックのサブネットルートテーブルに、そのルートテーブル内のローカルルートよりも具体的で、ターゲットタイプがローカルゲートウェイであるルートを追加します。ルートの送信先は、別の Outpost にある VPC 内のサブネットの IPv4 ブロック全体と一致させる必要があります。通信が必要なすべての Outpost サブネットに対して、この設定を繰り返します。

重要
  • この機能を使用するには、ダイレクト VPC ルーティングを使用する必要があります。自分のカスタマー所有 IP アドレスは使用できません。

  • Outposts ローカルゲートウェイが接続されているオンプレミスネットワークには、サブネットが相互にアクセスするためのルーティングが必要です。

  • サブネット内のリソースにセキュリティグループを使用する場合は、Outpost サブネットの送信元または送信先として、IP アドレス範囲を含むルールを使用する必要があります。セキュリティグループ ID は使用できません。

  • 場合によっては、既存の Outposts ラックを更新して、複数の Outposts 間の VPC 内通信をサポートできるようにする必要があります。この機能を使用できない場合は、AWS サポートに連絡してください

CIDR が 10.0.0.0/16 の VPC、CIDR が 10.0.1.0/24 の Outpost 1 サブネット、CIDR が 10.0.2.0/24 の Outpost 2 サブネットの場合、Outpost 1 サブネットのルートテーブルのエントリは次のようになります。

デスティネーション ターゲット
10.0.0.0/16 ローカル
10.0.2.0/24 lgw-1-id

Outpost 2 サブネットのルートテーブルのエントリは次のようになります。

デスティネーション ターゲット
10.0.0.0/16 ローカル
10.0.1.0/24 lgw-2-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 ローカル
172.31.0.0/16 pcx-11223344556677889

VPC B のルートテーブルは次のように設定します。

送信先 ターゲット
172.31.0.0/16 ローカル
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 ローカル
172.31.0.0/16 pcx-11223344556677889
2001:db8:5678:2b00::/56 pcx-11223344556677889

VPC B のルートテーブルに次のルートを追加します。

送信先 ターゲット
172.31.0.0/16 ローカル
10.0.0.0/16 pcx-11223344556677889
2001:db8:1234:1a00::/56 pcx-11223344556677889

VPC ピア接続の詳細については、「Amazon VPC ピアリングガイド」を参照してください。

ゲートウェイ VPC エンドポイントへのルーティング

ゲートウェイ VPC エンドポイントにより、VPC と他の AWS のサービスとをプライベートに接続できます。ゲートウェイエンドポイントを作成するときは、ゲートウェイエンドポイントによって使用されるサブネットルートテーブルを VPC で指定します。ルートは自動的に各ルートテーブル追加されて、送信先としてサービス (pl-xxxxxxxx) のプレフィックスリスト ID、ターゲットとしてエンドポイント ID (vpce-xxxxxxxxxxxxxxxxx) が登録されます。エンドポイントルートを明示的に削除または変更することはできませんが、エンドポイントで使用されるルートテーブルは変更できます。

エンドポイントのルーティングの詳細について、また AWS のサービスへのルートに対する影響については、「ゲートウェイエンドポイントのルーティング」を参照してください。

Egress-Only インターネットゲートウェイへのルーティング

VPC で Egress-Only インターネットゲートウェイを作成して、プライベートサブネットのインスタンスを有効にしてインターネットへのアウトバウンド通信を開始することができますが、インターネットはインスタンスとの接続を開始することはできません。Egress-Only インターネットゲートウェイは、IPv6 トラフィックでのみ使用されます。Egress-Only インターネットゲートウェイのルーティングを設定するには、Egress-Only インターネットゲートウェイに IPv6 インターネットトラフィック (::/0) をルーティングするプライベートサブネットのルートテーブルにルートを追加します。

送信先 ターゲット
::/0 eigw-id

詳細については、「Egress-Only インターネットゲートウェイを使用してアウトバウンド 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 からサードパーティー製アプライアンスを選択することも、独自のアプライアンスを設定することもできます。アプライアンスを作成または設定するときは、次の点に注意してください。

  • アプライアンスは、送信元トラフィックまたは送信先トラフィックとは別のサブネットに設定する必要があります。

  • アプライアンスでの送信元/送信先のチェックを無効にする必要があります。詳細については、[Amazon EC2 ユーザーガイド]の「送信元または送信先チェックの変更」を参照してください。

  • アプライアンスを経由して、同じサブネットのホスト間でトラフィックをルーティングすることはできません。

  • アプライアンスは、ネットワークアドレス変換 (NAT) を実行する必要はありません。

  • ローカルルートよりも具体的なルートを追加できます。より具体的なルートを使用して、VPC 内のサブネット間のトラフィック(East-West トラフィック)をミドルボックスアプライアンスにリダイレクトできます。ルートの送信先は、VPC 内のサブネットの IPv4 または IPv6 CIDR ブロック全体と一致させる必要があります。

  • IPv6 トラフィックをインターセプトする場合、VPC、サブネット、アプライアンスが IPv6 をサポートしていることを確認します。

ゲートウェイとアプライアンス間のトラフィックのルーティング

インバウンド VPC トラフィックをアプライアンスにルーティングするには、ルートテーブルをインターネットゲートウェイまたは仮想プライベートゲートウェイに関連付け、アプライアンスのネットワークインターフェイスを VPC トラフィックのターゲットとして指定します。次の例では、VPC にはインターネットゲートウェイ、アプライアンス、およびインスタンスを持つサブネットがあります。インターネットからのトラフィックは、アプライアンスを介してルーティングされます。

アプライアンスを介したインバウンドトラフィックのルーティング

このルートテーブルをインターネットゲートウェイまたは仮想プライベートゲートウェイに関連付けます。最初のエントリはローカルルートです。2 番目のエントリは、サブネット宛ての IPv4 トラフィックをアプライアンスのネットワークインターフェイスに送信します。このルートは、デフォルトのローカルルートよりも具体的なルートです。

デスティネーション ターゲット
VPC CIDR ローカル
Subnet CIDR アプライアンスのネットワークインターフェイス ID

または、ローカルルートのターゲットをアプライアンスのネットワークインターフェイスに置き換えることもできます。これを行うと、後で VPC に追加するサブネットを送信先とするトラフィックを含め、すべてのトラフィックがアプライアンスに自動的にルーティングされるようになります。

デスティネーション ターゲット
VPC CIDR アプライアンスのネットワークインターフェイス ID

サブネットから別のサブネットのアプライアンスにトラフィックをルーティングするには、アプライアンスのネットワークインターフェイスにトラフィックをルーティングするルートをサブネットルートテーブルに追加します。この送信先は、ローカルルートの宛先より具体性を低くする必要があります。例えば、インターネットを送信先とするトラフィックの場合、宛先に 0.0.0.0/0(すべての IPv4 アドレス)を指定します。

送信先 ターゲット
VPC CIDR ローカル
0.0.0.0/0 アプライアンスのネットワークインターフェイス ID

次に、アプライアンスのサブネットに関連付けられたルートテーブルで、トラフィックをインターネットゲートウェイまたは仮想プライベートゲートウェイに送り返すルートを追加します。

デスティネーション ターゲット
VPC CIDR ローカル
0.0.0.0/0 igw-id

サブネット間トラフィックをアプライアンスへルーティング

特定のサブネットを送信先とするトラフィックを、アプライアンスのネットワークインターフェイスにルーティングできます。次の例では、VPC に 2 つのサブネットと 1 つのアプライアンスが含まれています。サブネット間のトラフィックは、アプライアンスを介してルーティングされます。

アプライアンスを介したサブネット間のトラフィックのルーティング
セキュリティグループ

ミドルボックスアプライアンスを介して異なるサブネットのインスタンス間でトラフィックをルーティングする場合、両方のインスタンスのセキュリティグループでインスタンス間のトラフィックフローを許可する必要があります。各インスタンスのセキュリティグループは、他のインスタンスのプライベート IP アドレス、または他のインスタンスを含むサブネットの CIDR 範囲を送信元として参照する必要があります。他のインスタンスのセキュリティグループを送信元として参照する場合、インスタンス間のトラフィックは許可されません。

ルーティング

次に、サブネット A のルートテーブルの例を示します。最初のエントリにより、VPC 内のインスタンスが通信できるようになります。2 番目のエントリは、サブネット A からサブネット B へのすべてのトラフィックをアプライアンスのネットワークインターフェイスにルーティングします。

デスティネーション ターゲット
VPC CIDR ローカル
Subnet B CIDR アプライアンスのネットワークインターフェイス ID

次に、サブネット B のルートテーブルの例を示します。最初のエントリにより、VPC 内のインスタンスが相互に通信できるようになります。2 番目のエントリは、サブネット B からサブネット A へのすべてのトラフィックをアプライアンスのネットワークインターフェイスにルーティングします。

デスティネーション ターゲット
VPC CIDR ローカル
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 ローカル
pl-123abc123abc123ab tgw-id

プレフィックスリストのエントリの最大数は、ルートテーブル内のエントリ数と同じになります。

Gateway Load Balancer エンドポイントにルーティングする

Gateway Load Balancer を使用すると、ファイアウォールなどの仮想アプライアンスのフリートにトラフィックを分散できます。Gateway Load Balancer を作成し、Gateway Load Balancer エンドポイントサービスを設定し、VPC に Gateway Load Balancer エンドポイントを作成してサービスに接続できます。

トラフィックを (例えば、セキュリティ検査のために) 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 の開始方法」をご参照ください。