NAT Gateway разбивает входящий трафик для экземпляров в общедоступной подсети.
У меня есть экземпляры Elastic Beanstalk, доступные через ALB в общедоступных подсетях , и я хочу назначить им один IP-адрес (партнер запросил у нас IP-адрес для внесения в белый список для доступа к их сервисам).
Я подписался на https://medium.com/@obezuk/how-to-use-elastic-beanstalk-with-an-ip-whitelisted-api-69a6f8b5f844 , т.е.
- создал новую подсеть, шлюз NAT и таблицу маршрутизации
- направить весь трафик новой подсети NAT на интернет-шлюз в таблице маршрутизации NAT.
- маршрутизировать весь трафик из общедоступных подсетей, в которых размещены экземпляры EC2, в основной таблице маршрутизации
но тогда трафик не достигает моих экземпляров EC2. Я знаю, что шлюз NAT предназначен для доступа в Интернет в частных подсетях, но знаете ли вы, почему это может произойти, когда все находится в общедоступных подсетях?
1 ответ
Кажется, я понял почему: изменив основную таблицу маршрутизации, я сделал все общедоступные подсети частными, поэтому ELB больше не находился в общедоступной подсети и не мог обслуживать запросы.
Вот что я сделал для настройки фиксированного IP:
- Создайте шлюз NAT в общедоступной подсети.
- Создайте новые частные подсети (по одной для каждой зоны доступности).
- Создайте таблицу маршрутов с маршрутом по умолчанию, указывающим на шлюз NAT.
- Свяжите частные подсети с новой таблицей маршрутизации.
- Измените подсети в конфигурации Elastic Beanstalk, чтобы использовать частные подсети. Группа автомасштабирования создаст новые экземпляры в частных подсетях перед завершением старых экземпляров, поэтому простоев практически не должно быть.
Таким образом, все остальные ресурсы в общедоступных подсетях (ELB, RDS) не будут затронуты.