为应对人为误删等逻辑错误,可用区或地域中断等物理故障,ECS提供了分层的保护方案,覆盖数据持久性及业务连续性两大核心。在数据备份与恢复层面,覆盖从文件级到块存储级的恢复粒度;在业务连续性层面,则提供抵御可用区级乃至地域级故障的高可用架构。以帮助构建满足不同业务连续性目标的云上架构。
提升云上业务韧性
在构建云上业务时,数据持久性与业务连续性是保障业务稳定运行的两大基石。前者通过数据备份机制,保障在发生逻辑错误或物理损坏时核心数据可恢复;后者通过冗余架构和自动化运维消除单点故障,保障服务持续可用。根据业务发展阶段、预算及容灾需求,可按需选择:
数据备份与恢复
数据备份与恢复可解决因数据损坏、人为误删或基础设施故障等导致的云盘数据丢失问题。
根据功能特性和防护范围,灵活组合防护手段。
快照:无需安装客户端即可备份云盘数据。
根据功能类型及快照容量收取快照费用。
创建快照:可创建自动快照策略定期在本地域下备份云盘数据,异常时可以利用快照回滚云盘,以应对日常数据误删、业务回退。
也可创建自定义镜像对整个ECS实例备份,异常时通过更换操作系统恢复。
复制快照:通过创建自动快照策略并启用跨地域复制,发生故障时可使用复制的快照创建数据盘并挂载至备实例恢复数据,以应对地域级别故障。
ECS文件备份基础版:通过安装客户端在本地域下实现文件备份,异常时可以恢复指定目标文件和目录,恢复操作简便。
每个用户的阿里云(主账号)及其下的RAM用户在全地域共享100 GiB免费额度。超出部分按ECS挂载的块存储总容量计费。详细请参见文件备份基础版的权益说明。
云盘:基于云盘自身特性或能力实现跨可用区/地域数据备份。
确定业务的RPO(Recovery Point Objective)和RTO(Recovery Time Objective)要求:与业务方协商,量化业务中断和数据丢失带来的损失,确定可接受的RPO和RTO目标值,并定期进行业务连续性演练验证是否满足需求。
RPO:灾难发生时,允许丢失的最大数据量的时间间隔。
RTO:灾难发生后,从系统宕机到业务完全恢复所需的最长时间。
重要RPO和RTO是业务指标而非技术指标,实际端到端值需自行估算。应根据业务中断造成的实际损失来确定目标值。RPO和RTO越小,所需成本越高。
跨可用区高可用
在单个实例上部署应用存在可用性风险。若应用仅运行在一个实例上,一旦发生故障(如硬件问题或进程崩溃),将导致业务中断。建议采用跨可用区多实例部署与负载均衡(ALB) 提升可用性,通过健康检查机制,在异常时实现故障自动转移。
应用型负载均衡(ALB):负责将流量均衡分发至健康的后端 ECS 实例。通过健康检查探测后端服务状态,发现异常实例后会停止向其转发流量,可与 ESS 联动,实现故障实例的移除与新实例的接入。
云数据库(RDS):RDS的高可用系列,采用主备架构,支持跨可用区部署,可负责数据的持久化。
为进一步优化性能与成本:
建议将静态文件(如图片、脚本等)存放于对象存储OSS,并利用内容分发网络CDN,既能提升访问速度,又能减轻 ALB 和服务的压力。
若业务存在明显的流量波动,实例高峰期容量不足,低谷期资源闲置。建议借助弹性伸缩(ESS),根据监控指标动态调整实例数量,其集成的健康检查机制可自动识别并替换故障实例。
相关教程
跨地域高可用
若业务部署于单个地域,在面对极端自然灾害或大规模网络中断引发的地域下机房全线瘫痪时,将面临业务全线中断的风险。为保障业务连续性,需构建跨地域高可用架构。其核心思路是,在跨可用区高可用架构的基础上,通过在不同地域部署冗余业务系统,利用全局流量管理与数据实时同步能力,实现地域级故障的自动隔离与流量切换。
全局流量管理(GTM):可将用户请求分配至不同地域,支持用户就近接入、高并发负载均衡、健康检查与故障切换,从而实现跨地域高可用。
数据传输服务(DTS):用于跨地域数据实时同步,支持两个数据库之间的双向数据实时同步,适用于异地多活(单元化)、数据异地容灾等多种应用场景。
为进一步优化性能与成本:
建议将静态文件(如图片、脚本等)存放于对象存储OSS,并利用内容分发网络CDN,既能提升访问速度,又能减轻 ALB 和服务的压力。
若业务存在明显的流量波动,实例高峰期容量不足,低谷期资源闲置。建议借助弹性伸缩(ESS),根据监控指标动态调整实例数量,其集成的健康检查机制可自动识别并替换故障实例。
相关教程
参考GTM如何实现异地容灾,借助 GTM 实现跨地域流量调度,实现地域级高可用架构。
业务连续性演练
方案配置完成后,建议定期演练,验证方案的有效性:
验证恢复流程:模拟故障场景,执行完整的恢复流程,记录实际的RPO和RTO是否满足目标。
检查恢复环境:确认目标可用区或地域的资源配额、网络配置和安全策略能支撑业务切换。
测试数据完整性:恢复后验证数据的完整性和一致性,确保应用可正常运行。