web-dev-qa-db-ja.com

VPCピアリング全体で異なるVPCからAWSNatGatewayを使用する

別のVPCからNatGateway(EC2のNatインスタンスではありません!)を使用して、ピアリングされたVPCからインターネットにトラフィックをルーティングしたいと思います。私のインフラストラクチャは次のようになります。

/---------------------VPC-LIVECHAT---------------------\
| /---Subnet A---\  /---Subnet B---\  /---Subnet C---\ |
| |              |  |              |  |              | |
| \-10.10.0.0/24-/  \-10.10.1.0/24-/  \-10.10.2.0/24-/ |
\------------------------------------------------------/
               |                        |
               | VPC Peering Connection |
               |                        |
/----------------------VPC-COMMON----------------------\
| /---Subnet A---\  /---Subnet B---\  /---Subnet C---\ |
| |  /--------\  |  |  /--------\  |  |  /--------\  | |
| |  | NAT GW |  |  |  | NAT GW |  |  |  | NAT GW |  | |
| |  \--------/  |  |  \--------/  |  |  \--------/  | |
| \-10.10.3.0/24-/  \-10.10.4.0/24-/  \-10.10.5.0/24-/ |
\------------------------------------------------------/
               |                        |
               | VPC Peering Connection |
               |                        |
/---------------------VPC-DATABASE---------------------\
| /---Subnet A---\  /---Subnet B---\  /---Subnet C---\ |
| |              |  |              |  |              | |
| \-10.10.6.0/24-/  \-10.10.7.0/24-/  \-10.10.8.0/24-/ |
\------------------------------------------------------/

私の考え:

  • 各サブネットにサブネットとNATゲートウェイを使用してVPC-COMMONをセットアップします(AZごとに1つのサブネット)
  • VPC-LIVECHATとVPC-DATABASEVPCをセットアップし、VPCピアリング接続を作成します
  • VPC-COMMONサブネットでは、同じサブネット内にルート0.0.0.0/0-> NATGatewayがあります
  • VPC-LIVECHATおよびVPC-DATABASEサブネット(それらすべて)には、ルートVPC-COMMON CIDR-> VPC PeeringConnectionがあります。
  • VPC-LIVECHATおよびVPC-DATABASEの各サブネットには、VPC-COMMONの対応するサブネットにルート0.0.0.0 /-> NATゲートウェイがあります(サブネットAはVPC-COMMONのNAT GWを使用します)サブネットAなど...)

この設定はかなりうまくいくはずだと思います。ルーティングされたVLANだけです。しかし、AWSにはありません。 AWSは、ルートテーブルの異なるVPCでNatGatewayをエラーで使用することを許可したくありません

「ルートテーブルrtb-293fa54dとインターフェイスinterface-c2002e9eは異なるネットワークに属しています」

AWSでもNatGatewayのプライベートIPを使用できません。AWSはルートターゲットのIPアドレスをサポートしていません(理由を知りたいです)。

CloudFormationを使用していますが、ルート定義は次のようになります。

"RoutePrivate3ToNatInCommon" : {
    "Type" : "AWS::EC2::Route",
    "Condition" : "IsNotVpcCommon",
    "Properties" : {
        "DestinationCidrBlock" : "0.0.0.0/0",
        "RouteTableId" : { "Ref" : "PrivateSubnet3RoutingTable" },
        "NatGatewayId" : { "Fn::GetAtt" : [ "NatGatewaySettingsForNotCommon", "NatGatewayAZC" ] }
    }
}

NatGatewaySettingForNotCommonは、ラムダに裏打ちされたカスタムリソースであり、アベイラビリティーゾーンごとのNatゲートウェイのリストを取得するのに役立ちます。

この設定を実現する方法はありますか?リージョンごとに約10個のVPCがあり、それぞれに3つのプライベートサブネットがあり、30個のNatゲートウェイをセットアップ(および支払い)したくありません。これは通常の「非クラウド」ネットワーク設定のように見えるので、クラウドでそれを実現するのに問題はないはずです。またはそれは?

1

このタイプの設定はAWSではサポートされていません。 VPCピアリングは「マルチホップ」ルーティングをサポートしていません。次の設定は、VPCピアリングではサポートされていません。

  • VPC A-> VPCB->インターネット
  • VPC A-> VPC B-> VPC C

参照: 無効なVPCピアリング接続設定

5
Matt Houser