我们2015年开始试用阿里云服务器、云数据库、云监控、开放缓存等服务,2016年写过一篇《阿里云Web服务器ECS和数据库服务器RDS的异地备份》,后来也基本上是按照这样来做的,只是随着ECS、RDS数量的增加,要进行备份、下载、储存也变得越来越难了,特别是RDS数据量增加后下载非常困难,害怕长期占用ECS带宽进而影响用户访问,就基本没有进行异地保存。
最近还因为某个特别的原因,网站上出现特别内容,被请去喝茶,我们也按照要求查找和提供Web访问日志,我们一般是储存15天左右的访问日志,对于我们自己或者相关部门需要查找问题基本够了,但考虑到国家有规定访问记录应该保存180天,如果万一需要查找更早的日志而我们没有的话,怕因为更大问题,还是要做到合规才行,因此异地备份的事情有提到议事日程。
我们同事咨询了阿里云客服,他们推荐OSS归档存储,然后我又和同事咨询查看阿里云相关文档,比较了专门的备份服务、各种OSS存储规格的特点和价格,最好觉得OSS冷归档是最适合我们的产品,原因如下:
- 价格最低,1.5元/100G/月,也就是18元/100G/年或者180元/1T/年,与购买硬盘的价格差不太多了
- 最低储存180天、最小64kB,也对我们没有影响,我们的备份需求符合
- 都是通过内网进行备份、转移,不占用外网带宽,不影响用户访问
- 不担心自己的硬盘损坏,冷归档除了解冻麻烦一点以外,数据可靠性是有保障的
于是我们就在阿里云账号中开通了OSS功能,选择地域和类型添加了Bucket,手工测试了文件的上传、解冻、下载,再添加了需要的目录,在ECS下载工具软件OssUtil的Linux x86 64bit,就可以在ECS上用命令行( 例如:ossutil64 cp rds-0-tables.sql.tar.gz oss://my-oss-backup-qingdao-1/rds-0/ )来上传备份文件了。下面是三类需要保存的文件及处理办法:
- Web访问日志:我们修改了以前的每日Web访问日志压缩批处理程序,在压缩后就上传到OSS的Bucket目录中
- ECS中Web及系统数据备份:修改了以前每月备份批处理程序,在压缩后上传到OSS的对应Bucket目录中
- RDS中的数据备份:MySQL 5.x老RDS备份数据可以在ECS上通过内网下载,再上传到OSS对应Bucket目录中,新的MySQL 8的备份下载还在等待阿里云技术人员完善,以后可能可以直接传到OSS而不需要ECS中转
上传好了以后,可以在阿里云OSS管理Bucket设置生命周期,我们目前的存储规则是:
- Web访问日志:每日自动批量进行备份上传,保存180天后删除
- Web及系统备份:每月自动批量进行备份上传,保存365天后删除
- RDS数据备份:每半年人工进行备份上传,保存730天后删除
这样算下来,一台ECS上的Web访问日志冷归档一年几十元,Web及系统备份也是一年几十元,我们多台ECS及RDS的冷归档费用大约在数百元一年,还是可以承受得了的,也解决了我们一个长期的麻烦和隐患。✌️
还有几个注意点:
- 解冻分为紧急、标准、批量三种,需要等待的时间不一样,价格也有差异;
- 生命周期设置为小于180天的时候是不会删除的,需要等到180天才会删除,这个是我询问阿里云客服的结果,需要观察;
- 我们的需求中Bucket的历史记录不需要开启,通过目录名、文件名来区分文件,以免删除的时候需要删除两次;
- 冷归档解冻后的文件可以下载、转为归档,但如何再转为冷归档还不知道,也没有尝试;
- OSS中目录名、文件名不能移动、不能改名,上传的时候需要对准目录,不存在的目录会自动新增;
- 不同阿里云账号可以用内网访问同一地域下的同一个Bucket,因此不需要每个阿里云账号下都开启OSS、创建Bucket。
评论