Присвоение доменного имени задаче AWS Fargate

12

У меня есть задача AWS Fargate, которая запускает веб-приложение в общедоступной подсети, поэтому оно имеет публичный адрес. Мой вопрос заключается в том, как подключить домен (через маршрут 53) к этой задаче, чтобы ничего не сломалось при развертывании его новой версии.

  • Я знаю, что могу использовать ALB / NLB, но хочу сэкономить.
  • Я не хочу использовать публичный IP напрямую, так как он может измениться.
  • Я предполагаю, что решение должно что-то делать с ENI, но я не уверен, как указать на него по маршруту 53.

Любая помощь приветствуется.

Спасибо

Лео
источник

Ответы:

6

В большинстве случаев вы, скорее всего, захотите использовать ALB / NLB для обнаружения сервисов. Несмотря на некоторые затраты, вы также получаете множество преимуществ: некоторая защита от DoS, масштабирование метрик, ведение журнала, SSL / TLS

Однако вы можете использовать обнаружение службы ECS .

Служба обнаружения служб использует действия API-интерфейса автоматического присвоения имен Amazon Route 53 для управления записями DNS для задач вашей службы, делая их обнаруживаемыми в вашем VPC.

а также

Общедоступные пространства имен поддерживаются, но вы должны иметь существующую общедоступную зону, зарегистрированную в Route 53, перед созданием службы обнаружения служб.

Обнаружение службы требует, чтобы задачи использовали режим awsvpc, bridge или host network.

Вот запись в блоге, подробно описывающая, как использовать обнаружение служб с fargate: https://aws.amazon.com/blogs/aws/amazon-ecs-service-discovery/

М. Глатки
источник
0

Я пытался. Проблема в том, что общедоступный ip, который использует fargate, подключен к ЗАДАЧЕ, поэтому, если задача перезапускается, то дается новый IP-адрес, и запись DNS должна обновляться. Вот почему используется alb / nlb.

Теоретически вы можете использовать что-то еще для управления записями хоста dns, возможно, лямбда-функцию или что-то еще

Замечания по обнаружению служб. Записи DNS, созданные для службы обнаружения служб, всегда регистрируются с использованием частного IP-адреса для задачи, а не общедоступного IP-адреса, даже когда используются общие пространства имен.

https://forums.aws.amazon.com/thread.jspa?threadID=270599

oneklc
источник
0

Как указано в руководстве разработчика ECS :

Amazon ECS не поддерживает регистрацию сервисов в публичных пространствах имен DNS

Таким образом, нет никаких шансов для готовой регистрации общественного домена через ECS Service Discovery. Но вы можете использовать AWS SKD для получения общедоступного IP-адреса вашего контейнера после развертывания и регистрации его в общедоступной зоне Route 53.

В этой статье показан подход, использующий лямбда-функцию, которая делает это точно при каждом повторном развертывании контейнера.

Андреас Паш
источник