Подключение контейнера Django к контейнеру MySQL в одном определении задачи AWS ECS Fargate

У меня есть репозиторий здесь. В настоящее время я испытываю трудности с его развертыванием на AWS ECS. Репозиторий настроен на использование Github Actions для сборки двух контейнеров и их отправки в ECR, а затем обновление определения задачи ECS для извлечения последнего коммита образа.

Оба контейнера запускаются, но затем терпят неудачу. Контейнер Django выдает ошибку django.db.utils.OperationalError: (2005, "Unknown server host 'template-db' (-2)")

Насколько я понимаю, имя DB_HOST в settings.py должно быть именем контейнера, когда они находятся в одном и том же определении задачи. Почему тогда это не работает? Есть ли здесь какая-то фундаментальная сетевая концепция, которую я не понимаю?

Я использую ECS Fargate, и поэтому для сетевого режима используется awsvpc.

Я также попробовал изменить имя хоста на localhost, так как это сработало в настройках podman-compose на local, что не помогло. Я не удивлен, поскольку это отдельные контейнеры в бессерверной среде.

То, что я пробовал, должно быть видно в репозитории здесь:

Насколько я понимаю, имя DB_HOST в settings.py должно быть именем контейнера, когда они находятся в одном и том же определении задачи.

Нет, это неверно. Если вы используете awsvpc сетевой режим для своих контейнеров, что является единственной возможностью на Fargate, то DB_HOST настройки должны быть localhost или 127.0.0.1.

Вернуться на верх