Рейтинг:0

Как добавить доменное имя в контейнер ECS (сервис ECS) без балансировщика нагрузки?

флаг ss

Я ищу способ добавить доменное имя в службу ECS (контейнеры) без балансировщика нагрузки.

Конкретный тип сервиса, для которого я хочу сделать это, сам по себе является балансировщиком нагрузки с возможностями, выходящими за рамки предложения AWS. Нам нужно, чтобы это было избыточным в зонах доступности с аналогичными настройками в нескольких изолированных VPC. Мне очень не хочется тратить 2000 долларов в год на установку достаточного количества балансировщиков нагрузки для выполнения этого простого требования.

Чтобы было ясно, я ищу решение, которое разрешает полное доменное имя во внешний IP-адрес, прикрепленный к контейнеру, поэтому имя A или AAAA (возможно, CNAME, если оно взвешено и указывает на A или AAAA). Для меня не имеет значения, в каком режиме сети это работает. Контейнер можно разместить в любом хозяин, мост, awsvpc если решение работает!

До сих пор я нашел это разочаровывающе ограниченным:

  • Service Discovery добавит записи SRV только для хозяин и мост тип сетевых контейнеров
  • Service Discovery создаст записи A и AAAA для awsvpc контейнеры сетевого типа, но awsvpc задачи не могут быть размещены на инстансах ECS EC2 и при этом иметь общедоступный IP-адрес.
  • Выполнение тех же задач в fargate будет стоить столько же или больше, чем балансировщики нагрузки.
  • Route53 не имеет хорошего механизма для добавления записей имен A и AAAA в экземпляры EC2 в группе автоматического масштабирования, поэтому, даже если я размещу экземпляр этой задачи на каждом узле, я все равно не смогу ссылаться на него по доменному имени.

Как добавить доменное имя в контейнер ECS без балансировщика нагрузки?

Рейтинг:0
флаг nl

Мне не ясен вопрос. Service Discovery поддерживает доменное имя (пространство имен). Это на самом деле обязательно, насколько я могу судить. Другими словами, если вы хотите использовать SD для службы ECS, называемой моя служба вы должны обращаться к нему как к myservice.<домен> куда <domain> — это произвольное пространство имен, которое необходимо определить (например, .local или .my.domain). Вот пример стека, который использует SD.

Обратите внимание, что все это внутренний к кластеру и как работает внутреннее обнаружение службы (например, как служба ECS обнаруживает другую службу ECS).

[Изменить] ЕСЛИ вы хотите предоставить свои службы ECS, но НЕ хотите использовать балансировщик нагрузки, другим вариантом будет использование API GW как описано в этом сообщении в блоге. Как правило, вы не хотите регистрировать случайные общедоступные IP-адреса задач Fargate в R53, потому что они эфемерны, и вам нужно будет создать сложный механизм, чтобы поддерживать их согласованность, когда задачи Fargate приходят и уходят. Вы также рассматривали Запуск приложений?

флаг ss
Насколько я знаю, это создает только записи DNS SRV. Браузеры Wen и многие другие клиенты не ищут SRV-записи и не умеют их использовать. ...Если только ты не сбежишь на Фаргейт.
mreferre avatar
флаг nl
Да. Это то, что я имел в виду под «внутренним по отношению к кластеру». Я обновил свой ответ.
флаг ss
«*потому что они эфемерны, и вам нужно будет создать сложный механизм, чтобы поддерживать их согласованность при выполнении задач Fargate*» — то же самое относится и к внутреннему IP-адресу в кластере ECS EC2. Контейнеры можно снести и разместить на новом хосте. С группой автоматического масштабирования сами хосты отключаются и снова восстанавливаются. Вот почему «Service Discovery» существует AFAIK. Наличие решения, которое отслеживает изменение IP-адреса службы, является своего рода вопросом.
флаг ss
Я предполагал, что «доменное имя» подразумевает что-то внешнее; но вы правы, есть и такие вещи, как внутренние доменные имена. Я отредактировал вопрос, чтобы сделать его явным.
mreferre avatar
флаг nl
«Наличие решения, которое отслеживает изменение IP-адреса службы, — это своего рода вопрос»
флаг ss
*"Мы слышали, что вам нравятся балансировщики нагрузки, поэтому мы заставили вас поставить балансировщик нагрузки на ваш балансировщик нагрузки, чтобы вы могли..."* /вздох. Спасибо за ваши мысли. Приятно знать, что я не упускаю ничего очевидного.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.