公网与私网规划必须对齐跨可用区故障转移能力,核心是切换后网络一致、稳定、无性能落差;需用跨可用区冗余的NAT网关或SLB,禁止单ECS公网IP和DNS轮询;私网须全可用区对等,包括网段、带宽、云盘、实例规格及资源供给一致性。

公网与私网规划必须和跨可用区故障转移能力对齐,否则网络层会成为高可用的短板。核心不是“能不能通”,而是“切换后是否一致、稳定、无性能落差”。
公网出口要统一且冗余
跨可用区部署时,公网访问不能依赖单台ECS自带的公网IP,否则主备切换后需手动改DNS或SLB后端,延迟高、易出错。推荐用公网NAT网关,并开启跨可用区冗余模式——它会在同一地域多个可用区自动部署节点,主节点故障时秒级切换,所有ECS通过内网地址统一访问,无需感知底层变化。
- 若业务已用SLB+公网IP方案,确保SLB本身也开启多可用区部署(控制台勾选“跨可用区”),避免SLB单点失效
- 禁止在不同可用区ECS上分别绑定独立公网IP并做DNS轮询——这不属于故障转移,只是负载分担,任一区宕机都会导致20%~50%用户直连失败
- 如需固定公网IP(如白名单对接),应申请弹性公网IP(EIP)并绑定到NAT网关或SLB,而非直接绑定ECS
私网设计必须保证跨区对等性
私网不是“通了就行”,而要确保主备可用区之间网络能力完全对等:带宽峰值、内网吞吐、云盘I/O延迟、甚至VPC路由表条目顺序都应一致。否则故障转移后,服务可能跑得慢、连不上数据库、或Redis复制延迟飙升。
- 所有可用区的交换机必须使用相同网段掩码(如/24),且预留足够IP数量——避免某区因IP耗尽无法扩容新实例
- 数据库主从、缓存集群节点、消息队列Broker,必须部署在相同规格的ECS上,且所在可用区支持完全一致的ESSD云盘PL级别(如全为PL3)和内网带宽(如全为10Gbps)
- 不要在A区用万兆网卡实例、B区用千兆网卡实例——即便控制台显示“同规格族”,也要查实底层网络硬件是否一致
实例规格必须适配故障转移节奏
故障转移不是瞬间完成的,中间存在秒级至分钟级的服务抖动窗口。规格选型要让这个窗口可控、可预期,而不是靠单机扛住全部流量。
- Web层用4核8G或8核16G标准规格,至少每个可用区部署2台,配合SLB健康检查实现秒级摘除异常节点
- 数据库连接层(如Proxy或读写分离中间件)必须和应用层同规格、同可用区部署,避免跨区调用引入额外延迟放大故障影响
- 禁止单台高配实例(如32核512G)承担核心角色——它无法被快速替换,也无法在另一可用区即时买到同规格库存,反而拖慢整体恢复速度
提前验证资源供给与规格一致性
很多故障转移失败,不是架构问题,而是“买不到”。北京地域可用区D开放g8i全系,但可用区F可能只支持g8i中的部分规格;南京地域甚至只有一个可用区,根本不支持跨区容灾。
- 在控制台“可用区”页签中,逐个筛选目标可用区,确认你选定的规格(如g8i.2xlarge)是否可购
- 用OpenAPI调用DescribeZones接口,检查SupportedInstanceTypes字段,比控制台更早发现库存限制
- 若发现某区缺货,不要临时降配凑合——要么换规格族(如从g8i切到c8i),要么换可用区,确保主备区规格完全一致

















