AWS Cloud Map のアイコン

AWS Cloud Map 专业2018年〜

为应用程序资源提供服务发现功能的服务

它能做什么

AWS Cloud Map 是一项服务发现服务,可以集中管理构成应用程序的服务和资源的位置(IP 地址、URL 等),并通过名称进行查找。在微服务架构中,使各服务能够动态发现彼此的连接目标。支持基于 DNS 和基于 API 两种发现方式。

使用场景

用于微服务架构中动态解析服务间通信目标的场景。例如,当 ECSEKS 上的容器增减时,自动更新连接信息,使其他服务始终能获取正确的连接目标。还可以作为包含 Lambda 函数和数据库等非容器资源在内的统一服务注册表使用。

日常类比

可以将其比作公司内部的电话簿。在大公司中,员工会调动,新部门会成立。Cloud Map 就是一本始终保持最新状态的电话簿,搜索“销售部的田中”就能立即知道当前的分机号码(IP 地址)。即使员工换了座位,电话簿也会自动更新,不用担心拨打旧号码。

什么是 Cloud Map

AWS Cloud Map 是一项通过名称管理和查找云上应用程序资源的服务发现服务。在微服务中,众多小型服务相互通信,但各服务的连接目标(IP 地址和端口号)会随着扩缩容和部署而变化。Cloud Map 集中管理这些连接信息,只需通过服务名称查询即可返回最新的连接目标。

基于 DNS 和基于 API 的发现

Cloud Map 提供两种发现方式。基于 DNS 的发现将服务名称注册为 DNS 名称,通过标准 DNS 查询解析连接目标。优点是无需修改现有应用程序即可引入。基于 API 的发现使用 AWS SDK 获取连接目标。不仅可以获取 IP 地址,还可以获取端口号和自定义属性(版本信息等),实现更灵活的路由。

与 ECS 和 EKS 的集成

Cloud Map 与 Amazon ECSAmazon EKS 集成,在容器部署时自动注册和注销服务实例。例如,当 ECS 服务的任务数从 3 扩展到 5 时,新增的 2 个任务的 IP 地址会自动注册到 Cloud Map。任务停止时会自动注销,无需手动维护。 要深入了解与 ECS 和 EKS 集成的实践知识,可以参考相关书籍(Amazon)

开始使用

要开始使用 Cloud Map,首先创建命名空间(Namespace)。命名空间可以选择基于 DNS 或基于 API。然后在命名空间内创建服务,注册服务实例(实际资源的连接信息)。如果使用 ECS,只需在服务定义中启用 Cloud Map 集成,任务的注册和注销就会自动化。

注意事项

  • 基于 DNS 的发现依赖于 DNS 缓存的 TTL,连接目标的变更可能不会立即生效。如需实时性,请考虑使用基于 API 的方式
  • 启用 Cloud Map 的健康检查功能后,可以自动将异常实例从发现结果中排除
  • 命名空间的类型(DNS 公共、DNS 私有、仅 API)创建后无法更改,请提前选择适合用途的类型
共有するXB!