使用 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.conf
有 search my.hosted.zone
我有一个包含 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.conf
有 search my.hosted.zone