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

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

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

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

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

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

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

0
задан 21 September 2021 в 11:05
1 ответ

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

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

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

0
ответ дан 22 September 2021 в 06:51

Теги

Похожие вопросы