例: 共有サービス VPC のアプライアンス - Amazon VPC

例: 共有サービス VPC のアプライアンス

共有サービス VPC でアプライアンス (セキュリティアプライアンスなど) を設定できます。トランジットゲートウェイアタッチメント間でルーティングされるすべてのトラフィックは、まず、共有サービス VPC のアプライアンスによって検査されます。

フローの維持を保証するには、transit gatewayを 1 つだけアプライアンス VPC に接続する必要があります。複数のtransit gatewaysを単一のアプライアンス VPC に接続しても、transit gatewaysはフロー状態情報を相互に共有しないので、フローの維持は保証されません。

重要

アプライアンスモードのトラフィックは、送信元と送信先のトラフィックが同じtransit gatewayアタッチメントから集中型 VPC (インスペクション VPC) に到達する限り、正しくルーティングされます。送信元と送信先が 2 つの異なるtransit gatewayアタッチメントから入力されている場合、トラフィックが低下する可能性があります。アプライアンスモードは、VPN を介してネットワークに入るトラフィックには適用されません。

概要

次の図は、このシナリオの設定に重要なコンポーネントを示しています。トランジットゲートウェイには、3 つの VPC アタッチメントがあります。VPC C は共有サービス VPC です。VPC A と VPC B 間のトラフィックはトランジットゲートウェイにルーティングされ、その後、最終的な宛先にルーティングされる前に、検査のために VPC C のセキュリティアプライアンスにルーティングされます。アプライアンスはステートフルアプライアンスであるため、リクエストトラフィックとレスポンストラフィックの両方が検査されます。高可用性を実現するために、VPC C の各アベイラビリティーゾーンにアプライアンスがあります。


                共有サービス VPC のアプライアンス

このシナリオでは、次のリソースを作成します。

  • 3 つの VPC。VPC の作成については、アマゾン仮想プライベートクラウド ユーザーガイドの「VPC を作成する」を参照してください。

  • トランジットゲートウェイ。詳細については、「Transit Gateway を作成する」を参照してください。

  • 3 つの VPC アタッチメント、各 VPC に 1 つずつ。詳細については、「VPC への Transit Gateway アタッチメントの作成」を参照してください。

    VPC アタッチメントごとに、各アベイラビリティーゾーンでサブネットを指定します。共有サービス VPC の場合、これらは、トラフィックがトランジットゲートウェイから VPC にルーティングされるサブネットです。前の例では、サブネット A と C です。

    VPC C の VPC アタッチメントの場合、appliance modeのサポートを有効にして、レスポンストラフィックがソーストラフィックと同じ VPC C のアベイラビリティーゾーンにルーティングされるようにします。

    Amazon VPC コンソールは、appliance modeをサポートしません。appliance mode、または AWS CloudFormation を有効にするには、Amazon VPC API、AWS SDK、AWS CLI を使用できます。例えば、create-transit-gateway-vpc-attachment または modify-transit-gateway-vpc-attachment コマンドに --options ApplianceModeSupport=enable を追加します。

注記

アプライアンスモードでのフロー維持が保証されるのは、インスペクション VPC に対する送信元トラフィックと宛先トラフィックのみです。

ステートフルアプライアンスとappliance mode

アプライアンスモードが有効な場合、transit gatewayは、フローハッシュアルゴリズムを使用して、アプライアンス VPC 内の 1 つのネットワークインターフェイスを選択し、フローの有効期間中トラフィックを送信します。transit gatewayは、リターントラフィックに同じネットワークインターフェイスを使用します。これにより、双方向トラフィックは対称的にルーティングされます。つまり、フローの有効期間中、VPC アタッチメント内の同じアベイラビリティーゾーンを経由してルーティングされます。アーキテクチャ内に複数のtransit gatewaysがある場合、各transit gatewayは独自のセッションアフィニティを維持し、各transit gatewayは異なるネットワークインターフェイスを選択できます。

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

詳細については、AWSブログの一元化された検査アーキテクチャを参照してください。

appliance modeが有効化されていない場合の動作

アプライアンスモードが有効になっていない場合、transit gatewayは、送信元のアベイラビリティーゾーン内の VPC アタッチメント間でルーティングされたトラフィックが送信先に到達するまで維持しようとします。トラフィックは、アベイラビリティーゾーンに障害が発生した場合、またはそのアベイラビリティーゾーン内で VPC アタッチメントに関連付けられたサブネットがない場合にのみ、アタッチメント間でアベイラビリティーゾーンを通過します。

次の図は、appliance modeサポートが有効でない場合のトラフィックフローを示しています。VPC B のアベイラビリティーゾーン 2 から発信されるレスポンストラフィックは、トランジットゲートウェイによって VPC C 内の同じアベイラビリティーゾーンにルーティングされます。したがって、アベイラビリティーゾーン 2 のアプライアンスは VPC A の送信元からの元のリクエストを認識しないため、トラフィックはドロップされます。


                アプライアンスへのレスポンストラフィックのドロップ

ルーティング

各 VPC には 1 つ以上のルートテーブルがあり、transit gatewayには 2 つのルートテーブルがあります。

VPC ルートテーブル

VPC A と VPC B

VPC A と B には、2 つのエントリを持つルートテーブルがあります。最初のエントリは、VPC のローカル IPv4 ルーティングのデフォルトエントリです。このデフォルトエントリにより、この VPC 内のリソースが相互に通信できるようになります。2 番目のエントリは、他のすべての IPv4 サブネットトラフィックを transit gateway にルーティングします。以下は、VPC A のルートテーブルです。

送信先 ターゲット

10.0.0.0/16

ローカル

0.0.0.0/0

tgw-id

VPC C

共有サービス VPC (VPC C) には、サブネットごとに異なるルートテーブルがあります。サブネット A はトランジットゲートウェイによって使用されます (VPC アタッチメントの作成時にこのサブネットを指定します)。サブネット A のルートテーブルは、サブネット B のアプライアンスにすべてのトラフィックをルーティングします。

送信先 ターゲット

192.168.0.0/16

ローカル

0.0.0.0/0

appliance-eni-id

サブネット B (アプライアンスを含む) のルートテーブルは、トラフィックをトランジットゲートウェイにルーティングします。

送信先 ターゲット

192.168.0.0/16

ローカル

0.0.0.0/0

tgw-id

トランジットゲートウェイルートテーブル

このトランジットゲートウェイは、VPC A と VPC B に 1 つのルートテーブルを使用し、共有サービス VPC (VPC C) には 1 つのルートテーブルを使用します。

VPC A と VPC B のアタッチメントは、次のルートテーブルに関連付けられています。ルートテーブルは、すべてのトラフィックを VPC C にルーティングします。

送信先 ターゲット ルートタイプ

0.0.0.0/0

VPC C のアタッチメント ID

静的

VPC C アタッチメントは、次のルートテーブルに関連付けられています。トラフィックを VPC A および VPC B にルーティングします。

送信先 ターゲット ルートタイプ

10.0.0.0/16

VPC A のアタッチメント ID

伝播済み

10.1.0.0/16

VPC B のアタッチメント ID

伝播済み