У меня есть 2 службы, развернутые в ECS в одном VPC и одной подсети. ServiceB
зависит от ServiceA
и пытается подключиться к нему через порт 4000
. Порт отображается правильно в образе Docker, и ServiceA
запускается нормально и привязывается к порту 4000
, но по каким-то причинам в журналах он показывает таинственный IP 169.254.A.B
, к которому он привязывается, также если я запускаю ifconfig из контейнера, который он показывает Мне единственный IP-адрес, назначенный контейнеру, является 169.254.A.B
, однако задаче назначен частный IP-адрес в пределах диапазона подсети - 172.31.C.D
, а общедоступному IP-адресу, назначенному ему, является 52.14.X.Y
. Если я запускаю ServiceB
локально и указываю на 52.14.X.Y:4000
, он подключается. То же самое происходит, если я запускаю его с этой конечной точкой внутри ECS, что ожидается. Теперь я хочу избавиться от IP-адресов и использовать Service Discovery, и я настроил ServiceA
для имени servicea.myproject
, и я могу видеть запись, созданную на маршруте 53 для этой зоны и этого VPC, но ServiceB
не удается разрешить ее, если Я указываю на это как servicea.myproject:4000
.
Мои вопросы: откуда взялся этот загадочный IP 169.254.A.B
и почему он работает как «мост» к публичной сети? Почему Service Discovery работает не так, как я ожидаю?