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

创建内部传统负载均衡器

您可以创建一个内部负载均衡器,将来自对负载均衡器的 VPC 具有访问权限的客户端的流量分配到 EC2 实例。

先决条件

  • 如果您尚未为负载均衡器创建 VPC,则必须在开始操作前先创建它。有关更多信息,请参阅 准备您的 VPC 和 EC2 实例

  • 启动您计划向内部负载均衡器注册的 EC2 实例。确保在打算用于负载均衡器的 VPC 中的私有子网中启动它们。

使用控制台创建内部负载均衡器

默认情况下,Elastic Load Balancing 会创建面向 Internet 的负载均衡器。使用以下过程创建内部负载均衡器并向新创建的内部负载均衡器注册您的 EC2 实例。

创建内部负载均衡器

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

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

  3. 选择 Create Load Balancer

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

  5. Define Load Balancer (定义负载均衡器) 页面上,执行以下操作:

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

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

    2. 对于 Create LB inside,为负载均衡器选择 VPC。

    3. 选择 Create an internal load balancer

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

    5. 保留默认侦听器配置。

       定义您的内部负载均衡器
    6. 对于 Available subnets,请使用其添加图标至少选择一个可用子网。该子网将移到 Selected subnets 下。要提高负载均衡器的可用性,请选择多个子网。

      注意

      如果您选择了默认 VPC 作为您的网络,但没有选择 Enable advanced VPC configuration,则将不会为您提供选择子网的选项。

      每个可用区最多可以连接一个子网。如果从已连接子网的可用区选择一个子网,则此子网将替换可用区当前连接的子网。

    7. 选择 Next: Assign Security Groups

  6. Assign Security Groups 页面上,选择 Create a new security group。为您的安全组输入名称和描述,或保留默认名称和描述。此新安全组包含一个规则,该规则允许流量进入为要使用的负载均衡器配置的端口。如果将使用其他端口进行运行状况检查,则必须选择 Add Rule 来添加一个规则以允许入站流量也进入该端口。选择 Next: Configure Security Settings

  7. Configure Security Settings 页面上,选择 Next: Configure Health Check 继续执行下一步骤。如果您更愿意创建 HTTPS 负载均衡器,请参阅 传统负载均衡器的 HTTPS 侦听器

  8. Configure Health Check 页面上,配置您的应用程序所需的运行状况检查设置,然后选择 Next: Add EC2 Instances

  9. Add EC2 Instances 页面上,选择要向负载均衡器注册的实例,然后选择 Next: Add Tags

    注意

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

  10. (可选) 您可以将标签添加到您的负载均衡器。添加完标签后,选择 Review and Create

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

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

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

  14. Description 选项卡上,注意 DNS nameScheme 指示负载均衡器是内部负载均衡器。

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

使用 AWS CLI 创建内部负载均衡器

默认情况下,Elastic Load Balancing 会创建面向 Internet 的负载均衡器。使用以下过程创建内部负载均衡器并向新创建的内部负载均衡器注册您的 EC2 实例。

创建内部负载均衡器

  1. 使用 create-load-balancer 命令并将 --scheme 选项设置为 internal,如下所示:

    aws elb create-load-balancer --load-balancer-name my-internal-loadbalancer --listeners Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80 --subnets subnet-4e05f721 --scheme internal --security-groups sg-b9ffedd5

    以下是一项示范响应。请注意,该名称表示这是一个内部负载均衡器。

    { "DNSName": "internal-my-internal-loadbalancer-786501203.us-west-2.elb.amazonaws.com" }
  2. 使用以下 register-instances-with-load-balancer 命令添加实例:

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

    以下为响应示例:

    { "Instances": [ { "InstanceId": "i-4f8cf126" }, { "InstanceId": "i-0bb7ca62" } ] }
  3. (可选) 使用以下 describe-load-balancers 命令验证内部负载均衡器:

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

    响应包含 DNSNameScheme 字段,表示这是一个内部负载均衡器。

    { "LoadBalancerDescriptions": [ { ... "DNSName": "internal-my-internal-loadbalancer-1234567890.us-west-2.elb.amazonaws.com", "SecurityGroups": [ "sg-b9ffedd5" ], "Policies": { "LBCookieStickinessPolicies": [], "AppCookieStickinessPolicies": [], "OtherPolicies": [] }, "LoadBalancerName": "my-internal-loadbalancer", "CreatedTime": "2014-05-22T20:32:19.920Z", "AvailabilityZones": [ "us-west-2a" ], "Scheme": "internal", ... } ] }