使用 AWS Fargate 解析同一 VPC 中的主机

Resolving hosts in the same VPC using AWS Fargate

我有一个包含 N 个实例的 VPC。 VPC在Route53中有一个hosted zone,每个instance上面都有一条记录,这样它们就可以通过名字相互通信。例如:

$ nslookup etcd
Server:     127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
Name:   my.hosted.zone
Address: 10.0.0.16

其中一些实例用于 Docker 个容器,我想摆脱它们,运行 这些容器在 ECS+Fargate 上。

我面临的问题是,当 运行在 Fargate 上连接容器(使用相同的 VPC)时,它们无法解析名称。但是,如果我使用 IP 而不是名称,一切正常,所以这不是安全组的问题,而是 DNS 的问题。名称解析在没有 Fargate 的情况下工作,因此也不是 VPC 中配置错误的问题(无论如何,DNS 主机名和解析都已启用)。

可能是什么问题?

没关系,我找到了答案。

确实,使用同一个VPC是有名称解析的。我的问题是我习惯于通过主机名来引用主机,例如 etcd,但实际记录是 etcd.my.hosted.zone.

使用实例,解析仅适用于主机名,因为 /etc/resolv.confsearch my.hosted.zone