У меня будет несколько экземпляров EC2 в группе автоматического масштабирования Elastic Beanstalk в подсети по умолчанию в VPC. Приложение в этих экземплярах EC2 должно подключаться к сторонней службе, которая использует белый список IP-адресов, чтобы разрешить доступ. Поэтому мне нужен один или несколько статических IP-адресов, которые я могу дать этому поставщику услуг, чтобы они могли быть добавлены в белый список. Насколько я понимаю, единственный способ получить статический IP-адрес - это получить эластичный IP-адрес. И я могу связать Elastic IP только с одним экземпляром EC2 одновременно - я не могу связать его со всей моей подсетью или интернет-шлюзом (это правильно?). Так нужен ли мне Elastic IP для каждого экземпляра EC2, чтобы каждый экземпляр мог быть отдельно внесен в белый список? Как это будет работать, если автоматическое масштабирование добавляет еще один экземпляр? Должен ли я иметь один экземпляр EC2 с Elastic IP, и направить весь исходящий трафик через этот экземпляр? Если да, то должен ли этот экземпляр быть предназначен исключительно для этой цели или это может быть один из экземпляров, на которых запущено мое приложение?
27
Я понимаю, что это старый поток - для кого-то, у кого есть подобный пример использования, AWS nat-gateway будет лучшим решением.
источник
У меня недостаточно репутации, чтобы комментировать вышеприведенные ответы, но я хотел бы добавить некоторую информацию, которую вам необходимо знать, если вы используете шлюз NAT для достижения этой цели. Когда вы создаете шлюз NAT, вы выбираете подсеть и эластичный IP-адрес.
Сначала я просто добавил шлюз NAT в ту же подсеть, в которой были включены мой эластичный балансировщик нагрузки и экземпляры EC2. Затем необходимо добавить шлюз NAT в таблицу маршрутов. Я добавил шлюз NAT в качестве цели для IP-адреса моего внешнего сервера базы данных, с которым я пытался связаться. Это привело к истечению времени ожидания приложений, размещенных в моем гибком бобовом стебле. Это потому, что они пытались подключиться к этой внешней базе данных через NAT. Они достигли NAT, а затем NAT попытался связаться с моим сервером через Интернет и искал его в таблице маршрутов для подсети, в которой он был, который указывал назад на себя, создавая цикл.
Решение заключается в том, что перед созданием шлюза NAT создайте новую подсеть только для NAT, чтобы у NAT была своя собственная подсеть и таблица маршрутов. В таблице маршрутизации NAT укажите весь трафик на интернет-шлюз. В основной таблице маршрутизации укажите внешний IP-адрес для NAT. Затем, когда ваши экземпляры EC2 попытаются подключиться к вашему внешнему IP, они будут искать их в основной таблице маршрутов (или в любой другой таблице маршрутов, которую вы определили для подсетей, в которых находятся ваши экземпляры), и найдут NAT. Затем ваш NAT найдет этот IP-адрес в своей таблице маршрутов и найдет Интернет.
источник