У меня есть веб-сервис Elastic Beanstalk, работающий под управлением Tomcat + Java 8. У меня также есть шлюз API, который будет содержать конечную точку, указывающую на канал VPC.У меня проблемы с развертыванием Beanstalk с настройками, которые я должен использовать.Моя цель - сделать веб-сервис Beanstalk доступным только через конечную точку шлюза API, чтобы ни один внешний пользователь / сервис не мог получить прямой доступ к URL-адресу xyz.us-east-2.elasticbeanstalk.com.
Для этогоЯ создал VPC через консоль, которая использует блок 10.0.0.0/16
IPv4.
Я также создал два набора подсетей: «EC2Subnets», которая использует 10.0.0.0/24
, и «ELBSubnets», которая использует 10.0.1.0/24
.
Из ebcli я запускаю:
$eb create MyApp --elb-type network --vpc
Что запрашивает некоторую информацию:
Enter the VPC ID: vpc-myvpcID
Do you want to associate a public IP address? (Y/n): y
Enter a comma-separated list of Amazon EC2 subnets: subnet-myec2subnetID
Enter a comma-separated list of Amazon ELB subnets: subnet-myelbsubnetID
Enter a comma-separated list of Amazon VPC security groups:
Do you want the load balancer to be public? (Select no for internal) (Y/n): n
Делаем этовызывает зависание при добавлении экземпляра EC2 в Beanstalk и в конечном итоге приводит к ошибке: «Экземпляры EC2 не смогли связаться с AWS Elastic Beanstalk, либо из-за проблем с конфигурацией VPC, либо из-за сбоя экземпляра EC2. Проверьте конфигурацию VPC и попробуйтеснова запустить среду. "
Что я делаю не так?Очевидно, что-то не так с моей сетью, но я изо всех сил пытаюсь понять, что именно.
РЕДАКТИРОВАТЬ: Удалось выяснить это;VPC требовался интернет-шлюз, добавленный в его таблицу маршрутов.Для этого я создал Интернет-шлюз, подключил его к VPC, затем зашел в таблицу маршрутов этого VPC и добавил вновь созданный шлюз, соответствующий 0.0.0.0/0
.