创建内部经典负载均衡器
您可以创建一个内部负载均衡器,将来自对负载均衡器的 VPC 具有访问权限的客户端的流量分配到 EC2 实例。
先决条件
-
如果您尚未为负载均衡器创建 VPC,则必须在开始操作前先创建它。有关更多信息,请参阅准备 VPC 和 EC2 实例。
-
启动您计划向内部负载均衡器注册的 EC2 实例。确保在打算用于负载均衡器的 VPC 中的私有子网中启动它们。
使用控制台创建内部负载均衡器
默认情况下,Elastic Load Balancing 会创建面向 Internet 的负载均衡器。使用以下过程创建内部负载均衡器并向新创建的内部负载均衡器注册您的 EC2 实例。
创建内部负载均衡器
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。
-
选择 Create Load Balancer。
-
对于 Select load balancer type(选择负载均衡器类型),请选择 经典负载均衡器。
-
在 Define Load Balancer (定义负载均衡器) 页面上,执行以下操作:
-
对于 Load Balancer name (负载均衡器名称),键入负载均衡器的名称。
在当前区域的经典负载均衡器集内,经典负载均衡器的名称必须唯一,最多可以有 32 个字符,只能包含字母数字字符和连字符,不能以连字符开头或结尾。
-
对于 Create LB inside (在内部创建负载均衡器),为负载均衡器选择 VPC。
-
选择 Create an internal load balancer (创建内部负载均衡器)。
-
[默认 VPC] 如果您选择了默认 VPC 并希望选择负载均衡器的子网,请选择 Enable advanced VPC configuration (启用高级 VPC 配置)。
-
保留默认侦听器配置。
-
对于 Available subnets,请使用其添加图标至少选择一个可用子网。该子网将移到 Selected subnets 下。要提高负载均衡器的可用性,请选择多个子网。
注意 如果您选择了默认 VPC 作为您的网络,但没有选择 Enable advanced VPC configuration,则将不会为您提供选择子网的选项。
每个可用区最多可以连接一个子网。如果从已连接子网的可用区选择一个子网,则此子网将替换可用区当前连接的子网。
-
选择 Next: Assign Security Groups。
-
-
在 Assign Security Groups 页面上,选择 Create a new security group。为您的安全组输入名称和描述,或保留默认名称和描述。此新安全组包含一个规则,该规则允许流量进入为要使用的负载均衡器配置的端口。如果将使用其他端口进行运行状况检查,则必须选择 Add Rule 来添加一个规则以允许入站流量也进入该端口。选择 Next: Configure Security Settings。
-
在 Configure Security Settings 页面上,选择 Next: Configure Health Check 继续执行下一步骤。如果您更愿意创建 HTTPS 负载均衡器,请参阅 经典负载均衡器的 HTTPS 侦听器。
-
在 Configure Health Check 页面上,配置您的应用程序所需的运行状况检查设置,然后选择 Next: Add EC2 Instances。
-
在 Add EC2 Instances 页面上,选择要向负载均衡器注册的实例,然后选择 Next: Add Tags。
注意 当您在连接弹性网络接口 (ENI) 的情况下注册实例时,负载均衡器会将流量路由至实例的主接口 (eth0) 的主要 IP 地址。
-
(可选) 您可以将标签添加到您的负载均衡器。添加完标签后,选择 Review and Create。
-
在 Review (审核) 页面上,检查您的设置。如果需要进行更改,请选择相应的链接来编辑设置。完成后,选择 Create。
-
在您收到已创建负载均衡器的通知后,选择 Close。
-
选择新的负载均衡器。
-
在 Description 选项卡上,注意 DNS name 和 Scheme 指示负载均衡器是内部负载均衡器。
查看 Status 行。如果它指示您的部分实例未处于可用状态,则可能是因为您的实例仍在注册过程中。有关更多信息,请参阅对经典负载均衡器进行故障排除:实例注册。
使用 Amazon CLI 创建内部负载均衡器
默认情况下,Elastic Load Balancing 会创建面向 Internet 的负载均衡器。使用以下过程创建内部负载均衡器并向新创建的内部负载均衡器注册您的 EC2 实例。
创建内部负载均衡器
-
使用 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 --subnetssubnet-4e05f721
--scheme internal --security-groupssg-b9ffedd5
以下为响应示例。请注意,该名称表示这是一个内部负载均衡器。
{ "DNSName": "internal-my-internal-loadbalancer-786501203.us-west-2.elb.amazonaws.com" }
-
使用以下 register-instances-with-load-balancer 命令添加实例:
aws elb register-instances-with-load-balancer --load-balancer-name
my-internal-loadbalancer
--instancesi-4f8cf126 i-0bb7ca62
以下为响应示例:
{ "Instances": [ { "InstanceId": "i-4f8cf126" }, { "InstanceId": "i-0bb7ca62" } ] }
-
(可选)使用以下 describe-load-balancers 命令验证内部负载均衡器:
aws elb describe-load-balancers --load-balancer-name
my-internal-loadbalancer
响应包含
DNSName
和Scheme
字段,表示这是一个内部负载均衡器。{ "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", ... } ] }