Amazon-Web-Services
跨 VPC 對等使用來自不同 VPC 的 AWS Nat Gateway
我想使用來自另一個 VPC 的 Nat 網關(不是 EC2 上的 Nat 實例!)將我的流量從對等 VPC 路由到 Internet。我的基礎架構如下所示:
/---------------------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 一個子網)
- 我將設置 VPC-LIVECHAT 和 VPC-DATABASE VPC,創建 VPC 對等連接
- 在 VPC-COMMON 子網中,路由 0.0.0.0/0 -> Nat Gateway 在同一子網中
- 在 VPC-LIVECHAT 和 VPC-DATABASE 子網(全部)中,將有路由 VPC-COMMON CIDR -> VPC 對等連接
- 在 VPC-LIVECHAT 和 VPC-DATABASE 的每個子網中,都會有路由 0.0.0.0/ -> VPC-COMMON 對應子網中的 Nat 網關(子網 A 將使用 VPC-COMMON 子網 A 中的 NAT GW 等等…)
我認為這個設置應該工作得很好,它只是路由 VLAN。但不是在 AWS 中。AWS 不想讓我在路由表中的不同 VPC 中使用 Nat Gateway,但出現錯誤
“路由表 rtb-293fa54d 和介面 interface-c2002e9e 屬於不同的網路”
我也不能在 AWS 中使用 Nat Gateway 的私有 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 是我的自定義 lambda 支持資源,可幫助我獲取每個可用區的 Nat 網關列表。
有什麼辦法可以實現這個設置?我每個區域將有大約 10 個 VPC,每個區域有 3 個私有子網,我真的不想設置(並支付)30 個 Nat 網關。這看起來像正常的“非多雲”網路設置,因此在雲中實現它應該沒有問題。或者是嗎?
AWS 不支持這種類型的配置。VPC 對等互連不支持“多跳”路由。通過 VPC 對等互連不支持以下配置。
- VPC A -> VPC B -> 網際網路
- VPC A -> VPC B -> VPC C