Как подключиться к службе ECS, работающей на Fargate? - PullRequest
0 голосов
/ 08 октября 2019

Я создаю слабое приложение, и ожидается, что мое приложение получит вызовы webhook от слабого. Поэтому мне нужно дать Slack «конечный URL-адрес для моей службы»

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

Я не совсем уверен, как я могу успешно подключить интернет (slack) к своему экземпляру контейнера. Как создать «конечную точку», в которую Slack может отправлять запросы? Я считаю, что для этого мне нужно использовать API-шлюз, но я не уверен, каким образом я должен настроить API-шлюз, чтобы он перенаправлял мои URL-адреса в мою службу ECS ...?

Примечания:

  • Сейчас я не планирую выполнять более одной задачи, поэтому было бы удобнее, если бы мне не пришлось настраивать балансировщик нагрузки
  • Однако я планирую регулярно обновлять саму службу, и задачи будут часто перезапускаться

1 Ответ

0 голосов
/ 10 октября 2019

Я не уверен, есть ли альтернатива или нет, но при настройке службы на fargate, для получения трафика вам потребуется

  • Чтобы иметь балансировщик нагрузки (либо ALBили NLB должен работать)
  • В случае ALB должна быть создана целевая группа с таргетингом на «IP»
  • Только во время создания службы вы можете выбрать, чтобы ваши контейнеры оставались позадицелевая группа или ALB

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

"loadBalancers": [
        {
            "containerName": "your-container-name-app",
            "containerPort": 80,
            "targetGroupArn": "arn:aws:elasticloadbalancing:eu-central-1:account-id:targetgroup/targetgroup-name/RANDOM-ID"
        }
    ],

Создать целевую группу, подобную этой

aws elbv2 create-target-group \
--name targetgroup-name \
--protocol HTTP \
--port 80 \
--vpc-id vpc-YOUR_VPC_ID \
--health-check-protocol HTTP \
--health-check-path /healthcheck \
--target-type ip

Таким образом, вы будете использовать DNS балансировщика нагрузки для маршрутизации трафика к вашим экземплярам. Используя ALB, вы можете легко перехватить определенный путь (например, /slack/*) для маршрутизации к вашей конкретной целевой группе, поэтому один и тот же ALB можно использовать для нескольких разных служб.

Но вам нужен балансировщик нагрузки,и не может нацеливаться на контейнеры Fargate напрямую из того, что я понимаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...