#amazon-web-services #docker #amazon-ecs #aws-fargate
Вопрос:
Я развертываю java-приложение на aws ecs fargate в учетной записи aws(aws-dev), и оно отлично работает. Мое приложение делает вызов, чтобы получить локальный хост и разрешить его.
InetAddress.getLocalHost()
При запуске приложения я распечатал содержимое файла /etc/hosts, и это выглядит так:
127.0.0.1 localhost
10.111.11.111 ip-10-111-11-111.ec2.internal
До этого момента все работает нормально.
Теперь у меня есть другая учетная запись aws (aws-uat), и я развернул то же приложение(тот же образ докера) в ecs fargate, но я получаю ошибку неизвестного хоста.
java.net.UnknownHostException: 718ec01ffa6a11dea91ea43ea6d18328-1111111111: 718ec01ffa6a11dea91ea43ea6d18328-1111111111: System error
И причина этой ошибки выглядит так: /etc/hosts отличается в этой учетной записи. Здесь содержимое /etc/hosts соответствует указанному ниже, а сопоставление имен хостов отсутствует:
127.0.0.1 localhost
10.11.11.111
Мой вопрос, почему контейнер, запущенный из одного и того же образа docker на aws ecs fargate, будет иметь разные /etc/хосты и почему имя хоста не сопоставляется с ip в более позднем случае ?
Связано ли это с сетью aws между 2 учетными записями, если да, что это может быть и как это решить ? Или здесь что-то еще не так ?
Комментарии:
1. Вам следует проверить параметры DNS в VPC, в котором выполняется каждый из них. Я предполагаю, что у вас может быть отключена поддержка DNS или имена хостов DNS во втором VPC. docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html
2. @MarkB — потрясающе, огромное спасибо !! Пожалуйста, опубликуйте это в качестве ответа.
Ответ №1:
Вам следует проверить параметры DNS в VPC, в котором выполняется каждый из них. Я предполагаю, что у вас может быть отключена поддержка DNS или имена хостов DNS во втором VPC.