Amazon ECS Service Connect 配置概述
使用 Service Connect 时,需要在资源中配置一些参数。
需要为 Service Connect 配置的 Amazon ECS 资源 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数位置 | 应用程序类型 | 描述 | 必填 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
任务定义 | 客户端 | 在客户端任务定义中,Service Connect 没有可用的更改。 | 不适用 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
任务定义 | 客户端-服务器 | 服务器必须向容器的 portMappings 中的端口添加 name 字段。有关更多信息,请参阅 portMappings |
是 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
任务定义 | 客户端-服务器 | 服务器可以选择提供应用程序协议(例如,HTTP)来接收其服务器应用程序的协议特定的指标(例如,HTTP 5xx )。 |
否 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
服务定义 | 客户端 | 客户端服务必须添加 serviceConnectConfiguration 才能配置要加入的命名空间。此命名空间必须包含该服务需要发现的所有服务器服务。有关更多信息,请参阅 serviceConnectConfiguration。 |
是 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
服务定义 | 客户端-服务器 | 服务器服务必须添加 serviceConnectConfiguration 才能配置提供该服务的 DNS 名称、端口号和命名空间。有关更多信息,请参阅 serviceConnectConfiguration。 |
是 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
集群 | 客户端 | 集群可以添加默认的 Service Connect 命名空间。在服务中配置 Service Connect 后,集群中的新服务会继承命名空间。 | 否 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
集群 | 客户端-服务器 | 在适用于服务器服务的集群中,Service Connect 没有可用的更改。服务器任务定义和服务必须设置相应的配置。 | 不适用 |
配置 Service Connect 的步骤概述
以下步骤概述了如何配置 Service Connect。
重要
-
Service Connect 在您的账户中创建 AWS Cloud Map 服务。通过手动注册/取消注册实例、更改实例属性或删除服务来修改这些 AWS Cloud Map 资源可能会导致应用程序流量或后续部署出现意外行为。
-
Service Connect 不支持任务定义中的链接。
-
将端口名称添加到您的任务定义的端口映射中。此外,您可以识别应用程序的第 7 层协议,以获得更多指标。
-
创建带有 AWS Cloud Map 命名空间的集群或单独创建命名空间。对于简单的组织,使用您想要用于命名空间的名称创建一个集群并为命名空间指定相同的名称。在这种情况下,Amazon ECS 使用必要的配置创建了一个新的 HTTP 命名空间。Service Connect 不在 Amazon Route 53 中使用或创建 DNS 托管区。
-
配置服务以在命名空间内创建 Service Connect 端点。
-
部署服务以创建端点。Amazon ECS 向每个任务添加一个 Service Connect 代理容器,并在 AWS Cloud Map 中创建 Service Connect 端点。此容器未在任务定义中配置,任务定义无需修改即可重复使用,以便在同一个命名空间或多个命名空间中创建多个服务。
-
将客户端应用程序部署为服务以连接到端点。Amazon ECS 通过每项任务中的 Service Connect 代理将它们连接到 Service Connect 端点。
应用程序仅会使用代理连接到 Service Connect 端点。无需其他配置,即可使用代理。代理执行轮询负载均衡、异常值检测和重试。有关代理的更多信息,请参阅 Service Connect 代理。
-
通过 Amazon CloudWatch 中的 Service Connect 代理监控流量。
集群配置
您可以在创建或更新集群时设置 Service Connect 的默认命名空间。如果您指定的命名空间名称不存在于同一个 AWS 区域 和账户中,则会创建一个新的 HTTP 命名空间。
如果您创建集群并指定默认 Service Connect 命名空间,则在 Amazon ECS 创建命名空间期间,该集群将处于 PROVISIONING
状态等待。您可以在集群的状态中看到一个 attachment
,它显示了命名空间的状态。默认情况下,附件不显示在 AWS CLI 中,您必须添加 --include
ATTACHMENTS
才能查看。
服务配置
Service Connect 旨在要求最低配置。您需要为要在任务定义中与 Service Connect 结合使用的每个端口映射设置一个名称。在服务中,您需要开启 Service Connect 并选择一个命名空间来创建客户端服务。要创建客户端-服务器服务,您需要添加与其中一个端口映射的名称相匹配的单个 Service Connect 服务配置。Amazon ECS 重复使用任务定义中的端口号和端口名来定义 Service Connect 服务和端点。要覆盖这些值,可以在控制台中使用其他参数 Discovery、DNS 和 Port,或者在 Amazon ECS API 中分别使用 discoveryName
和 clientAliases
。