互连服务
在 Amazon ECS 任务中运行的应用程序通常需要接收来自互联网的连接或连接到在 Amazon ECS 服务中运行的其他应用程序。如果您需要来自互联网的外部连接,我们建议您使用 Elastic Load Balancing。有关集成负载均衡的更多信息,请参阅 服务负载均衡。
选择互连方法
如果您需要一个应用程序来连接到在 Amazon ECS 服务中运行的其他应用程序,Amazon ECS 会提供三种无需负载均衡器的方法来实现此目的:
-
Amazon ECS Service Connect
Amazon ECS Service Connect 以 Amazon ECS 配置的形式提供服务间通信的管理。它通过在 Amazon ECS 中同时构建服务发现和服务网格来实现此目的。这为您通过服务部署管理的每个 Amazon ECS 服务提供了完整配置、在不依赖于 Amazon VPC DNS 配置的命名空间内引用您的服务的统一方法,以及用于监控 Amazon ECS 上的所有应用程序的标准化指标和日志。Amazon ECS Service Connect 仅互连 Amazon ECS 服务。
您必须配置要与 Amazon ECS Service Connect 结合使用的任何跨 VPC 连接。除跨 VPC 连接外,使用 Service Connect 时,无需额外配置 Amazon VPC 或网络基础设施即可进行服务间通信。Service Connect 为您的应用程序配置每项任务以发现服务。Service Connect 在任务本身中为您的服务配置 DNS 名称,不需要也不在您的托管区中创建 DNS 记录。
有关更多信息,请参阅Service Connect 。
-
Amazon ECS 服务发现
Amazon ECS 服务发现将服务与 AWS Cloud Map 命名空间集成,为 Amazon ECS 服务中的每个任务向命名空间添加条目(特别是 AWS Cloud Map 服务实例)。要进行连接,应用程序会将这些条目解析为 DNS 主机名记录或使用 AWS Cloud Map API 获取任务的 IP 地址。
Amazon ECS 服务发现可用于任何应用程序,包括 UDP 连接。服务发现不会影响连接协议或流量路由。
有关更多信息,请参阅服务发现。
-
AWS App Mesh
AWS App Mesh 是一种服务网格,可用于监控和控制服务。App Mesh 对您的服务通信方式进行了标准化,可以帮助确保高可用性。您可以使用 App Mesh 来监控应用程序和在 Amazon ECS 外部运行的每项服务和应用程序的网络流量。
App Mesh 在新的任务定义修订版中进行配置,不适用于 Amazon ECS 服务。将
proxyConfiguration
字段添加到任务定义中,并在其中添加一个包含代理的容器。您可以为高级功能配置代理容器。App Mesh 具有用于发布控件的高级流量路由,该发布控件不受 Amazon ECS 服务部署方法影响。
有关更多信息,请参阅 Amazon ECS 和 App Mesh 结合使用。
网络模式兼容性表
下表介绍了这些选项与任务网络模式之间的兼容性。在表中,“客户端”是指从 Amazon ECS 任务内部建立连接的应用程序。
互连选项 | 已进行桥接 | awsvpc |
主机 |
---|---|---|---|
服务发现 | 是的,但要求客户端知道 DNS 中没有 hostPort 的 SRV 记录。 |
是 | 是的,但要求客户端知道 DNS 中没有 hostPort 的 SRV 记录。 |
Service Connect | 是 | 是 | 否 |
App Mesh | 否 | 是 | 否 |