使用 配置 Elastic Load BalancingAWS Toolkit for Eclipse - AWS Elastic Beanstalk

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

使用 配置 Elastic Load BalancingAWS Toolkit for Eclipse

Elastic Load Balancing 是一种 Amazon Web 服务,可帮助您提高应用程序的可用性和可扩展性。Elastic Load Balancing 可让您在两个或更多的 Amazon EC2 实例之间分配应用程序负载。Elastic Load Balancing 通过冗余提高可用性,并支持应用程序的流量增长。

Elastic Load Balancing 可让您自动在运行的所有 EC2 服务器实例之间分配和平衡传入的应用程序流量。在您需要增加应用程序容量时,该服务还可让您轻松地添加新的实例。

Elastic Beanstalk 会在您部署应用程序时自动地预配置 Elastic Load Balancing。在 Toolkit for Eclipse 内的环境 Configuration(配置)选项卡上的 Load Balancing(负载均衡)下,您可以编辑 Elastic Beanstalk 环境的负载均衡配置。

以下部分介绍了可为应用程序配置的 Elastic Load Balancing 参数。

端口

预配置来处理您的 Elastic Beanstalk 应用程序请求的负载均衡器会将请求发送到正在运行您的应用程序的 Amazon EC2 实例。预配置的负载均衡器会侦听 HTTP 和 HTTPS 端口上的请求,并将请求路由到 AWS Elastic Beanstalk 应用程序中的 Amazon EC2 实例。默认情况下,负载均衡器将处理 HTTP 端口上的请求。必须至少打开其中一个端口,要么是 HTTP 要么是 HTTPS。

重要

确保您指定的端口没有锁定;否则,用户将无法连接到 Elastic Beanstalk 应用程序。

控制 HTTP 端口

要关闭 HTTP 端口,请为 HTTP Listener Port(HTTP 侦听器端口)选择 OFF。若要打开 HTTP 端口,请选择一个 HTTP 端口(例如 80)

注意

要使用默认端口 80 (如端口 8080) 以外的端口来访问您的环境,请将侦听器添加到现有负载均衡器并配置新侦听器来侦听该端口。

例如,当使用适用于 Classic Load Balancer 的 AWS CLI 时,键入以下命令可将 LOAD_BALANCER_NAME 替换为您用于 Elastic Beanstalk 的负载均衡器的名称。

aws elb create-load-balancer-listeners --load-balancer-name LOAD_BALANCER_NAME --listeners "Protocol=HTTP, LoadBalancerPort=8080, InstanceProtocol=HTTP, InstancePort=80"

例如,当使用适用于 Application Load Balancer 的 AWS CLI 时,键入以下命令可将 LOAD_BALANCER_ARN 替换为您用于 Elastic Beanstalk 的负载均衡器的 ARN。

aws elbv2 create-listener --load-balancer-arn LOAD_BALANCER_ARN --protocol HTTP --port 8080

如果希望 Elastic Beanstalk 监控您的环境,请勿删除端口 80 上的侦听器。

控制 HTTPS 端口

Elastic Load Balancing 支持 HTTPS/TLS 协议,可为负载均衡器的客户端连接流量加密。从负载均衡器到 EC2 实例的连接是使用纯文本完成的。默认情况下,HTTPS 端口是关闭的。

打开 HTTPS 端口
  1. 使用 AWS Certificate Manager (ACM) 创建新的证书,或者将证书和密钥上传到 AWS Identity and Access Management (IAM)。有关请求 ACM 证书的更多信息,请参阅 AWS Certificate Manager 用户指南中的请求证书。有关将第三方证书导入 ACM 中的更多信息,请参阅 AWS Certificate Manager 用户指南中的导入证书。如果 ACM 在您所在的 AWS 区域不可用,请使用 AWS Identity and Access Management (IAM) 上传第三方证书。ACM 和 IAM 服务存储证书并为 SSL 证书提供 Amazon Resource Name (ARN)。有关创建证书并将证书上传到 IAM 的更多信息,请参阅 IAM 用户指南 中的使用服务器证书

  2. HTTPS Listener Port(HTTPS 侦听器端口)下拉列表中选择一个端口,将其指定为 HTTPS 端口。

  3. SSL Certificate ID(SSL 证书 ID)文本框中,输入 SSL 证书的 Amazon Resource Name (ARN)。例如,arn:aws:iam::123456789012:server-certificate/abc/certs/buildarn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678。使用您在步骤 1 中创建和上传的 SSL 证书。

若要关闭 HTTPS 端口,请为 HTTPS Listener Port (HTTPS 侦听器端口) 选择 OFF (关)

运行状况检查

您可以使用 Load Balancing (负载均衡) 面板的 EC2 Instance Health Check (EC2 实例运行状况检查) 部分来控制运行状况检查的设置。

下表介绍了可为您的应用程序设置的运行状况检查参数。

  • 为了确定实例运行状况,Elastic Beanstalk 会在其查询的 URL 上查找 200 响应代码。默认情况下,Elastic Beanstalk 对非早期容器检查 TCP:80,对早期容器检查 HTTP:80。您可以通过在 Application Health Check URL(应用程序运行状况检查 URL)框中输入 URL(例如 /myapp/index.jsp)以覆盖默认 URL,使之对应于您的应用程序中的现有资源。如果您覆盖默认 URL,Elastic Beanstalk 将使用 HTTP 查询资源。要检查您使用的是否是早期容器类型,请参阅为什么某些平台版本标记为传统版本?

  • 对于 Health Check Interval (seconds)(运行状况检查间隔 (秒)),输入应用程序 Amazon EC2 实例运行状况检查之间的秒数。

  • 对于 Health Check Timeout(运行状况检查超时),指定 Elastic Load Balancing 在将实例视为无响应之前等待响应的秒数。

  • 使用 Healthy Check Count Threshold(良好运行状况检查计数阈值)和 Unhealthy Check Count Threshold(不佳运行状况检查计数阈值)框,指定 Elastic Load Balancing 更改实例的运行状况状态之前连续的成功或失败 URL 探测的次数。例如,在 Unhealthy Check Count Threshold(不佳运行状况检查计数阈值)文本框中填入 5,即表示必须在该 URL 连续返回 5 次错误消息或者超时后,Elastic Load Balancing 才会将运行状况检查确定为“失败”。

会话

默认情况下,负载均衡器会以最小的负载将每个请求独立地传送给该服务器实例。比较起来,粘性 (VPC) 会将用户的会话绑定到具体的服务器实例,以便该用户在会话期间发出的所有请求都会发送到同一个服务器实例中。

在为应用程序启用粘性会话后,Elastic Beanstalk 会使用负载均衡器生成的 HTTP Cookie。负载均衡器会使用负载均衡器生成的特别 Cookie 来跟踪每个请求的应用程序实例。在负载均衡器收到请求时,它首先会检查并查看请求中是否存在这个 Cookie。如果是这样的话,该请求会发送到 Cookie 中指定的应用程序实例。如果负载均衡器找不到 Cookie,它会根据现有的负载均衡算法选择一个应用程序实例。响应中会插入 Cookie,从而将同一用户发出的后续请求绑定到该应用程序实例中。策略配置会定义 Cookie 的到期时间,从而确定每个 Cookie 的有效持续时间。

Load Balancer(负载均衡器)下的 Sessions(会话)部分,指定是否让应用程序的负载均衡器支持会话粘性和每个 Cookie 的持续时间。

有关 Elastic Load Balancing 的更多信息,请转到 Elastic Load Balancing 开发人员指南