Подключение контейнера 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
.