Elastic Load Balancing
传统负载均衡器
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

创建带有 HTTPS 侦听器的传统负载均衡器

负载均衡器从客户端获取请求,并在注册到负载均衡器的 EC2 实例之间分发这些请求。

您可以创建一个同时侦听 HTTP (80) 和 HTTPS (443) 端口的负载均衡器。如果指定 HTTPS 侦听器将请求发送到端口 80 上的实例,则负载均衡器将终止请求,并且不加密从负载均衡器到实例的通信。如果 HTTPS 侦听器将请求发送到端口 443 上的实例,则对从负载均衡器到实例的通信进行加密。

如果负载均衡器使用加密连接与实例通信,您可以选择启用实例身份验证。这可确保只有在实例的公钥与您出于通信目的为负载均衡器指定的密钥匹配时,负载均衡器才与实例通信。

有关如何向现有负载均衡器添加 HTTPS 侦听器的信息,请参阅为您的传统负载均衡器配置 HTTPS 侦听器

先决条件

在您开始之前,请确保您已符合以下先决条件:

  • 完成 准备您的 VPC 和 EC2 实例 中的步骤。

  • 启动您计划向负载均衡器注册的 EC2 实例。这些实例的安全组必须允许来自负载均衡器的流量。

  • EC2 实例必须使用 HTTP 状态代码 200 响应运行状况检查的目标。有关更多信息,请参阅 为您的传统负载均衡器配置运行状况检查

  • 如果您计划在 EC2 实例上启用保持活动状态功能,我们建议将保持活动状态设置至少设置为负载均衡器的空闲超时设置。如果要确保由负载均衡器负责关闭与实例的连接,请确保在实例上设置的保持活动时间值要大于在负载均衡器上设置的空闲超时设置。有关更多信息,请参阅 配置传统负载均衡器的空闲连接超时

  • 如果您创建安全侦听器,必须在负载均衡器上部署 SSL 服务器证书。负载均衡器会在将请求发送到实例之前,使用证书终止并解密请求。如果您没有 SSL 证书,您可以创建一个。有关更多信息,请参阅 Classic Load Balancer 的 SSL/TLS 证书

使用控制台创建 HTTPS/SSL 负载均衡器

要创建 HTTPS/SSL 负载均衡器,请完成以下任务。

步骤 1:定义您的负载均衡器

首先,为负载均衡器提供一些基本配置信息,如名称、网络及一个或多个侦听器。

侦听器是用于检查连接请求的进程。使用前端 (客户端到负载均衡器) 连接的协议和端口与后端 (负载均衡器到实例) 连接的协议和端口配置侦听器。有关 Elastic Load Balancing 支持的端口、协议和侦听器配置的信息,请参阅传统负载均衡器的侦听器

在此示例中,您为负载均衡器配置了两个侦听器。第一个侦听器接收端口 80 上的 HTTP 请求,并使用 HTTP 在端口 80 上向实例发送这些请求。第二个侦听器接受端口 443 上的 HTTPS 请求,并使用端口 80 上的 HTTP (如果您希望配置后端实例身份验证,请使用端口 443 上的 HTTPS) 向实例发送这些请求。

定义您的负载均衡器

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择 Create Load Balancer

  4. 对于 Select load balancer type,选择 传统负载均衡器

  5. 对于 Load Balancer name,键入负载均衡器的名称。

    在当前区域的传统负载均衡器集内,传统负载均衡器的名称必须唯一,最多可以有 32 个字符,只能包含字母数字字符和连字符,不能以连字符开头或结尾。

  6. 对于 Create LB inside,选择您为实例所选的相同网络:EC2-Classic 或特定 VPC。

  7. [默认 VPC] 如果选择了默认 VPC,并希望选择负载均衡器的子网,请选择 Enable advanced VPC configuration

  8. 对于 Listener Configuration,保留默认侦听器,然后选择 Add 添加另一个侦听器。对于新侦听器的 Load Balancer Protocol,选择 HTTPS (Secure HTTP)。此操作会更新 Load Balancer PortInstance ProtocolInstance Port

    默认情况下,Instance Protocol 为 HTTP;而 Instance Port 为 80。

     使用 HTTPS 侦听器定义负载均衡器

    如果要设置后端实例身份验证 (在后面的步骤 3:配置安全设置中),请将实例协议更改为 HTTPS (Security HTTP)。这也会更新 Instance Port

     使用 HTTPS 侦听器为负载均衡器定义后端实例身份验证
  9. [EC2-VPC] 对于 Available subnets,请使用其添加图标至少选择一个可用子网。子网将移至 Selected subnets 下。要提高负载均衡器的可用性,请从多个可用区中选择子网。

    注意

    如果您选择 EC2-Classic 作为您的网络,或者您拥有默认 VPC 但没有选择 Enable advanced VPC configuration,您将看不到用来选择子网的用户界面。

    每个可用区最多可以添加一个子网。如果从选定子网的可用区选择第二个子网,则此子网将替换该可用区的当前选定子网。

    选择子网
  10. 选择 Next: Assign Security Groups

步骤 2:在 VPC 中将安全组分配给负载均衡器

如果选择了 VPC 作为您的网络,则必须为您的负载均衡器分配一个安全组,该安全组允许入站流量进入为负载均衡器指定的端口以及针对负载均衡器的运行状况检查。

注意

如果选择了 EC2-Classic 作为您的网络,则可继续下一步。默认情况下,Elastic Load Balancing 在 EC2-Classic 中为负载均衡器提供安全组。

为您的负载均衡器分配安全组

  1. Assign Security Groups 页面上,选择 Create a new security group

  2. 为您的安全组键入名称和描述,或保留默认名称和描述。此新安全组包含一个规则,该规则允许流量进入已对负载均衡器配置以使用的端口。

    选择安全组
  3. 选择 Next: Configure Security Settings

步骤 3:配置安全设置

当您对前端侦听器使用 HTTPS 或 SSL 时,必须在负载均衡器上部署 SSL 证书。负载均衡器先使用此证书终止连接,解密来自客户端的请求,然后再将请求发送到实例。

您还必须指定安全策略。Elastic Load Balancing 提供了已预定义 SSL 协商配置的安全策略,您也可以创建自己的自定义安全策略。

如果您在后端连接中配置 HTTPS/SSL,可选择启用实例身份验证。

配置安全设置

  1. 对于 Select Certificate,执行下列操作之一:

    • 如果使用 AWS Certificate Manager 创建或导入了证书,请选择 Choose an existing certificate from AWS Certificate Manager (ACM),然后从 Certificate 中选择证书。

    • 如果使用 IAM 导入了证书,请选择 Choose an existing certificate from AWS Identity and Access Management (IAM),然后从 Certificate 中选择证书。

    • 如果要导入证书,但 ACM 在您所在区域不可用,请选择 Upload a new SSL Certificate to AWS Identity and Access Management (IAM)。输入证书的名称。在 Private Key 中,复制并粘贴私钥文件 (PEM 编码的文件) 的内容。在 Public Key Certificate 中,复制并粘贴公钥证书文件 (PEM 编码的文件) 的内容。在 Certificate Chain 中,复制并粘贴证书链文件 (PEM 编码的文件) 的内容,除非您使用的是自签名证书并且浏览器是否隐式接受证书并不重要。

  2. 对于 Select a Cipher,验证 Predefined Security Policy 是否已选中且设置为 ELBSecurityPolicy-2016-08。建议您始终使用最新的预定义安全策略。如果您需要使用其他预定义安全策略或创建自定义策略,请参阅更新 SSL 协商配置

  3. (可选) 如果您将 HTTPS 侦听器配置为使用加密连接与实例通信,则可以选择设置实例身份验证。

    1. 对于 Backend Certificate,选择 Enable backend authentication

      注意

      如果未看到 Backend Certificate 部分,请返回 Listener Configuration,然后为 Instance Protocol 选择 HTTPS (Security HTTP)

    2. 对于 Certificate name,键入公钥证书的名称。

    3. 对于 Certificate Body (pem encoded),复制并粘贴该证书的内容。只有在实例的公钥与此密钥匹配时,负载均衡器才会与该实例通信。

    4. 要添加另一个证书,请选择 Add another backend certificate

     启用后端身份验证
  4. 选择 Next: Configure Health Check

步骤 4:配置运行状况检查

Elastic Load Balancing 将为您的负载均衡器自动检查已注册 EC2 实例的运行状况。如果 Elastic Load Balancing 发现运行不正常的实例,它会停止向该实例发送流量,并将流量重新路由至运行正常的实例。有关配置运行状况检查的更多信息,请参阅为您的传统负载均衡器配置运行状况检查

为您的实例配置运行状况检查

  1. Configure Health Check 页面上,选择 Ping 协议和 Ping 端口。您的 EC2 实例必须接受指定 Ping 端口上的指定流量。

  2. 对于 Ping Path,将默认值替换为单斜线 (“/”)。这会指示 Elastic Load Balancing 将运行状况检查请求发送到您的 Web 服务器的默认主页,如 index.html

    配置运行状况检查
  3. 将其他设置保留为默认值。

  4. 选择 Next: Add EC2 Instances

步骤 5:向负载均衡器注册 EC2 实例

您的负载均衡器会在向其注册的实例间分配流量。您可在负载均衡器所在的区域内的单个或多个可用区中选择 EC2 实例。有关更多信息,请参阅 您的传统负载均衡器的已注册实例

注意

当您在连接弹性网络接口 (ENI) 的情况下注册实例时,负载均衡器会将流量路由至实例的主接口 (eth0) 的主要 IP 地址。

向负载均衡器注册 EC2 实例

  1. Add EC2 Instances 页面上,选择要向负载均衡器注册的实例。

  2. 将跨区域负载均衡和连接耗尽保留为启用状态。

  3. 选择 Next: Add Tags

步骤 6:为您的负载均衡器添加标签 (可选)

您可为负载均衡器添加标签,或者继续执行下一个步骤。

向负载均衡器添加标签

  1. Add Tags (添加标签) 页面,为标签指定键和值。

  2. 要添加其他标签,请选择 Create Tag 并为标签指定键和值。

  3. 添加完标签后,选择 Review and Create

步骤 7:创建并验证您的负载均衡器

在创建负载均衡器之前,请检查所选的设置。在创建负载均衡器之后,您可验证其是否将流量发送到您的 EC2 实例。

创建并测试您的负载均衡器

  1. Review (审核) 页面上,检查您的设置。如果需要进行更改,请选择相应的链接来编辑设置。

  2. 选择 Create

  3. 在您收到已创建负载均衡器的通知后,选择 Close

  4. 选择新的负载均衡器。

  5. Description 选项卡上,检查 Status 行。如果它指示您的部分实例未处于可用状态,则可能是因为您的实例仍在注册过程中。有关更多信息,请参阅 对传统负载均衡器进行故障排除:实例注册

  6. (可选) 在您的至少一个 EC2 实例投入使用后,便可测试负载均衡器。从 DNS name 中复制字符串 (例如 my-load-balancer-1234567890.us-west-2.elb.amazonaws.com) 并将其粘贴到已连接 Internet 的 Web 浏览器的地址栏中。如果您的负载均衡器正在运行,您会看到服务器的默认页面。

步骤 8:删除您的负载均衡器 (可选)

在您的负载均衡器可用之后,您需要为保持其运行的每小时或部分小时支付费用。当您不再需要负载均衡器时,可将其删除。当负载均衡器被删除之后,您便不再需要支付负载均衡器费用。

删除您的负载均衡器

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器。

  4. 依次选择 ActionsDelete

  5. 当系统提示进行确认时,选择 Yes, Delete

  6. (可选) 在删除负载均衡器之后,与该负载均衡器关联的 EC2 实例将继续运行,而且您需要为保持其运行的每小时或部分小时支付费用。有关停止或终止实例的信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的停止和启动您的实例终止您的实例

使用 AWS CLI 创建 HTTPS/SSL 负载均衡器

按照以下说明使用 AWS CLI 创建 HTTPS/SSL 负载均衡器。

步骤 1:配置侦听器

侦听器是用于检查连接请求的进程。使用前端 (客户端到负载均衡器) 连接的协议和端口与后端 (负载均衡器到实例) 连接的协议和端口配置侦听器。有关 Elastic Load Balancing 支持的端口、协议和侦听器配置的信息,请参阅传统负载均衡器的侦听器

在此示例中,通过指定要用于前端和后端连接的端口和协议为您的负载均衡器配置两个侦听器。第一个侦听器接收端口 80 上的 HTTP 请求,并使用 HTTP 在端口 80 上向实例发送这些请求。第二个侦听器接受端口 443 上的 HTTPS 请求,并使用端口 80 上的 HTTP 向实例发送这些请求。

因为第二个侦听器在前端连接中使用 HTTPS,所以您必须在负载均衡器上部署 SSL 服务器证书。负载均衡器会在将请求发送到实例之前,使用证书终止并解密请求。

为您的负载均衡器配置侦听器

  1. 获取 SSL 证书的 Amazon 资源名称 (ARN)。例如:

    ACM

    arn:aws-cn:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012

    IAM

    arn:aws-cn:iam::123456789012:server-certificate/my-server-certificate
  2. 使用以下 create-load-balancer 命令为负载均衡器配置两个侦听器:

    aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=http,LoadBalancerPort=80,InstanceProtocol=http,InstancePort=80" "Protocol=https,LoadBalancerPort=443,InstanceProtocol=http,InstancePort=80,SSLCertificateId="ARN" --availability-zones us-west-2a

    以下为响应示例:

    { "DNSName": "my-loadbalancer-012345678.us-west-2.elb.amazonaws.com" }
  3. (可选) 使用以下 describe-load-balancers 命令查看负载均衡器的详细信息:

    aws elb describe-load-balancers --load-balancer-name my-load-balancer

步骤 2:配置 SSL 安全策略

您可选择预定义安全策略之一,或者可创建自己的自定义安全策略。否则,Elastic Load Balancing 使用默认预定义安全策略 ELBSecurityPolicy-2016-08 配置您的负载均衡器。建议您使用默认安全策略。有关安全策略的更多信息,请参阅传统负载均衡器的 SSL 协商配置

验证您的负载均衡器是否与默认安全策略关联

使用以下 describe-load-balancers 命令:

aws elb describe-load-balancers --load-balancer-name my-loadbalancer

以下是一项示范响应。请注意,ELBSecurityPolicy-2016-08 已在端口 443 上与负载均衡器关联。

{ "LoadBalancerDescriptions": [ { ... "ListenerDescriptions": [ { "Listener": { "InstancePort": 80, "SSLCertificateId": "ARN", "LoadBalancerPort": 443, "Protocol": "HTTPS", "InstanceProtocol": "HTTP" }, "PolicyNames": [ "ELBSecurityPolicy-2016-08" ] }, { "Listener": { "InstancePort": 80, "LoadBalancerPort": 80, "Protocol": "HTTP", "InstanceProtocol": "HTTP" }, "PolicyNames": [] } ], ... } ] }

如果您愿意,可以为您的负载均衡器配置 SSL 安全策略,而不是使用默认安全策略。

(可选) 使用预定义 SSL 安全策略

  1. 使用以下 describe-load-balancer-policies 命令列出预定义安全策略的名称:

    aws elb describe-load-balancer-policies

    有关预定义安全策略的配置的信息,请参阅预定义 SSL 安全策略

  2. 使用以下 create-load-balancer-policy 命令,利用您在上一步中描述的某个预定义安全策略创建 SSL 协商策略:

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=predefined-policy
  3. (可选) 使用以下 describe-load-balancer-policies 命令验证是否已创建策略:

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy

    响应包括策略的描述。

  4. 使用以下 set-load-balancer-policies-of-listener 命令在负载均衡器端口 443 上启用策略:

    aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy

    注意

    set-load-balancer-policies-of-listener 命令将指定负载均衡器端口的当前策略集替换为指定的策略集。--policy-names 列表必须包括要启用的所有策略。如果您省略当前已启用的策略,则禁用此策略。

  5. (可选) 使用以下 describe-load-balancers 命令验证是否已启用策略:

    aws elb describe-load-balancers --load-balancer-name my-loadbalancer

    以下是指明已在端口 443 上启用策略的响应示例。

    { "LoadBalancerDescriptions": [ { .... "ListenerDescriptions": [ { "Listener": { "InstancePort": 80, "SSLCertificateId": "ARN", "LoadBalancerPort": 443, "Protocol": "HTTPS", "InstanceProtocol": "HTTP" }, "PolicyNames": [ "my-SSLNegotiation-policy" ] }, { "Listener": { "InstancePort": 80, "LoadBalancerPort": 80, "Protocol": "HTTP", "InstanceProtocol": "HTTP" }, "PolicyNames": [] } ], ... } ] }

当您创建自定义安全策略时,必须至少启用一项协议和一个密码。 DSA 和 RSA 密码特定于签名算法,用于创建 SSL 证书。如果您已有 SSL 证书,请确保启用用于创建证书的密码。您的自定义策略的名称不得以 ELBSecurityPolicy-ELBSample- 开头,因为这些前缀是为预定义安全策略的名称保留的。

(可选) 使用自定义 SSL 安全策略

  1. 使用 create-load-balancer-policy 命令通过自定义安全策略创建 SSL 协商策略。例如:

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true AttributeName=Protocol-TLSv1.1,AttributeValue=true AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true AttributeName=Server-Defined-Cipher-Order,AttributeValue=true
  2. (可选) 使用以下 describe-load-balancer-policies 命令验证是否已创建策略:

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy

    响应包括策略的描述。

  3. 使用以下 set-load-balancer-policies-of-listener 命令在负载均衡器端口 443 上启用策略:

    aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy

    注意

    set-load-balancer-policies-of-listener 命令将指定负载均衡器端口的当前策略集替换为指定的策略集。--policy-names 列表必须包括要启用的所有策略。如果您省略当前已启用的策略,则禁用此策略。

  4. (可选) 使用以下 describe-load-balancers 命令验证是否已启用策略:

    aws elb describe-load-balancers --load-balancer-name my-loadbalancer

    以下是指明已在端口 443 上启用策略的响应示例。

    { "LoadBalancerDescriptions": [ { .... "ListenerDescriptions": [ { "Listener": { "InstancePort": 80, "SSLCertificateId": "ARN", "LoadBalancerPort": 443, "Protocol": "HTTPS", "InstanceProtocol": "HTTP" }, "PolicyNames": [ "my-SSLNegotiation-policy" ] }, { "Listener": { "InstancePort": 80, "LoadBalancerPort": 80, "Protocol": "HTTP", "InstanceProtocol": "HTTP" }, "PolicyNames": [] } ], ... } ] }

步骤 3:配置后端实例身份验证 (可选)

如果您在后端连接上设置 HTTPS/SSL,则可以选择设置实例身份验证。

在设置后端实例身份验证时,您将创建一个公钥策略。接下来,您可使用此公钥策略创建后端实例身份验证策略。最后,使用 HTTPS 协议的实例端口设置后端实例身份验证策略。

只有在实例提供给负载均衡器的公钥与负载均衡器的身份验证策略中的公钥匹配时,负载均衡器才会与实例通信。

配置后端实例身份验证

  1. 使用以下命令检索公钥:

    openssl x509 -in your X509 certificate PublicKey -pubkey -noout
  2. 使用以下 create-load-balancer-policy 命令创建公钥策略:

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-PublicKey-policy \ --policy-type-name PublicKeyPolicyType --policy-attributes AttributeName=PublicKey,AttributeValue=MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE=

    注意

    要指定 --policy-attributes 的公钥值,请删除公钥的第一行和最后一行内容 (包含“-----BEGIN PUBLIC KEY-----”和“-----END PUBLIC KEY-----”的两行)。AWS CLI 不允许 --policy-attributes 中存在空格字符。

  3. 使用以下 create-load-balancer-policy 命令通过 my-PublicKey-policy 创建后端实例身份验证策略。

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-authentication-policy --policy-type-name BackendServerAuthenticationPolicyType --policy-attributes AttributeName=PublicKeyPolicyName,AttributeValue=my-PublicKey-policy

    您可以选择使用多个公钥策略。负载均衡器会尝试所有密钥,一次尝试一个。如果实例提供的公钥与其中一个公钥匹配,则表示此实例已经过身份验证。

  4. 使用以下 set-load-balancer-policies-for-backend-server 命令将 my-authentication-policy 设置为 HTTPS 的实例端口。在此示例中,实例端口为端口 443。

    aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 443 --policy-names my-authentication-policy
  5. (可选) 使用以下 describe-load-balancer-policies 命令列出适用于您的负载均衡器的所有策略:

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer
  6. (可选) 使用以下 describe-load-balancer-policies 命令查看策略的详细信息:

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-names my-authentication-policy

步骤 4:配置运行状况检查 (可选)

Elastic Load Balancing 根据已配置的运行状况检查定期检查每个已注册 EC2 实例的运行状况。如果 Elastic Load Balancing 发现某个运行不正常的实例,它会停止向该实例发送流量,并将流量路由至正常运行的实例。有关更多信息,请参阅 为您的传统负载均衡器配置运行状况检查

当您创建负载均衡器时,Elastic Load Balancing 会使用运行状况检查的默认设置。如果您愿意,您可更改负载均衡器的运行状况检查配置,而不是使用默认设置。

为您的实例配置运行状况检查

使用以下 configure-health-check 命令:

aws elb configure-health-check --load-balancer-name my-loadbalancer --health-check Target=HTTP:80/ping,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3

以下为响应示例:

{ "HealthCheck": { "HealthyThreshold": 2, "Interval": 30, "Target": "HTTP:80/ping", "Timeout": 3, "UnhealthyThreshold": 2 } }

步骤 5:注册 EC2 实例

在创建负载均衡器之后,您必须向负载均衡器注册 EC2 实例。您可在负载均衡器所在的区域内的单个或多个可用区中选择 EC2 实例。有关更多信息,请参阅 您的传统负载均衡器的已注册实例

使用 register-instances-with-load-balancer 命令,如下所示:

aws elb register-instances-with-load-balancer --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62

以下为响应示例:

{ "Instances": [ { "InstanceId": "i-4f8cf126" }, { "InstanceId": "i-0bb7ca62" } ] }

步骤 6:验证实例

当您的任何一个已注册实例处于 InService 状态后,您的负载均衡器即可使用。

要检查您的新注册的 EC2 实例的状态,请使用以下 describe-instance-health 命令:

aws elb describe-instance-health --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62

以下为响应示例:

{ "InstanceStates": [ { "InstanceId": "i-4f8cf126", "ReasonCode": "N/A", "State": "InService", "Description": "N/A" }, { "InstanceId": "i-0bb7ca62", "ReasonCode": "Instance", "State": "OutOfService", "Description": "Instance registration is still in progress" } ] }

如果实例的 State 字段为 OutOfService,则可能是因为您的实例仍在注册中。有关更多信息,请参阅 对传统负载均衡器进行故障排除:实例注册

在您的至少一个实例的状态为 InService 后,便可测试负载均衡器。要测试您的负载均衡器,请复制负载均衡器的 DNS 名称,然后将其粘贴到已连接 Internet 的 Web 浏览器的地址栏中。如果您的负载均衡器正在运行,您会看到 HTTP 服务器的默认页面。

步骤 7:删除您的负载均衡器 (可选)

删除负载均衡器会自动注销其关联的 EC2 实例。当负载均衡器被删除之后,您便不再需要支付负载均衡器费用。不过,EC2 实例将继续运行,并且您仍需付费。

要删除您的负载均衡器,请使用以下 delete-load-balancer 命令:

aws elb delete-load-balancer --load-balancer-name my-loadbalancer

要停止您的 EC2 实例,请使用 stop-instances 命令。要终止您的 EC2 实例,请使用 terminate-instances 命令。