amazon-web-services - 如何手动将 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 管理方面具有类似的目标,但我找不到任何关于我的场景的文档。
解决方案
事实证明,AWS Service Discovery 使用 Cloud Map API 来完成其服务。它通过添加条目来在托管区域中注册容器,SRV
条目指的是A
条目和特定端口。这意味着,您的客户需要了解这些条目,因为他们在执行 dns 查找时SRV
不会立即获得条目。A
例如,Curl不理解SRV
条目。
因此,我重新使用 ECS 和自动负载均衡器注册。然后,ECS 将在先前映射到负载均衡器侦听器中的目标组中注册新服务。然后,通过添加一些指向负载均衡器的别名条目,DNS 条目完全独立地进行管理,而其他db.staging.example.com
条目则为 RDS 数据库端点提供别名。
由于您可以让 ECS 服务在多个目标组中注册自己,因此您还可以使用多个负载均衡器,例如,一个用于公共访问,一个只能在您的 VPC 内访问。
推荐阅读
- spinnaker - Spinnaker 未显示自动触发的执行
- javascript - 如何在 html 和 javascript 中同时切换文本和颜色?
- ios - 如何在从分段控制器和文本字段中获取功能时运行
- java - 顶级 build.gradle 已损坏
- c# - 检查多个异步 Web 服务调用的结果
- java - JavaFx MediaPlayer behaves differently in unit test vs application, why?
- javascript - Same result on logging the state after render
- debugging - 如何使用 pyelftools/libdwarf 找到一行代码
- java - 从不同的包(Java)导入嵌套在另一个类中的枚举
- reactjs - How to merge the previous state with the new state in redux?