Использование AWS Nat Gateway из разных VPC через пиринг VPC

Я хотел бы использовать Nat Gateway (не Nat Instance на EC2!) Из другого VPC для маршрутизации моего трафика от одноранговых 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-/ |
\------------------------------------------------------/

Моя идея:

  • Я настрою VPC-COMMON с подсетями и шлюзом Nat в каждой подсети (одна подсеть на AZ)
  • Я настрою VPC-LIVECHAT и VPC-DATABASE VPC, создаю пиринговые соединения VPC
  • В подсетях VPC-COMMON будет маршрут 0.0.0.0/0 -> Nat Gateway в той же подсети.
  • В подсетях VPC-LIVECHAT и VPC-DATABASE (все они) будет использоваться маршрут VPC-COMMON CIDR -> VPC Peering Connection
  • В каждой подсети VPC-LIVECHAT и VPC-DATABASE будет маршрут 0.0.0.0/ -> шлюз Nat в соответствующей подсети VPC-COMMON (подсети A будут использовать NAT GW в подсети A VPC-COMMON и т. Д.)

Я думаю, что эта установка должна работать довольно хорошо, это просто маршрутизируемые VLAN. Но не в AWS. AWS не хочет разрешать мне использовать Nat Gateway в разных VPC в таблице маршрутов с ошибкой

"Таблица маршрутизации rtb-293fa54d и interface interface-c2002e9e принадлежат разным сетям"

Я также не могу использовать частный IP шлюза Nat в AWS, 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 Peering не поддерживает маршрутизацию с несколькими прыжками. Следующие конфигурации не поддерживаются через пиринг VPC.

  • VPC A -> VPC B -> Интернет
  • VPC A -> VPC B -> VPC C

Ссылка: неверные конфигурации пирингового соединения VPC

Другие вопросы по тегам