首页 > 解决方案 > 如何手动将 dns 条目添加到 AWS ECS 服务发现管理的托管区域?

问题描述

我正在为 AWS ECS 中的容器使用服务发现,用于私有托管区域staging.example.com.

现在,在容器旁边,我想将 AWS RDS 数据库映射到db.staging.example.com. 但是,我无法修改 Route53 托管区域,因为 AWS 拒绝我访问,因为该区域由服务发现管理

AccessDenied: The resource hostedzone/*** can only be managed through servicediscovery.amazonaws.com (***)

非常感谢有关如何完成自定义子域的任何建议。还有 Cloud Map 和 App Mesh 作为 AWS 服务,它们在 dns 管理方面具有类似的目标,但我找不到任何关于我的场景的文档。

标签: amazon-web-services

解决方案


事实证明,AWS Service Discovery 使用 Cloud Map API 来完成其服务。它通过添加条目来在托管区域中注册容器,SRV条目指的是A条目和特定端口。这意味着,您的客户需要了解这些条目,因为他们在执行 dns 查找时SRV不会立即获得条目。A例如,Curl不理解SRV条目

因此,我重新使用 ECS 和自动负载均衡器注册。然后,ECS 将在先前映射到负载均衡器侦听器中的目标组中注册新服务。然后,通过添加一些指向负载均衡器的别名条目,DNS 条目完全独立地进行管理,而其他db.staging.example.com条目则为 RDS 数据库端点提供别名。

由于您可以让 ECS 服务在多个目标组中注册自己,因此您还可以使用多个负载均衡器,例如,一个用于公共访问,一个只能在您的 VPC 内访问。


推荐阅读