AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用 AWS Toolkit for Visual Studio 配置 Elastic Load Balancing

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

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

Elastic Beanstalk 会在您部署应用程序时自动地预配置 Elastic Load Balancing。您可以使用 AWS Toolkit for Visual Studio 的应用程序环境选项卡内的 Load Balancer (负载均衡器) 选项卡来编辑 Elastic Beanstalk 环境的 Amazon EC2 实例配置。


        Elastic Beanstalk Elastic Load Balancing 配置面板

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

端口

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


          Elastic Beanstalk Elastic Load Balancing 配置 - 端口

重要

确保您指定的端口没有锁定;否则,用户将无法连接到 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 Identity and Access Management (IAM) 上传第三方证书。ACM 和 IAM 服务将存储该证书,并为 SSL 证书提供 Amazon 资源名称 (ARN)。有关创建证书并将证书上传到 IAM 的更多信息,请参阅 IAM 用户指南 中的使用服务器证书

  2. 通过为 HTTPS Listener Port (HTTP 侦听器端口) 选择端口来指定 HTTPS 端口。

    
                Elastic Beanstalk Elastic Load Balancing 配置 - SSL
  3. 对于 SSL Certificate ID (SSL 证书 ID),输入 SSL 证书的 Amazon 资源名称 (ARN)。例如,arn:aws-cn:iam::123456789012:server-certificate/abc/certs/buildarn:aws-cn:acm:us-west-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678。使用您在步骤 1 中创建或上传的 SSL 证书。

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

运行状况检查

运行状况检查定义包括一个要用来查询实例运行状况的 URL。默认情况下,Elastic Beanstalk 对非早期容器使用 TCP:80,对早期容器使用 HTTP:80。您可以通过在 Application Health Check URL (应用程序运行状况检查 URL) 框中输入 URL(例如 /myapp/default.aspx)来覆盖默认 URL,使之对应于您的应用程序中的现有资源。如果您覆盖默认的 URL,则 Elastic Beanstalk 会使用 HTTP 来查询该资源。要检查您使用的是否是早期容器类型,请参阅“为什么一些容器类型会被标记为早期容器?”。

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


          Elastic Beanstalk Elastic Load Balancing 配置 - 运行状况检查

运行状况检查定义包括一个要用来查询实例运行状况的 URL。通过在 Application Health Check URL (应用程序运行状况检查 URL) 框中输入 URL(例如 /myapp/index.jsp)来覆盖默认 URL,使之对应于您的应用程序中的现有资源。

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

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

  • 对于 Health Check Timeout (seconds) (运行状况检查超时(秒)),指定 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 (会话) 部分指定是否让应用程序的负载均衡器支持会话粘性。


          Elastic Beanstalk Elastic Load Balancing 配置 - 会话

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

本页内容: