AWS 弹性负载均衡器和弹性伸缩相关实际操作。
创建一个 Auto Scaling 组 (ASG)
一、创建启动模板 (Launch Template)
- 在实例菜单选择启动模板
- 点击创建启动模板
- 配置启动模板
- 填写启动模板名称
- 选择
AMI - 选择实例类型
- 选择密钥对
- 选择安全组
- 配置存储
- 添加资源标签
- 配置高级详细信息
其中可以配置
用户数据。 - 创建启动模板
- 启动模板创建成功

二、创建 Auto Scaling 组
- 在 Auto Scaling 菜单选择 Auto Scaling 组
- 点击创建 Auto Scaling 组
- 配置 Auto Scaling 组
- 填写 Auto Scaling 组名称
- 选择启动模板(上一步创建的)
- 确认启动模板的内容后点击下一步
- 配置网络(一个
VPC和多个可用区及子网) - 配置实例类型要求(会覆盖启动模板的设置)
- 添加负载均衡器(可以稍后再添加)
- 配置运行状况检查
- 配置监控
在
CloudWatch中启用组指标收集并不会收费。 - ⭐ 配置组大小
- ⭐ 配置扩展策略
- 添加通知
- 添加标签
- 审核所有配置并创建
- Auto Scaling 组创建成功
- ⭐ 开始自动更新容量(启动实例)
- 在 Auto Scaling 组的活动页面可以看到启动记录
- 使用实例刷新 (instance refresh) 可以更新 Auto Scaling 组中的所有实例


目标组
一、创建 ALB 目标组
- 在负载平衡菜单选择目标群组
- 点击创建目标组
- 配置目标组
- 选择目标类型
可选实例、IP 地址、
Lambda函数和现有的ALB。 - 输入目标组名称
- 配置目标组协议和端口
- 配置协议版本(HTTP 和 80 端口)
- 配置健康检查
- 配置标签
- ⭐ 注册目标 (Register targets)
- 创建目标组
- 选择目标类型
ALB目标组创建完成

二、创建 NLB 目标组
大致流程与 ALB 目标组创建时的一致。
只列举不同的流程:
- …
- …
- 配置目标组
- …
- …
- …
- ⭐ 配置协议版本(TCP 和 80 端口)
NLB不支持 HTTP 协议。 - …
- …
- …
- …
- …

网络负载均衡器
一、创建弹性 IP 地址 (Elastic IP addresses) 供 NLB 使用

二、创建网络负载均衡器
- 在负载平衡菜单选择负载均衡器
- 点击创建负载均衡器
- 配置负载均衡器
- 选择
NLB负载均衡器类型 - 输入负载均衡器名称
- 选择面向互联网还是内网
- 选择单 IPv4 还是双栈(IPv4 加 IPv6)
- ⭐ 配置一个
VPC和多个可用区及(公有)子网 - ⭐ 为每个
子网分配弹性 IP 地址 - ⭐ 配置监听器(TCP 和 80 端口)和对应的目标组
- 创建负载均衡器
- 选择
- 等待负载均衡器预置完成后创建成功
- 通过公有 DNS 访问负载均衡器




三、为 ASG 配置 NLB 负载均衡器(目标组)

四、查看 NLB 中注册的实例

五、查看 NLB 负载均衡器关联的 IP 地址
nslookup
# 之后输入 NLB 的公有 DNS
虽然之前绑定了 3 个弹性 IP,但是当前 ASG 只在两个 子网 中创建了两台实例,因此只返回了两个 子网 绑定的弹性 IP 地址:

六、使用浏览器访问 NLB 的公有 DNS
- ⭐ 多次访问
NLB的公有 DNS,请求都只被发到了一个子网中实例算法不一样导致的,
ALB会轮询。 - 直接访问分配的弹性 IP 地址也可以达到实例

应用程序负载均衡器
一、创建应用程序负载均衡器
- 在负载平衡菜单选择负载均衡器
- 点击创建负载均衡器
- 配置负载均衡器
- 选择
ALB负载均衡器类型 - 输入负载均衡器名称
- 选择面向互联网还是内网
- 选择单 IPv4 还是双栈(IPv4 加 IPv6)
- ⭐ 配置一个
VPC和多个可用区及(公有)子网AWS 会自动为每个
子网分配公有 IP 地址。 - ⭐ 配置安全组
NLB不支持配置安全组,而ALB支持。 - ⭐ 配置监听器(HTTP 和 80 端口)和对应的目标组
- 创建负载均衡器
- 选择
- 等待负载均衡器预置完成后创建成功
- 通过公有 DNS 访问负载均衡器



二、为 ASG 配置 ALB 负载均衡器(目标组)

三、使用浏览器访问 ALB 的公有 DNS
- 默认每次访问都前往了不同可用区(轮询)
- ⭐ 使用
粘性会话 (Sticky Sessions)可以将同一客户端的请求固定在一个可用区
