在 AWS EC2 上自动扩缩容 APISIX 网关
自动扩缩容是一种根据流量负载自动调整网关可用资源的机制,确保在不同的流量负载下保持一致的性能。
本指南将引导你在 EC2 上以 解耦模式 部署 APISIX,为 APISIX 网关(也称为 APISIX 数据平面或 DP)配置自动扩缩容组 (ASG),定义扩缩容策略,并通过简单的负载测试验证扩缩容行为,以便你的网关可以自动响应流量变化。
前置条件
- 一个 AWS 帐户。
- 足够的 IAM 权限来创建和管理以下 AWS 资源:
- EC2 实例
- 自动扩缩容组 (Auto Scaling Groups)
- 启动模板 (Launch Templates)
- 安全组 (Security Groups)
- 确保你在目标 AWS 区域中配置了 VPC,并为你的 EC2 实例配置了必要的子网。
配置安全组
此图直观地显示了 APISIX 及其支持组件之间的流量,突出了每个安全组的目的以及需要配置的规则:
备注
以下安全组配置仅供参考。它们遵循最小权限原则,并假设存在用于向 APISIX DP 实例分发流量的 ALB。你应该根据自己的网络和安全要求调整这些规则。
在 AWS 控制台中,导航到 EC2 > Security Groups。创建以下安全组 (SG) 并 配置其入站和出站规则:
1. 应用负载均衡器 (ALB) 安全组
- 入站
- HTTP
80和 HTTPS443来自0.0.0.0/0(任何地方)
- HTTP
- 出站
- 自定义 TCP
9080到 APISIX DP 安全组
- 自定义 TCP
2. APISIX 控制平面 (CP) 安全组
- 入站
- SSH
22来自受信任的来源,例如堡垒机或你自己的 IP 范围 - TCP
9180来自受信任的来源,例如堡垒机或你自己的 APISIX Admin IP 范围
- SSH
- 出站
- 自定义 TCP
2379到 ETCD 安全组
- 自定义 TCP
3. APISIX 数据平面 (DP) 安全组
- 入站
- SSH
22来自受信任的来源,例如堡垒机或你自己的 IP 范围 - 自定义 TCP
9080来自 ALB 安全组
- SSH
- 出站
- 自定义 TCP
2379到 ETCD 安全组 - HTTP
80和 HTTPS443到0.0.0.0/0(任何地方)
- 自定义 TCP
4. etcd 安全组
- 入站
- SSH
22来自受信任的来源,例如堡垒机或你自己的 IP 范围 - 自定义 TCP
2379来自 APISIX CP 安全组 - 自定义 TCP
2379来自 APISIX DP 安全组
- SSH
- 出站
- 自定义 TCP
2379到 APISIX CP 安全组 - 自定义 TCP
2379到 APISIX DP 安全组
- 自定义 TCP
