Подтвердить что ты не робот

Связывание контейнеров между определениями задач в AWS ECS?

Я пытаюсь настроить базовое веб-приложение, имеющее связанную с ним базу данных, в AWS ECS. Локально у меня эти настройки в разных контейнерах, и в ECS я хотел бы иметь отдельные определения задач, чтобы я мог масштабировать их отдельно.

  • Я зарегистрировал свое первое определение задачи как david_mongodb успешно в ECS. В нем есть контейнер с именем david_mongodb.
  • Затем я попытался зарегистрировать свое второе определение задачи как david_web, у которого есть контейнер с именем david_web, который связывает базу данных с помощью david_mongodb:db.
  • Когда я нажимаю "Создать", он возвращает ошибку:

    Unable to create Task Definition
    Linked container 'david_mongodb:db' doesn't exist.
    

Похоже, что определения задач не могут видеть имена контейнеров в других определениях задач? Я думаю, что использование обоих контейнеров david_web и david_mongodb в одном определении задачи будет работать, но я не хочу этого делать: это помешало бы мне масштабировать либо веб-приложение, либо базу данных отдельно. Этот обзор, кажется, подтверждает, что моя архитектура рекомендуется...

Итак, как мне связать контейнеры, которые живут в разных определениях задач? Или есть другой умный способ справиться с этим?

4b9b3361

Ответ 1

Ссылки в определении задачи ECS аналогичны Docker links и работают только тогда, когда контейнеры являются частью одного и того же определения задачи (контейнеры, которые часть определения одной задачи помещается вместе на одном и том же хосте). Для связи между контейнерами в разных определениях задач вам понадобится механизм обнаружения мест размещения контейнеров (какой хост), а также порт для связи.

ECS имеет интеграцию с ELB через функцию service, где задачи будут автоматически регистрироваться в ELB и отменяться в ELB соответствующим образом. Если вы хотите избежать ELB, другой шаблон может быть контейнер посла (там образец, называемый ecs-task-kite, который использует ECS API), или вас может заинтересовать оверлейная сеть (Weave имеет довольно подробный руководство по началу работы для их решения).

Обнаружение сервиса для Amazon ECS Использование DNS описывает другой подход, при котором функция Lambda прослушивает поток событий ECS через CloudWatch Events и обновляет Route 53 DNS-записи.

Натан Пек отслеживает ряд разных тем, связанных с ECS, включая обнаружение сервисов, .