Связывание контейнера в AWAR Fargate

Я пытаюсь настроить небольшой пример в AWG Fargate и попытаться создать один контейнер приложения с одним контейнером базы данных.

Определение задачи запускает оба контейнера, но мой контейнер приложения не работает с getaddrinfo ENOTFOUND db db:3306. Таким образом, контейнер базы данных не может быть найден моим контейнером приложения.

Поскольку Fargate не разрешает "ссылки" контейнеров Docker, я хотел бы знать, как они могут общаться друг с другом. Контейнер базы данных имеет имя db с портом 3306, и мой контейнер приложения настроен на его использование.

К сожалению, определение ссылок контейнеров недоступно для Fargate, но только для "oldschool" ECS/EC2.

В локальной настройке настройки докеры он работает таким образом.

Ответ 1

Контейнеры в задачах Fargate используют пространство имен в сети, поэтому вам вообще не нужно использовать ссылки. Вы можете просто общаться через localhost.

Например, если у вас есть контейнер A, на котором запущен веб-сервер на порту 8000, контейнер B может достичь его с помощью curl http://localhost:8000/

Ответ 2

Возможно, вы можете настроить его, чтобы службы могли обмениваться информацией по общедоступному IP-адресу друг с другом, а затем защищать порты, используя VPC, только службы могут обмениваться данными с ними.