1.
总体架构设计与目标
- 目标:实现RTO≤1分钟,RPO≤5分钟的跨区域容灾方案。
- 范围:阿里云新加坡(ap-southeast-1)与香港(cn-hongkong)两地,多可用区(AZ)部署。
- 网络:使用CN2直连/国际BGP出口保证跨境稳定性,并结合Global Accelerator或智能路由。
- 服务:前端使用SLB+CDN,应用使用ECS及RDS主备,多区复制,日志和快照同步到对象存储OSS。
- 运维目标:自动故障检测与切换、流量按策略分配、DDoS防护与成本可控的可扩展方案。
2.
核心组件与职责划分
- 负载均衡:使用阿里云SLB(负载均衡)做区域内流量分发,健康检查频率30s以内。
- 全局调度:使用DNS(阿里云解析/Global DNS)或Global Accelerator实现跨区域流量控制与就近接入。
- 计算与存储:ECS做应用层,RDS(MySQL/PolarDB)做主从/主主,多可用区备份。
- 数据同步:RDS异地备份+OSS冷备份,使用Binlog/GTID或数据订阅实时复制。
- 安全:使用云盾 Anti-DDoS Pro + Web应用防火墙WAF,设置峰值防护能力与带宽清洗策略。
3.
示例服务器与网络配置(具体数值演示)
以下为一个参考配置表,适用于中小型外贸网站或SaaS服务:
| 节点 |
地域/AZ |
规格 |
公网带宽 |
磁盘 |
| App-1(主) |
新加坡 ap-southeast-1a |
ecs.g6.large 2vCPU/4GB |
100 Mbps(共享) CN2 |
40GB SSD |
| App-2(备) |
香港 cn-hongkong-a |
ecs.g6.large 2vCPU/4GB |
100 Mbps(共享) CN2 |
40GB SSD |
| DB 主 |
新加坡 ap-southeast-1b |
rds.mysql.s1.small 2vCPU/8GB |
内网 |
100GB 高效云盘 |
| DB 备(只读) |
香港 cn-hongkong-b |
rds.mysql.s1.small 2vCPU/8GB |
内网 |
100GB 高效云盘 |
- 说明:表中带宽标注CN2出口,能降低跨境丢包与抖动。
- 延迟示例:新加坡↔香港平均ICMP延迟约30-50ms(视网络波动)。
- RTO/RPO推算:使用异地热备可实现RTO≈30秒(自动DNS/GA切换),RPO≈1-5分钟(Binlog复制)。
4.
DNS、流量控制与切换策略
- 主动式:使用Global Accelerator做BGP Anycast接入,跨区域自动就近路由,故障时切换到备用区域。
- 被动式:DNS解析结合健康检查(阿里云解析)实现故障时TTL快速降为0并指向备用A记录。建议TTL设置60s左右。
- 灰度/按权重:对海外用户按权重分配新加坡/香港流量,便于平滑切换与容量演练。
- 健康检查:对应用接口/数据库连接做综合探测,失败三次触发切换。
- 流量回流:切换后需监控链路质量,故障恢复应做流量回流的冷启动策略,避免震荡。
5.
CDN与DDoS防护实战建议
- CDN部署:前端静态资源走阿里云CDN,源站为两地SLB,降低跨境带宽和加速访问。
- 缓存规则:对静态文件设置长缓存(1天-30天),对API设置短缓存或不缓存并配合压缩。
- Anti-DDoS:启用Anti-DDoS Pro/Elastic,设置保底清洗带宽10Gbps(中型站点参考),峰值策略自动伸缩。
- WAF规则:配置IP限流、URL白名单/黑名单、异常请求拦截,并记录攻击特征用于黑名单下发。
- 日志与告警:合并SLB/CDN/Anti-DDoS/WAF日志到Log Service,设置告警(流量阈值、异常QPS、错误率)。
6.
真实案例与故障演练
- 案例:某外贸SaaS公司,主站在新加坡,香港做热备。一次新加坡电力中断中,使用Global Accelerator和DNS秒级切换成功将流量导向香港,峰值切换流量3万QPS,RTO≈45s。
- 配置复盘:当时App节点为ecs.g6.large×4,RDS主从延迟<2s,Anti-DDoS保底5Gbps,切换后无数据丢失。
- 演练流程:每季度进行一次演练,包括断开主区网络、强制SLB下线、模拟DDoS并验证清洗与回流。
- 常见问题:跨区写入冲突、会话同步、证书与域名解析延迟。建议使用共享会话池或JWT无状态设计。
- 建议:制定SOP、Runbook并自动化—实现自动恢复、自动扩容与自动告警,定期演练确保切换可靠。
来源:如何在阿里云新加坡香港cn2 上构建多可用区容灾架构