AWS ECS Fargate - 为什么 /etc/hosts 在 2 个 aws 账户之间不同?

AWS ECS Fargate - Why /etc/hosts is different between 2 aws accounts?

我正在 aws 帐户 (aws-dev) 中的 aws ecs fargate 上部署一个 java 应用程序,它运行良好。 我的应用程序调用以获取本地主机并能够解析它。

InetAddress.getLocalHost()

在应用程序启动时,我打印了 /etc/hosts 的内容,它看起来像这样:

127.0.0.1 localhost
10.111.11.111 ip-10-111-11-111.ec2.internal

到目前为止一切正常。

现在我有了另一个 aws 帐户 (aws-uat) 并将相同的应用程序(相同的 docker 图像)部署到 ecs fargate,但我遇到了未知的主机错误。

java.net.UnknownHostException: 718ec01ffa6a11dea91ea43ea6d18328-1111111111: 718ec01ffa6a11dea91ea43ea6d18328-1111111111: System error

这个错误的原因看起来是,/etc/hosts 在这个帐户中是不同的。这里 /etc/hosts 内容如下所述,缺少主机名映射:

127.0.0.1 localhost
10.11.11.111

我的问题是为什么来自 aws ecs fargate 上相同 docker 图像的容器 运行 会有不同的 /etc/hosts 以及为什么在以后的情况下主机名没有映射到 ip? 这是否与 2 个帐户之间的 aws 网络有关,如果是,可能是什么以及如何解决?或者这里有什么问题?

您应该检查 DNS options in the VPC 每个都在 运行 中。我猜您可能在第二个 VPC 中禁用了 DNS 支持或 DNS 主机名。