Настройка порта приложения для AWS Fargate - PullRequest
0 голосов
/ 12 апреля 2020

Я создаю задачу Fargate на AWS, которая включает в себя создание определения задачи и балансировщика нагрузки. Я должен был указать номера портов и протоколы в нескольких местах:

  1. При создании определения задачи: мне пришлось настроить порт и протокол контейнера.
  2. При создании службы мне пришлось укажите целевую группу или порт производственного прослушивателя.
  3. При создании балансировщика нагрузки мне пришлось настроить порт для:

    a. Слушатель (это процесс, который проверяет запросы на соединение, используя настроенный вами протокол и порт).

    b. Мне пришлось создать целевую группу и настроить ее (которая направляет запросы к целям в целевой группе, используя указанный протокол и порт)

Я хотел бы знать, как все эти порты связаны друг с другом.

Мой контейнер - это веб-сервер, который работает на порту 8000. Я хотел бы просто иметь балансировщик нагрузки, который прослушивает порт 80 и маршрутизирует трафик c в мой контейнер, который прослушивает порт 8000. Какая связь между слушателем и целевой группой? Почему я должен указать целевую группу для службы, учитывая, что я уже использую ее в балансировщике нагрузки, и она уже добавлена ​​в балансировщик нагрузки? что произойдет, если я назначу им разные целевые группы в сравнении с балансировщиком нагрузки, добавленным к этой услуге? Если у меня есть все эти маршруты, почему я все равно должен указывать порт контейнера и протокол в определении задачи?

Заранее спасибо!

1 Ответ

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

Вы сможете достичь желаемого результата, указав порты 4 раза: *

  1. Порт для целевой группы. Это порт , на который ваши цели (т.е. контейнеры) получают трафик c. В вашем случае это будет порт 8000 .

  2. Порт для прослушивания балансировки нагрузки. Это порт , на котором прослушивает балансировщик нагрузки . В вашем случае порт 80 .

  3. ContainerPort в определение задачи . Это фактический порт, на котором ваше приложение будет прослушивать соединение . В вашем случае это будет 8000 .

  4. ContainerPort . Порт на контейнере для связи с балансировщиком нагрузки. Этот порт должен соответствовать containerPort в определении задачи , используемом задачами в службе. В вашем случае это будет 8000 .

слушатель на ALB получает трафик c на порт 80 и обычно (вы можете решить, что с ним делать) он направляет трафик c к целям в целевой группе . Группа будет состоять из целей, которые будут обрабатывать ваш запрос. В вашем случае это будет служба ECS, которая содержит задачи, прослушивающие порт 8000 . Вы можете иметь много целей в целевой группе. В этом случае алгоритм маршрутизации используется для выбора определенной цели c для данного запроса.

ps Не удается ответить на все ваши подвопросы в одном вопросе SQ по адресу этот момент. Но я надеюсь, что то, что я мог написать, поможет вам.

...