使用 Amazon Cloud Map - Amazon Cloud Map
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon Cloud Map

Amazon Cloud Map 是一种托管解决方案,可用于将逻辑名称映射到某个应用程序的资源。它还可以帮助您的应用程序使用其中一个 Amazon SDK、RESTful API 调用或 DNS 查询来发现资源。Amazon Cloud Map仅提供运行状况良好的资源,这可以是 Amazon DynamoDB (DynamoDB) 表、Amazon Simple Queue Service (Amazon SQS) 队列,或者使用 Amazon Elastic Compute Cloud (Amazon EC2) 实例或 Amazon Elastic Container Service (Amazon ECS) 任务构建的任何更高级别的应用程序服务。

Amazon Cloud Map 使用方式概述

以下是如何使用的概述Amazon Cloud Map:

  1. 创建一个作为服务的逻辑分组的命名空间。在创建命名空间时,您可指定希望应用程序用来发现实例的名称。您还可指定希望如何发现注册到 Amazon Cloud Map 的服务实例:使用 API 调用还是使用 DNS 查询。

    有关更多信息,请参阅以下主题:

    如果您创建一个公有或私有 DNS 命名空间,Amazon Cloud Map 会自动创建与该命名空间同名的 Amazon Route 53 公有或私有托管区域。即使拥有公有和私有 DNS 命名空间,您仍可以使用 Amazon Cloud Map DiscoverInstances 请求来发现实例。

    有关您可以向其提交 Amazon Cloud Map API 请求的端点列表,请参阅 Amazon Web Services 一般参考中“Amazon区域和端点”一章的 Amazon Cloud Map

  2. 如果您创建了公共 DNS 命名空间,请执行以下步骤,将域注册的名称服务器更改为 Amazon Cloud Map 在您在创建命名空间时创建的 Route 53 托管区域的名称服务器:

    1. 如果您已注册与公有 DNS 命名空间同名的域,请跳至步骤 2b。

      如果尚未注册与命名空间同名的域,请注册该域。如果要使用 Route 53 进行域名注册,请参阅 Amazon Route 53 开发人员指南中的注册新域名。然后,跳至步骤 3。

    2. 使用在您创建命名空间时返回的 OperationId 来获取命名空间 ID。有关更多信息,请参阅 GetOperation

      注意

      如果要使用编程方法执行这些步骤,您还应在流程的后面使用命名空间 ID 来创建服务。

    3. 使用在步骤 2b 中获取的命名空间 ID 来获取 Amazon Cloud Map 创建的 Route 53 托管区域的 ID。有关更多信息,请参阅Amazon Cloud Map API 参考中的 GetNamespace

    4. 使用在步骤 2c 中获取的托管区域 ID 来获取 Route 53 分配给您的托管区域的名称服务器的名称。有关更多信息,请参阅获取公有托管区域的名称服务器

    5. 更改分配到该域的名称服务器。如果已将域注册到 Route 53,请参阅为域添加或更改名称服务器和粘附记录以了解更多信息。

  3. 创建一个服务,该服务包含标识如何联系应用程序资源(如 Web 服务器、DynamoDB 表或 Amazon S3 存储桶)的服务实例。

    如果您在步骤 1 中创建了一个公有或私有 DNS 命名空间,则为该服务指定的名称将成为 Amazon Cloud Map 在步骤 1 中自动创建的 Route 53 公有或私有托管区域中记录名称的一部分。当您在下一步中注册实例时,Amazon Cloud Map 会在托管区域中创建记录。记录名称是服务名称(如 backend)和命名空间名称(如 example.com)的组合:backend.example.com

    创建服务时,您还可以选择是否要检查服务实例指向的资源的运行状况:

    • 如果您选择不进行运行状况检查,则 Amazon Cloud Map 或 Route 53 将返回服务实例,不管相应资源的运行状况如何。

    • 如果您选择 Route 53 运行状况检查(仅适用于公有 DNS 命名空间),Amazon Cloud Map 将自动创建一个 Route 53 运行状况检查并将其与相应的 Route 53 记录关联。Route 53 仅使用运行状况良好的资源的记录来响应 DNS 查询。

    • 如果您选择自定义运行状况检查,则可使用第三方应用程序来确定资源的运行状况。根据第三方运行状况检查的结果,您将 UpdateInstanceCustomHealthStatus 请求发送到 Amazon Cloud Map 以更新服务实例的状态。

    如果您配置运行状况检查,则 Amazon Cloud Map 或 Route 53 仅返回运行正常的资源的服务实例以响应 DiscoverInstances 请求或 DNS 查询。

    有关更多信息,请参阅以下主题:

  4. 注册一个或多个服务实例。每个服务实例都包含有关您的应用程序如何联系应用程序的一个资源的信息。

    有关更多信息,请参阅以下主题:

  5. 编写应用程序以使用 Amazon Cloud Map DiscoverInstances API 操作或使用 DNS 查询来发现实例:

    • 如果应用程序使用 DiscoverInstances,Amazon Cloud Map 将返回有关符合指定条件的可用实例的信息。

    • 如果您的应用程序使用 DNS 查询,Route 53 将返回一个或多个记录。

    如果您在创建服务时为运行状况检查指定了设置,则 Amazon Cloud Map 或 Route 53 仅为运行正常的实例返回值。

  6. 如果要停止使用某个资源,请取消注册相应的服务实例。Amazon Cloud Map 将自动删除关联的 Route 53 记录和运行状况检查(如果有)。

    有关更多信息,请参阅以下主题:

  7. 如果您不再需要服务和命名空间,则可将其删除。请注意以下几点:

    • 必须先取消注册已使用服务注册的所有实例,然后才能删除服务。

    • 必须先删除已在命名空间中创建的所有服务,然后才能删除命名空间。

    有关更多信息,请参阅以下主题: