这里主要想说明的是DR,即灾难恢复。
什么备份啊、高可用啊,都是为了哪天突然停电了被雷击了地震了外星人入侵了等等特殊情况准备的。
RPO,P是Point。咔叽断电了,重启后,你到底能恢复到哪个”点“。换句听得懂的话,就是你最后一次备份的数据是什么时候。
所以提到RPO,记得看你的备份周期。5分钟?15分钟?还是1小时?
然后RTO,T是Time。咔叽断电了,重启后,你”多久“能恢复服务?
为什么这俩名字总混呢?因为中文里,Time也叫”点“……
所以要想记得清楚,记住,P是备份点,是游戏里的”存档点“,打撸啊撸里面的”出生点“……
T就是多久。
OK,提到备份,咱们说说都应该怎么备份。
其实更应该想想怎么恢复,你就知道怎么备份了。
拿EC2开刀。EC2怎么恢复?
首先,AMI对吧,有了AMI,虚拟机就恢复了。
数据呢?挂硬盘呀。EBS的内容怎么恢复?用snapshot呀。
所以EBS备份,要用Snapshot。
还有挂在网盘呢,EFS。EFS本身就可以多AZ,你要是愿意,用AWS Backup拷到另一个Region去。
其他文件呢?文件怎么恢复?
从S3嘛。所以平时也要把文件往S3上存,哎,加个lifecycle,备份到Glacier里去。
注意别是Deep Archive,你不希望你的RTO是一天吧……
下一个,数据库,RDS和Redshift。
这俩可以用snapshot,也可以自己写sqldump都存到S3里面去,不过那样恢复起来要花很长~~的时间。
不过我们已经学过什么AWS Pipeline了,那个不就是定期做Data replica的么。
所以定期做个replica,把数据存到另一个region去。
咱们这都是一个组件一个组件说。如果你部署的是整个网络,怎么恢复?
怎么部署的就怎么恢复呗!提到”整个网络“,就说明一切都自动化了呀。
Cloud Formation,对吧?
Elastic Beanstalk,对吧?
都整上。
来说说DR策略。
最简单的,就是咱们上边说的备份和恢复。
也就是一个环境挂了,我们迅速地恢复一个环境出来。在这之前,跟客户说等着!
RTO长。
那有没有比这好的?有。
把核心部件热备份着。比如RDS。
平时一直坐着RDS replica,相当于RDS有一个备份一直待命中,随时可以收请求开始工作。
这样只需要恢复其他工作组件即可,比如EC2啊等。
这种方法叫Pilot Light。
还有没有比这快的?有。
那就不光核心部件热乎着,工作部件也热乎着呗。
但是那个啥,热乎着不产出,浪费钱啊。
所以别热乎太多,咱们也用EC2 ASG,但用的少。
真用到咱们了,咱们再给它调大。
这种方法叫Warm Stanby。相当于创造了一个小环境,随时待命。
还有没有比这更快的?呃……有。
您干脆直接挂一套相同环境得了。
这种方法,叫Hot Site……
总结一下:
备份:
- 用snapshot的,RDS,EBS,Redshift等
- 文件用S3+liftcycle,cross-region relication
- On-prem的文件怎么传到AWS S3上?用Storage Gateway,或者Snowball
高可用性:
- 用Route53来切换DNS(region by region)
- RDS Multi-AZ,ElasticCache Multi-AZ,EFS,S3
- Site-to-site VPN as a recovery from Direct Connect
Replication
- RDS Replica (cross region), AWS Aurora + Global Database
- Database Replica from On-prem to RDS
- Storage Gateway
自动化
- Cloud Formation / Elastic Beanstalk
- 用CloudWatch alarm
- 用Lambda
