Назад | Перейти на главную страницу

Назначение доменного имени задаче AWS Fargate

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

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

Спасибо

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

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

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

и

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

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

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

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

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

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

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

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

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

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

Эта статья показывает подход с использованием лямбда-функции для выполнения именно этого действия при повторном развертывании контейнера.