Статический IP с использованием Elastic Beanstalk
Мне нужен статический IP-адрес, чтобы разрешить доступ к сети, защищенной брандмауэром, а не к сети AWS.
Можно ли получить статический IP-адрес для приложения с балансировкой нагрузки, используя Elastic Beanstalk? Я следую документам AWS относительно использования Route 53 для размещения моего приложения с доменным именем, но из того, что я прочитал, это не гарантирует статический IP-адрес, потому что он по сути использует CNAME, позволяющий скрытый IP-адрес изменять, Это правильное понимание? Это вообще возможно?
3 ответа
Amazon опубликовал новый пример специально для вас: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/vpc-basic.html
Вы можете развернуть приложение Elastic Beanstalk в среде автоматического распределения нагрузки с балансировкой нагрузки в VPC, которая имеет как открытую, так и закрытую подсети. Используйте эту конфигурацию, если вы хотите, чтобы Elastic Beanstalk назначал частные IP-адреса вашим экземплярам Amazon EC2.
Этот пост помог мне получить статический IP-адрес для исходящих запросов с помощью шлюза NAT и маршрутизации через него определенных запросов.
Мне нужен этот статический IP-адрес, чтобы быть в белом списке от внешнего поставщика API.
Я нашел этот способ намного проще, чем предоставляемый AWS, без необходимости создания нового VPC, а также частных и общедоступных подсетей.
В основном то, что я сделал, было:
- Создайте новую подсеть для размещения шлюза NAT.
- Создайте шлюз NAT в указанной выше подсети и назначьте новый эластичный IP. Этот будет нашим исходящим IP для подключения внешних API.
- Создайте таблицу маршрутизации для подсети NAT. Весь исходящий трафик (
0.0.0.0/0
) следует маршрутизировать через шлюз NAT. Назначьте созданную подсеть для использования новой таблицы маршрутов. - Измените основную таблицу маршрутов (ту, которая обрабатывает все наши запросы экземпляров EC2) и добавьте IP-адреса внешнего API, установив его цель для шлюза NAT.
Таким образом, мы можем направить любой запрос на внешние IP-адреса API через шлюз NAT. Все остальные запросы направляются через интернет-шлюз по умолчанию.
Как отмечается в сообщениях, это не решение Multi AZ, поэтому, если AZ, который содержит наш NAT-шлюз, выходит из строя, мы можем потерять соединение с внешним API.
Обновление:
Посмотрите комментарий @TimObezuk, чтобы сделать это решение Multi-AZ.
Разверните свою среду beanstalk в VPC, и при правильной конфигурации статический IP-адрес для исходящего трафика очень прост.
В этой настройке все ваши экземпляры ретранслируют свой исходящий трафик через одну машину, которой вы можете назначить эластичный IP-адрес. Весь внутренний исходящий, связанный с Интернет трафик из всех находящихся за ним экземпляров будет отображаться из другой сети с использованием этого единственного эластичного IP-адреса.
Часть RDS следующего может не иметь отношения к вашим потребностям, но принципы все те же.
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo-vpc-rds.html