

# 使用负载均衡分配 Amazon ECS 服务流量
使用负载均衡分配服务流量

您可以选择将服务配置为使用弹性负载均衡来为服务中的任务平均分配流量。

**注意**  
当您使用任务集时，该集中的所有任务都必须配置为使用 Elastic Load Balancing 或不使用 Elastic Load Balancing。

托管在 Amazon Fargate 上的 Amazon ECS 服务支持应用程序负载均衡器、网络负载均衡器和网关负载均衡器。请使用下表了解要使用的负载均衡器类型。


| 负载均衡器类型 | 在这些情况下使用 | 
| --- | --- | 
|  应用程序负载均衡器  | 路由 HTTP/HTTPS（或第 7 层）流量。应用程序负载均衡器提供了一些新功能，这使其非常适合用于 Amazon ECS 服务： [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/AmazonECS/latest/developerguide/service-load-balancing.html) | 
| 网络负载均衡器 | 路由 TCP 或 UDP（或第 4 层）流量。 | 
| Gateway Load Balancer | 路由 TCP 或 UDP（或第 4 层）流量。 使用虚拟设备，例如防火墙、入侵检测和防御系统以及深度数据包检测系统等。 | 

我们建议您为您的 Amazon ECS 服务使用应用程序负载均衡器，以便您可以利用这些最新功能，除非您的服务需要仅适用于网络负载均衡器或网关负载均衡器的功能。有关 Elastic Load Balancing 和这些类型的负载均衡器之间区别的更多信息，请参阅 [Elastic Load Balancing 用户指南](https://docs.amazonaws.cn/elasticloadbalancing/latest/userguide/)。

利用负载均衡器，您可以按实际用量付费。有关更多信息，请参阅 [Elastic Load Balancing 定价](https://www.amazonaws.cn/elasticloadbalancing/pricing/)。

# 优化 Amazon ECS 的负载均衡器运行状况检查参数
优化负载均衡器运行状况检查参数

负载均衡器仅将请求路由至负载均衡器的可用区中的正常运行目标。每个目标都会注册到一个目标组。负载均衡器使用目标组的运行状况检查设置来检查每个目标的运行状况。在注册目标后，目标必须通过一次运行状况检查才会被视为正常。Amazon ECS 会监控负载均衡器。负载均衡器定期向 Amazon ECS 容器发送运行状况检查。Amazon ECS 代理会监控并等待负载均衡器报告容器的运行状况。它会在认为容器处于正常运行状态之前执行此操作。

两个 Elastic Load Balancing 运行状况检查参数对部署速度产生影响：
+ 运行状况检查间隔：确定单个容器的运行状况检查之间的大致间隔时间（以秒为单位）。默认情况下，负载均衡器每 30 秒检查一次。

  此参数的名称为：
  + 在 Elastic Load Balancing API 中为 `HealthCheckIntervalSeconds`
  + 在 Amazon EC2 控制台上为**间隔**
+ 运行状况正常阈值计数：确定将不正常容器运行状况视为正常之前需要的连续运行状况检查成功次数。默认情况下，负载均衡器需要五次通过运行状况检查才能报告目标容器运行状况正常。

  此参数的名称为：
  + 在 Elastic Load Balancing API 中为 `HealthyThresholdCount`
  + Amazon EC2 控制台上的**运行状况正常阈值**

**重要提示：**对于新注册的目标，无论健康阈值计数设置如何，都只需要一次成功的运行状况检查即可视为目标正常运行。健康阈值计数仅在目标从不正常状态恢复为正常状态时适用。

在默认设置下，如果目标变得不正常然后又恢复，确定容器运行状况的总时间为 2 分钟 30 秒（`30 seconds * 5 = 150 seconds`）。

如果您的服务在不到 10 秒内启动并稳定下来，则可以加快运行状况检查过程。要加快此进程，请缩短运行状况检查间隔和减少健康阈值计数。
+ `HealthCheckIntervalSeconds`（Elastic Load Balancing API 名称）或**间隔**（Amazon EC2 控制台名称）：5
+ `HealthyThresholdCount`（Elastic Load Balancing API 名称）或**运行状况正常阈值**（Amazon EC2 控制台名称）：2

使用此设置，运行状况检查过程需要 10 秒，而默认时间为 2 分 30 秒。

有关 Elastic Load Balancing 运行状况检查参数的更多信息，请参阅《Elastic Load Balancing 用户指南》** 中的[目标组的运行状况检查](https://docs.amazonaws.cn/elasticloadbalancing/latest/application/target-group-health-checks.html)。

# 优化 Amazon ECS 的负载均衡器连接耗尽参数
优化负载均衡器连接耗尽参数

为了便于优化，客户端会保持与容器服务的活动连接。这样，来自该客户端的后续请求就可以重复使用现有连接。当您想停止流向容器的流量时，可以通知负载均衡器。负载均衡器会定期检查客户端是否关闭了保持活动连接。Amazon ECS 监控负载均衡器，并等待负载均衡器报告保持活动连接已关闭的情况（目标处于 `UNUSED` 状态）。

负载均衡器等待将目标移至 `UNUSED` 状态的时间为取消注册延迟。您可以配置以下负载均衡器参数来加快部署速度。
+ `deregistration_delay.timeout_seconds`：300（默认值）

当您的服务响应时间小于 1 秒时，请将参数设置为以下值，使负载均衡器在中断客户端和后端服务之间的连接之前只等待 5 秒：
+ `deregistration_delay.timeout_seconds`：5 

**注意**  
当您的服务具有长期请求（例如文件上传缓慢或流式传输连接）时，请勿将该值设置为 5 秒。

## SIGTERM 响应能力


Amazon ECS 首先向任务发送停止信号，通知应用程序需要完成并关闭。可以使用 STOPSIGNAL 指令在容器映像中定义此信号，默认为 SIGTERM。然后，Amazon ECS 会发送一条 SIGKILL 消息。当应用程序忽略 SIGTERM 时，Amazon ECS 服务必须等待发送终止该进程的 SIGKILL 信号。

Amazon ECS 等待发送 SIGKILL 消息的时间由以下 Amazon ECS 代理选项确定：
+ `ECS_CONTAINER_STOP_TIMEOUT`：30（默认值）

  有关容器代理参数的更多信息，请参阅 GitHub 上的 [Amazon ECS 容器代理](https://github.com/aws/amazon-ecs-agent/blob/master/README.md)。

要加快等待时间，请将 Amazon ECS 代理参数设置为以下值：
+ `ECS_CONTAINER_STOP_TIMEOUT`：2

  如果您的应用程序花费的时间超过 1 秒，则请将该值乘以 2，然后将该数字用作值。

在本例中，Amazon ECS 会等待 2 秒钟让容器关闭，然后 Amazon ECS 会在应用程序未停止时发送 SIGKILL 消息。

您也可以修改应用程序代码以捕获 SIGTERM 信号，并对其做出反应。以下是 JavaScript 中的示例：

```
process.on('SIGTERM', function() { 
  server.close(); 
})
```

此代码会导致 HTTP 服务器停止侦听任何新请求，完成回答任何正在处理的请求，然后 Node.js 进程因事件循环没有可进行的操作而终止。鉴于此，如果该进程只需 500 毫秒即可完成其正在处理的请求，则它会提前终止，而不必等待停止超时并收到 SIGKILL。

# 使用 Amazon ECS 的应用程序负载均衡器


应用程序负载均衡器在应用程序层（HTTP/HTTPS）作出路由决策，支持基于路径的路由，并且可以将请求路由到您的集群中每个容器实例上的一个或多个端口。应用程序负载均衡器支持动态主机端口映射。例如，如果任务的容器定义指定端口 80 为 NGINX 容器端口，并指定端口 0 为主机端口，则从容器实例的临时端口范围（例如，在最新的经 Amazon ECS 优化的 AMI 上，为 32768 到 61000）中动态选择主机端口。在任务负载均衡器时，NGINX 容器将作为实例 ID 和端口组合注册到应用程序负载均衡器，并且流量将分配到与该容器对应的实例 ID 和端口。此动态映射可让您在同一容器实例上拥有来自单个服务的多个任务。有关更多信息，请参阅[应用程序负载均衡器用户指南](https://docs.amazonaws.cn/elasticloadbalancing/latest/application/)。

有关设置参数以加快部署速度的最佳实践的信息，请参阅：
+ [优化 Amazon ECS 的负载均衡器运行状况检查参数](load-balancer-healthcheck.md)
+ [优化 Amazon ECS 的负载均衡器连接耗尽参数](load-balancer-connection-draining.md)

将应用程序负载均衡器与 Amazon ECS 结合使用时，请考虑以下事项：
+ Amazon ECS 需要与服务相关的 IAM 角色，该角色提供在创建和停止任务时向负载均衡器注册和注销目标所需的权限。有关更多信息，请参阅 [对 Amazon ECS 使用服务相关角色](using-service-linked-roles.md)。
+ 对于仅 IPv6 配置中的服务，必须将应用程序负载均衡器的目标组 IP 地址类型设置为 `dualstack` 或 `dualstack-without-public-ipv4`。
+ 如果服务具有使用 `awsvpc` 网络模式的任务，在为服务创建目标组时，必须选择 `ip` 作为目标类型，而不是`instance`。这是因为使用 `awsvpc` 网络模式的任务与弹性网络接口而不是 Amazon EC2 实例关联。
+ 如果服务需要访问多个负载均衡端口（如某项 HTTP/HTTPS 服务需要端口 80 和端口 443），可以配置两个侦听器。一个侦听器负责将请求转发给服务的 HTTPS，另一个侦听器负责将 HTTP 请求重定向到适当的 HTTPS 端口。有关更多信息，请参阅《应用程序负载均衡器用户指南》**中的[为应用程序负载均衡器创建侦听器](https://docs.amazonaws.cn/elasticloadbalancing/latest/application/create-listener.html)。
+ 您的负载均衡器子网配置必须包含容器实例所在的所有可用区。
+ 创建服务后，无法从 Amazon Web Services 管理控制台 更改负载均衡器配置。您只能使用 Amazon Copilot、Amazon CloudFormation、Amazon CLI 或 SDK 来修改 `ECS` 滚动部署控制器的负载均衡器配置，而不是 Amazon CodeDeploy 蓝/绿或外部控制器。当您添加、更新或删除负载均衡器配置时，Amazon ECS 会使用更新后的 Elastic Load Balancing 配置启动新部署。这将导致任务注册到负载均衡器或从负载均衡器取消注册。我们建议您在更新 Elastic Load Balancing 配置之前在测试环境中对此进行验证。有关如何修改配置的信息，请参阅 *Amazon Elastic Container Service API 参考*中的 [UpdateService](https://docs.amazonaws.cn/AmazonECS/latest/APIReference/API_UpdateService.html)。
+ 如果服务任务未达到负载均衡器运行状况检查标准，则系统会停止并重启该任务。此过程将持续到您的服务达到预期的运行任务的数量。
+ 如果您的支持负载均衡器的服务出现问题，请参阅 [对 Amazon ECS 中的服务负载均衡器进行故障排除](troubleshoot-service-load-balancers.md)。
+ 使用 `instance` 目标类型时，任务和负载均衡器必须位于同一 VPC 中。使用 `ip` 目标类型时，支持跨 VPC 连接。
+ 为每项服务使用唯一的目标组。

  为多个服务使用同一个目标组可能会导致服务部署期间出现问题。
+ 您必须指定与应用程序负载均衡器关联的目标组。

有关如何创建应用程序负载均衡器的信息，请参阅*应用程序负载均衡器*中的[创建应用程序负载均衡器](https://docs.amazonaws.cn/elasticloadbalancing/latest/application/create-application-load-balancer.html)

# 对 Amazon ECS 使用网络负载均衡器


网络负载均衡器在传输层（TCP/SSL）制定路由决策。它每秒可以处理数百万个请求。在负载均衡器收到连接后，它会使用流式哈希路由算法从目标组中选择一个目标作为默认规则。它尝试在侦听器配置中指定的端口上打开一个到该选定目标的 TCP 连接。它将不修改标头的情况下转发请求。网络负载均衡器支持动态主机端口映射。例如，如果任务的容器定义指定端口 80 为 NGINX 容器端口，并指定端口 0 为主机端口，则从容器实例的临时端口范围（例如，在最新的经 Amazon ECS 优化的 AMI 上，为 32768 到 61000）中动态选择主机端口。在启动任务时，NGINX 容器将作为实例 ID 和端口组合注册到网络负载均衡器，并且流量将分配到与该容器对应的实例 ID 和端口。此动态映射可让您在同一容器实例上拥有来自单个服务的多个任务。有关网络负载均衡器的更多信息，请参阅[网络负载均衡器用户指南](https://docs.amazonaws.cn/elasticloadbalancing/latest/network/)。

有关设置参数以加快部署速度的最佳实践的信息，请参阅：
+ [优化 Amazon ECS 的负载均衡器运行状况检查参数](load-balancer-healthcheck.md)
+ [优化 Amazon ECS 的负载均衡器连接耗尽参数](load-balancer-connection-draining.md)

将网络负载均衡器与 Amazon ECS 结合使用时，请考虑以下事项：
+ Amazon ECS 需要与服务相关的 IAM 角色，该角色提供在创建和停止任务时向负载均衡器注册和注销目标所需的权限。有关更多信息，请参阅 [对 Amazon ECS 使用服务相关角色](using-service-linked-roles.md)。
+ 附加到一项服务的目标组不能超过五个。
+ 对于仅 IPv6 配置中的服务，必须将网络负载均衡器的目标组 IP 地址类型设置为 `dualstack`。
+ 如果服务具有使用 `awsvpc` 网络模式的任务，在为服务创建目标组时，必须选择 `ip` 作为目标类型，而不是`instance`。这是因为使用 `awsvpc` 网络模式的任务与弹性网络接口而不是 Amazon EC2 实例关联。
+ 您的负载均衡器子网配置必须包含容器实例所在的所有可用区。
+ 创建服务后，无法从 Amazon Web Services 管理控制台 更改负载均衡器配置。您只能使用 Amazon Copilot、Amazon CloudFormation、Amazon CLI 或 SDK 来修改 `ECS` 滚动部署控制器的负载均衡器配置，而不是 Amazon CodeDeploy 蓝/绿或外部控制器。当您添加、更新或删除负载均衡器配置时，Amazon ECS 会使用更新后的 Elastic Load Balancing 配置启动新部署。这将导致任务注册到负载均衡器或从负载均衡器取消注册。我们建议您在更新 Elastic Load Balancing 配置之前在测试环境中对此进行验证。有关如何修改配置的信息，请参阅 *Amazon Elastic Container Service API 参考*中的 [UpdateService](https://docs.amazonaws.cn/AmazonECS/latest/APIReference/API_UpdateService.html)。
+ 如果服务任务未达到负载均衡器运行状况检查标准，则系统会停止并重启该任务。此过程将持续到您的服务达到预期的运行任务的数量。
+ 当使用将 IP 地址配置为目标且禁用的客户端 IP 保留的网络负载均衡器时，请求将被视为来自网关负载均衡器的私有 IP 地址。这意味着，只要您允许目标安全组中的传入请求和运行状况检查，网关负载均衡器后面的服务就会有效地向世界开放。
+ 对于 Fargate 任务，您必须使用平台版本 `1.4.0`（Linux）或 `1.0.0`（Windows）。
+ 如果您的支持负载均衡器的服务出现问题，请参阅 [对 Amazon ECS 中的服务负载均衡器进行故障排除](troubleshoot-service-load-balancers.md)。
+ 使用 `instance` 目标类型时，任务和负载均衡器必须位于同一 VPC 中。使用 `ip` 目标类型时，支持跨 VPC 连接。
+ 网络负载均衡器客户端 IP 地址保留与 Fargate 目标兼容。
+ 为每项服务使用唯一的目标组。

  为多个服务使用同一个目标组可能会导致服务部署期间出现问题。
+ 您必须指定与网络负载均衡器关联的目标组。

有关如何创建网络负载均衡器的信息，请参阅*网络负载均衡器*中的[创建网络负载均衡器](https://docs.amazonaws.cn/elasticloadbalancing/latest/network/create-network-load-balancer.html)

**重要**  
如果服务的任务定义使用 `awsvpc` 网络模式（为 Fargate 所需），则必须选择 `ip` 而不是 `instance` 作为目标类型。这是因为使用 `awsvpc` 网络模式的任务与弹性网络接口而不是 Amazon EC2 实例关联。  
如果实例具有以下实例类型，则不能用实例 ID 注册实例：C1、CC1、CC2、CG1、CG2、CR1、G1、G2、HI1、HS1、M1、M2、M3 和 T1。可以用 IP 地址注册这些类型的实例。

# 对 Amazon ECS 使用网关负载均衡器


网关负载均衡器在 Open Systems Interconnection（OSI）模型的第四层运行，网络层。它侦听所有端口上的所有 IP 数据包，并将流量转发到侦听器规则中指定的目标组。使用 5 元组（对于 TCP/UDP 流）或 3 元组（对于非 TCP/UDP 流）来保持流向特定目标设备的粘性。例如，如果任务的容器定义指定端口 80 为 NGINX 容器端口，并指定端口 0 为主机端口，则从容器实例的临时端口范围（例如，在最新的经 Amazon ECS 优化的 AMI 上，为 32768 到 61000）中动态选择主机端口。在启动任务时，NGINX 容器将作为实例 ID 和端口组合注册到网关负载均衡器，并且流量将分配到与该容器对应的实例 ID 和端口。此动态映射可让您在同一容器实例上拥有来自单个服务的多个任务。有关更多信息，请参阅*网关负载均衡器*中的[什么是网关负载均衡器](https://docs.amazonaws.cn/elasticloadbalancing/latest/gateway/introduction.html)。

有关设置参数以加快部署速度的最佳实践的信息，请参阅：
+ [优化 Amazon ECS 的负载均衡器运行状况检查参数](load-balancer-healthcheck.md)
+ [优化 Amazon ECS 的负载均衡器连接耗尽参数](load-balancer-connection-draining.md)

将网关负载均衡器与 Amazon ECS 结合使用时，请考虑以下事项：
+ Amazon ECS 需要与服务相关的 IAM 角色，该角色提供在创建和停止任务时向负载均衡器注册和注销目标所需的权限。有关更多信息，请参阅 [对 Amazon ECS 使用服务相关角色](using-service-linked-roles.md)。
+ 对于仅 IPv6 配置中的服务，必须将网关负载均衡器的目标组 IP 地址类型设置为 `dualstack`。
+ 如果服务的任务使用非 `awsvpc` 网络模式，则不支持网关负载均衡器。
+ 您的负载均衡器子网配置必须包含容器实例所在的所有可用区。
+ 创建服务后，无法从 Amazon Web Services 管理控制台 更改负载均衡器配置。您只能使用 Amazon Copilot、Amazon CloudFormation、Amazon CLI 或 SDK 来修改 `ECS` 滚动部署控制器的负载均衡器配置，而不是 Amazon CodeDeploy 蓝/绿或外部控制器。当您添加、更新或删除负载均衡器配置时，Amazon ECS 会使用更新后的 Elastic Load Balancing 配置启动新部署。这将导致任务注册到负载均衡器或从负载均衡器取消注册。我们建议您在更新 Elastic Load Balancing 配置之前在测试环境中对此进行验证。有关如何修改配置的信息，请参阅 *Amazon Elastic Container Service API 参考*中的 [UpdateService](https://docs.amazonaws.cn/AmazonECS/latest/APIReference/API_UpdateService.html)。
+ 如果服务任务未达到负载均衡器运行状况检查标准，则系统会停止并重启该任务。此过程将持续到您的服务达到预期的运行任务的数量。
+ 当使用将 IP 地址配置为目标的网关负载均衡器时，请求将被视为来自网关负载均衡器的私有 IP 地址。这意味着，只要您允许目标安全组中的传入请求和运行状况检查，网关负载均衡器后面的服务就会有效地向世界开放。
+ 对于 Fargate 任务，您必须使用平台版本 `1.4.0`（Linux）或 `1.0.0`（Windows）。
+ 如果您的支持负载均衡器的服务出现问题，请参阅 [对 Amazon ECS 中的服务负载均衡器进行故障排除](troubleshoot-service-load-balancers.md)。
+ 使用 `instance` 目标类型时，任务和负载均衡器必须位于同一 VPC 中。使用 `ip` 目标类型时，支持跨 VPC 连接。
+ 为每项服务使用唯一的目标组。

  为多个服务使用同一个目标组可能会导致服务部署期间出现问题。
+ 您必须指定与网关负载均衡器关联的目标组。

有关如何创建网关负载均衡器的信息，请参阅《网关负载均衡器》**中的[网关负载均衡器入门](https://docs.amazonaws.cn/elasticloadbalancing/latest/gateway/getting-started.html)

**重要**  
如果服务的任务定义使用 `awsvpc` 网络模式（为 Fargate 所需），则必须选择 `ip` 而不是 `instance` 作为目标类型。这是因为使用 `awsvpc` 网络模式的任务与弹性网络接口而不是 Amazon EC2 实例关联。  
如果实例具有以下实例类型，则不能用实例 ID 注册实例：C1、CC1、CC2、CG1、CG2、CR1、G1、G2、HI1、HS1、M1、M2、M3 和 T1。可以用 IP 地址注册这些类型的实例。

# 将多个目标组注册到 Amazon ECS 服务
向服务注册多个目标组

当您在服务定义中指定多个目标组时，Amazon ECS 服务可以为来自多个负载均衡器的流量提供服务并公开多个负载平衡端口。

要创建一个指定多个目标组的服务，您必须使用 Amazon ECS API、开发工具包、Amazon CLI 或 Amazon CloudFormation 模板创建该服务。在创建服务后，您可以使用 Amazon Web Services 管理控制台查看服务以及注册到服务的目标组。您必须使用 `[UpdateService](https://docs.amazonaws.cn/AmazonECS/latest/APIReference/API_UpdateService.html)` 修改现有服务的负载均衡器配置。

可以使用以下格式在服务定义中指定多个目标组。有关服务定义的完整语法，请参阅[服务定义模板](sd-template.md)。

```
"loadBalancers":[
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"container_name",
      "containerPort":container_port
   },
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"container_name",
      "containerPort":container_port
   }
]
```

## 注意事项


在服务定义中指定多个目标组时，应注意以下事项：
+ 对于使用应用程序负载均衡器或网络负载均衡器的服务，附加到一个服务的目标组不能超过五个。
+ 仅在以下条件下，才支持在服务定义中指定多个目标组：
  + 服务必须使用应用程序负载均衡器或网络负载均衡器。
  + 该服务必须使用（`ECS`）部署控制器类型。这可以是 Amazon ECS 本机/蓝绿部署，也可以是滚动更新部署。
+ 包含使用 Fargate 和 EC2 启动类型的任务的服务支持多个目标组。
+ 当您创建一个指定多个目标组的服务时，必须创建 Amazon ECS 服务相关角色。通过省略 API 请求中的 `role` 参数或 Amazon CloudFormation 中的 `Role` 属性来创建角色。有关更多信息，请参阅 [对 Amazon ECS 使用服务相关角色](using-service-linked-roles.md)。

## 示例服务定义


下面是一些在服务定义中指定多个目标组的示例使用案例。有关服务定义的完整语法，请参阅[服务定义模板](sd-template.md)。

### 为内部和外部流量使用独立的负载均衡器


在以下使用案例中，服务对相同的容器和端口使用两个独立的负载均衡器，一个用于内部流量，另一个用于面向互联网的流量。

```
"loadBalancers":[
   //Internal ELB
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"nginx",
      "containerPort":8080
   },
   //Internet-facing ELB
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"nginx",
      "containerPort":8080
   }
]
```

### 从同一容器公开多个端口


在以下使用案例中，服务使用一个负载均衡器，但从同一容器公开多个端口。例如，Jenkins 容器可能会为 Jenkins Web 接口公开端口 8080，为 API 公开端口 50000。

```
"loadBalancers":[
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"jenkins",
      "containerPort":8080
   },
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"jenkins",
      "containerPort":50000
   }
]
```

### 从多个容器公开端口


在以下使用案例中，服务使用一个负载均衡器和两个目标组从单独的容器公开端口。

```
"loadBalancers":[
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"webserver",
      "containerPort":80
   },
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"database",
      "containerPort":3306
   }
]
```