Отображение портов Dynami c для задач ECS - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу запустить программу сокетов в aws ecs с клиентом и сервером в одном определении задачи. Я могу запустить его, когда использую сетевой режим awsvp c и каждый раз подключаюсь к серверу на локальном хосте. Это хорошо, поэтому мне не нужно знать IP-адрес сервера. Проблема в том, что сервер должен запускаться на каком-то порту, и если я запускаю 10 из этих задач, одновременно выполняются только 3 задачи (= количество запущенных экземпляров). Это очевидно, потому что 10 задач не могут открыть один и тот же порт. Я могу вручную проверить наличие открытых портов перед запуском сервера и каким-то образом записать его на общий том docker, где клиент может читать и подключаться. Но это кажется сложным, и мой сервер имеет ненужный код. Для Служб есть динамическое сопоставление портов c с использованием Application Load Balancer, но нет ничего для простого запуска задач. Как запустить несколько программ сокетов, не управляя номером порта в Aws ecs?

1 Ответ

0 голосов
/ 25 апреля 2020

Если вы используете режим awsvp c, у каждой задачи будет свой собственный eni, и не должно быть конфликтов портов. Но каждый тип экземпляра имеет ограниченное число доступных enis. Вы можете увеличить это, включив транкинг eni, который, однако, поддерживается несколькими типами экземпляров: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html#eni -trunking-Поддерживаемые типы экземпляров

...