HA для шлюзов NAT / Internet в среде Elastic Beanstalk с несколькими AZ/ подсетями

У меня есть вопрос, касающийся шлюзов NAT и интернета, привязанных к эластичному бобовому стеблю. Мой конфиг следующий:

  • 3 общедоступных подсети в разных AZ
  • 1 таблица маршрутов с 3 общедоступными подсетями и интернет-шлюзом
  • 3 частных подсети в разных AZ
  • 1 таблица маршрутов с 3 частными подсетями и ничем (пока)
  • ELB настроил с 3 подсетями в каждом AZ и 3 частными подсетями в каждом AZ для экземпляров

Теперь, если я создаю шлюз NAT для этих 3 частных подсетей, это означает, что мне нужно создать один шлюз для каждой из них в разных AZ и 3 разных Elastic IP? Я думаю, что что-то упустил, но я не вижу этого, если эта конфигурация не имеет смысла.

1 ответ

Решение

TL;DR

Это твой выбор. Технически один экземпляр NAT может обслуживать все частные подсети в одном VPC.

Немного дольше:

Сначала мы различаем NAT-экземпляр (экземпляр EC2, настроенный как NAT GW, управляемый конечным пользователем) и NAT-шлюз (NAT-экземпляр, управляемый AWS).

Если это NAT-инстанс, то человеку, реализующему его, нужно гораздо больше понять, как его реализовать. Ответа на этот вопрос не хватит для этого.

Если это NAT GW, то AWS сообщает: "Каждый шлюз NAT создается в определенной зоне доступности и реализуется с избыточностью в этой зоне". Что я интерпретирую как: Пока весь AZ не выключен, AWS гарантирует HA для NATGW (возможно, с прерыванием или ухудшением обслуживания).

Технически у вас должно быть хорошо с одним NAT GW в любой из вашей общедоступной подсети, если таблица маршрутизации всех 3 частных подсетей обеспечивает маршрут к этому NATGW (и, как я предполагаю, подразумевается, что security-group / acl настроены на использование этого маршрута). Вы, конечно, платите за использование полосы пропускания между AZ, благодаря этой конфигурации.

Но очевидно, что это не отказоустойчиво в случае, если AZ выходит из строя.

Если вы не хотите, чтобы все ваши частные подсети теряли подключение к Интернету, когда NAT GW не работает, вам нужно иметь больше NAT GW. Решение о том, иметь ли больше, чем один, и если да, то сколько, я полагаю, от случая к случаю.

Если у вас есть 2 NAT GW, то для того, чтобы произошло переключение при сбое, вам нужно настроить мониторинг и переключение при сбое, чтобы гарантировать, что если AZ отключается, все частные подсети (которые обслуживались NAT GW в этом AZ) начинают отправлять трафик на другой NAT GW. Хорошее объяснение здесь. Это немного работы AFAIK.

Наконец, связь между EIP и NAT GW является взаимно-однозначной. Так что да, вам придется создать один EIP для каждого NAT GW, который вы создаете.

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