写点什么

AWS 企业备份 & 灾备专题

  • 2019-09-26
  • 本文字数:3185 字

    阅读完需:约 10 分钟

AWS 企业备份 & 灾备专题

维持业务持续性对于企业至关重要, 关键业务系统宕机可能会对企业带来重大影响,企业声誉、客户满意度或公司的财务的状况都可能受到难于挽回的重大损失。 因此,构建高可用高容灾的 IT 系统和建设 IT 灾备系统,具有显而易见的价值。


在灾备解决方案的选定上,企业需要先制定好两个重要指标:恢复时间 RTO(故障恢复时间),和恢复点 RPO(可忍受数据损失的时间点)。基于这两个关键业务指标,企业 IT 部门可以设计相应的应用架构、备份架构和灾备体系,通过使用一系列镜像/快照等技术手段,来实现相应系统的连续性服务水平。


在传统做法中,实施较高要求的容灾和灾备系统,往往不光要求企业花费大量时间和精力,而且部署复杂且价格昂贵。这对于多数企业,特别是中小型企业,都是一个巨大的负担。使用公有云的 基础设施来实现数据保护、备份归档和灾难备份,拥有传统 IT 无法比拟的巨大优势。


本文首先对灾备的基本概念做概况介绍,之后将利用 wordpress 模板模拟经典 web hosting 架构的应用场景,给出基于 AWS 的不同指标的 4 种备份/灾备方案,并做关键指标的对比。 本文概括介绍了在 AWS 上搭建容灾备份系统的四大方案。每一种方案都给出了具体的解决方案架构图成本估算具体执行步骤自动化脚本。 企业可结合自己对应用系统 PTO 和 PRO 的要求以及成本预算,选择适合自己的灾备方案。

关键指标 RPO & RTO

  1. RTO (Recovery Time Objective,复原时间目标)是指灾难发生后,从 IT 系统当机导致业务停顿之时开始,到 IT 系统恢复至可以支持 各部门运作、恢复运营之时,此两点之间的时间段称为 RTO。比如说灾难发生后半天内便需要恢复,RTO 值就是十二小时。

  2. RPO (Recovery Point Objective,复原点目标)是指从系统和应用数据而言,要实现能够恢复至可以支持各部门业务运作,恢复得来 的数据所对应时的间点。如果现时企业每天凌晨零时进行备份一次,当服务恢复后,系统内储存的只会是最近灾难发生前那个凌晨零时的资料。

  3. 该图解释了 R`TO 和 RPO 与时间轴的关系。


灾备类型

不同的业务对于 RPO 和 RTO 的要求也不同。根据不同的要求,我们大概可以将灾备归类 Cold Backup , Pilot Light , Warm StandbyHot Site. 以下将介绍四种灾备类型的架构设计和灾中切换过程。


  1. Cold Backup 是指定期导出并上传业务数据;当灾难发生时,启动数据层和应用层资源,并导入数据。 例如 MySQL 利用 mysqldump 工具进行定期的全量备份或增量备份。

  2. Pilot Light 是指实时异步复制业务数据;当灾难发生时,启动应用层资源。


  3. Warm Standby 是指实时复制业务数据,应用层保持小规模资源配置;当灾难发生时,迅速扩大应用层资源。


  4. Hot Site 是指实时同步/异步双向复制业务数据,应用层资源保持一定规模的配置,DNS 按权重 解析到两个站点;当灾难发生时,DNS 解析到单个站点, 并迅速扩大应用层资源。



不同的备份方式所产生的成本也不同,以下是 4 种类型适合业务类型和成本对比:


ColdPilot LightWarmHot Standby
用户场景非核心业务关键业务核心业务核心业务不受影响, 自动恢复
RTO & RPO 要求小时级分钟级秒级
成本$$$$$$$$$$

模拟内容

本专题是模拟一个典型的 Web Hosting 场景,即 WordPress Cluster 在不同场景下进行不同类型的备份。通过此模拟场景,提供 不同场景下,不同类型的灾备 解决方案架构图成本估算执行步骤自动化脚本


我们假设 WordPress Cluster 组件如下:


  • MySQL: WordPress 数据库

  • Redis: 使用 Redis Object Cache 插件,使得 WordPress 支持 Redis 作为缓存,提高用户访问体验

  • 共享存储: WordPress 的文件存储在共享存储上,每一台 WordPress 实例都可以访问相同的共享存储

  • 应用服务器: 安装 WordPress 应用

  • 负载均衡: 将接收到的流量转发给后端的 WordPress 集群


不同类型的备份所需策略也不同。上述 WordPress Cluster 场景,只有 MySQL 和 WordPress 文件存储内有持久化数据,将迁移的大致策略归纳总结如下:


备份策略灾前准备工作灾中切换
Cold1. 定期备份MySQL 2. 定期备份Wordpress文件1. 在灾备环境准备好网络等基础服务 2. 自动化启动数据层,应用层脚本1. 启动数据库,文件存储 2. 导入数据 3. 启动应用层 4. DNS 解析到灾备区域
Pilot Light1. 开启MySQL 只读副本 2. 异步持续备份WordPress 存储文件1. 在灾备环境准备好网络等基础服务 2. MySQL 只读部分,存储文件备份 3. 自动化启动应用层脚本1. 提升MySQL 只读副本为主库 2. 启动应用层 3. DNS 解析到灾备区域
Warm Standby1. 开启MySQL 只读副本 2. 异步持续备份WordPress 存储文件1. 在灾备环境准备好网络等基础服务 2. MySQL 只读部分,存储文件备份 3. 自动化启动应用层脚本 4. 启动小规模应用层1. 提升MySQL 只读副本为主库 2. 提升应用层规模 3. DNS 解析到灾备区域
Hot Standby1. MySQL 设置成互为主备 2. WordPress 存储文件双向拷贝1. 在灾备环境准备好网络等基础服务 2. MySQL 设置成互为主备模式 3. WordPress 文件双向拷贝 4. 启动应用层 5. DNS 根据预先设置的策略解析到两个站点1. 故障发生时,DNS 解析到单个站点

AWS 组件的计费模型

在模拟场景中将使用到一些 AWS 的常见服务,其计费模型如下:


功能资源费用说明
Web层ELB在灾备区按用量收费
EC2根据实际使用的类型按灾备区定价收费
EC2 AMI如果您使用由实例存储提供支持的 AMI,您需要为实例使用和在 Amazon S3 中存储 AMI 付费。使用由 Amazon EBS 支持的 AMI,您需要为实例使用、Amazon EBS 卷的存储和使用、以 Amazon EBS 快照形式存储 AMI 付费。
EBS快照按EBS的快照存储大小收费
EBS 卷单独使用的EBS卷的容量费用
应用层ELB在灾备区按用量收费
EC2根据实际使用的类型按灾备区定价收费
EC2 AMI如果您使用由实例存储提供支持的 AMI,您需要为实例使用和在 Amazon S3 中存储 AMI 付费。使用由 Amazon EBS 支持的 AMI,您需要为实例使用、Amazon EBS 卷的存储和使用、以 Amazon EBS 快照形式存储 AMI 付费。
EBS快照按EBS的快照存储大小收费
EBS 卷单独使用的EBS卷的容量费用
缓存层Redis 备份文件ElastiCache 允许您免费为每个活动 Redis 集群存储一个备份。对于所有区域,其他备份的存储空间按每月 0.085 美元/GB 的费率收费。对于创建备份或者将备份中的数据还原到 Redis 集群,没有数据传输费。拷贝到灾备区会产生备份文件存储费用<
数据库层数据库实例实例费用按使用的EC2类型收费
数据库存储按实际的数据量占用的空间收费
数据库快照当灾备的数据库进行备份或快照时会产生存储费用
S3对象存储文件存储服务根据存储量收取S3的存储费用
Internet流量数据流出到Internet费用按照云数据中心向Internet传输的流量计费,不限带宽

不同场景下的解决方案

根据原生产环境部署位置的不同,本文介绍相应的不同方案,比如 AWS 的多区域容灾,IDC 到 AWS 的容灾,友商到 AWS 的容灾等。详细步骤请分别点击以下链接:


脚本下载

基于 WordPress Cluster 的设定场景,上述详细方案的执行脚本发布在 此GitHub Repo下。项目内有三个文件夹,basic, database, app 您可以根据需求修改具体参数,来满足对于业务持续性的需求。当做环境切换时,只需要一键启动此模板,即可轻松恢复生产环境。具体使用方法,请分别点击每篇文章查看

总结

本文简述了常见的标准灾备方案,并在关键指标以及成本角度做了简单的对比。我们可以根据业务实际部署的情况,在 AWS 上选择适合自己的灾备方案。


作者简介


施乔,亚马逊 AWS 解决方案架构师,负责基于 AWS 的云计算方案的架构设计,在应用开发, Serverless, 大数据,IoT 方向有丰富的实践经验。


李天歌,AWS 解决方案架构师


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/corporate-backup-and-disaster-backup-series/


2019-09-26 15:371154
用户头像

发布了 1602 篇内容, 共 71.3 次阅读, 收获喜欢 67 次。

关注

评论

发布
暂无评论
发现更多内容

2 期架构师训练营 - 第八周作业与总结

Vicente

架构师训练营第2期

sql注入竟然把我们的系统搞挂了,怎么办?

苏三说技术

java安全

【Python】给PDF添加水印

AXYZdong

Python 2月春节不断更

物流系统抢单简单设计

DL

驱动力读书笔记之五

张老蔫

28天写作

Java函数式编程Stream.collect()为什么这么受欢迎?

码农架构

Java 架构 函数式编程

【LeetCode】盒子中小球的最大数量

Albert

算法 LeetCode 2月春节不断更

5G花式过年指南

脑极体

浪潮云洲:从工业互联网实践想开去

浪潮云

工业互联网

图文详解网络基础知识

架构师训练营 4 期 第6周

引花眠

架构师训练营 4 期

第四章作业

Kalman

产品经理 产品经理训练营

2 期架构师训练营 - 第六周作业与总结

Vicente

架构师训练营第2期

2 期架构师训练营 - 第九周作业与总结

Vicente

架构师训练营第2期

第四章学习总结

Kalman

产品经理 产品经理训练

大作业(二)-知识点

hunk

架构师训练营第2期

2 期架构师训练营 - 第十周作业与总结

Vicente

架构师训练营第2期

日记 2021年2月7日(周日)

Changing Lin

个人感悟 2月春节不断更

2 期架构师训练营 - 第七周作业与总结

Vicente

架构师训练营第2期

MyBatis专栏 - 二级缓存

小马哥

Java mybatis 七日更 2月春节不断更

OpenCV--平移与旋转

IT蜗壳-Tango

七日更 2月春节不断更

协会组织如何实现数字化落地应用?

boshi

数字化转型 七日更

尝试从用户的角度思考(PO的姿势)

Bruce Talk

Scrum 敏捷开发 Agile Product Owner

第十一周 安全稳定 作业 「架构师训练营 3 期」

胡云飞

容器 & 服务:Jenkins本地及docker安装部署

程序员架构进阶

容器 jenkins 七日更 28天写作 2月春节不断更

白话Mysql的锁和事务隔离级别!死锁、间隙锁你都知道吗?

Java鱼仔

MySQL 高可用

Linux Lab 进阶: Rootfs 文件系统 &Linux 与 Uboot 调试

贾献华

Linux Linux Kenel rootfs uboot usb

《未来呼啸而来》- 技术改变生活

石云升

2月春节不断更 技术改变生活 未来呼啸而来

产品经理训练营--第四周作业

月亮 😝

最新版gradle安装使用简介

程序那些事

Gradle 程序那些事 构建工具 build 打包工具

阅读笔记:Python A-Z 技巧

小匚

Python 读书笔记 日常思考

AWS 企业备份 & 灾备专题_运维_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章