Оказывается, AWS Service Discovery использует API Cloud Map для выполнения своих услуг. Он регистрирует контейнеры в размещенной зоне, добавляя записи SRV
, которые ссылаются на записи A
и определенные порты. Это означает, что ваши клиенты должны понимать эти SRV
записи, поскольку они не получат A
записи сразу при выполнении поиска DNS. Керл, например, не понимает SRV
записей .
Поэтому я вернулся к использованию ECS с автоматической регистрацией балансировщика нагрузки. Затем ECS зарегистрирует новые службы в целевой группе, которая ранее была сопоставлена с прослушивателем балансировщика нагрузки. Затем записи DNS управляются полностью независимо, добавляя некоторые записи псевдонимов, которые указывают на балансировщик нагрузки, в то время как другие, такие как запись db.staging.example.com
, используют псевдоним конечной точки баз данных RDS.
Поскольку службы ECS могут регистрировать себя в несколькихцелевые группы, вы также можете использовать несколько балансировщиков нагрузки, например один для публичного доступа и один доступный только в вашем VPC.