AWS 的EC2备份能够有不少方法,若是管理员熟悉脚本和Lambda,彻底能够经过Cloudwatch的事件来定时备份,甚至能够直接在Windows的计划任务里面跑个简单的PowerShell脚本都能实现。sql
AWS官方也提供了一个一揽子的解决方案叫作 ops automation,这个很适合对于脚本彻底不懂的管理员,配置好之后管理员经过对应的tag能够进行灵活的自定义操做。数据库
下面这个截图是官方的示意图 ide
具体的解释和配置向导的过程能够参考这个连接,不过目前暂不提供中文翻译函数
https://aws.amazon.com/solutions/ops-automator/微服务
对于普通的用户来讲,看了这个示意图能从一个高层抽象的角度去理解他的过程就好了,可是不须要去具体了解如何调用的。更重要的是知道如何去配置和使用。翻译
简单的解释一下安装和配置的过程,经过Cloudformation咱们能够安装一个叫作 AWS Ops Automator的stack 模板(我称为主模板),这个stack会自动配置一系列的微服务,包括Lambda函数,DynamoDB数据库等等,同时他会自动建立一个S3的bucket,并在这个bucket里面保存了6个stack 模板文件,恰好对应他的6个任务功能:建立快照,拷贝快照,删除快照,替换实例,更改实例类型和经过cpu利用率对实例进行标记。 若是咱们须要他的某一个功能,那咱们就须要经过对应的模板文件再次添加一个新的stack(我称为任务模板)。好比说,若是咱们须要实现一个定时建立快照的功能,咱们须要首先配置一个主stack,而后配置一个定时建立快照的任务stack,而后经过这个主模板来调用这个任务模板3d
那么怎么调用这些功能呢?咱们在对应的EC2或者snapshot上面进行tag标记,将AWS Ops Automator的tag name赋予key,而后将对应的任务stack的tag name赋予 value,他就会经过主stack去调用对应的task stack了。日志
这个逻辑若是光看文字是比较迷惑的,最容易理解的方法就是直接动手操做一次。举个栗子,我打算实现天天定时在8:30,11:30,15:30和20:30这4个点进行快照备份,而后全部的快照超过30天以上的自动删除。下面看看怎么来实现的。orm
首先安装咱们的主模板,安装的时候注意在右上角选定本身须要的region,他的安装向导默认是在US East安装的,必定要记得修改。blog
配置stack的内容,关键的东西是taskscheduler tagname,这个是咱们后面添加tag的时候,key的名字。
点击下一步
Review一下
记得勾选最下面的IAM选项
而后他就会自动开始配置相关的资源和微服务
状态变为Complete以后,点击output,查看对应的S3 bucket名称
点开对应的bucket看看,里面有2个目录,AccountsConfiguration是用来给其余帐号配置IAM的权限,若是咱们就用这个主帐号操做的话能够暂时忽略;TaskConfiguration里面包括了6个Task Template,也就是咱们须要操做的任务模板。
点进去看看
点开Ec2CreateSnapshot.template,记录他的URL地址
而后回到Cloudformation里面,经过这个模板建立一个新的stack
根据本身的须要进行设置,这里关键是Task interval须要使用cron格式来进行配置
其余的自定义属性,好比时区
以及在建立的Snapshot上面,自动添加对应的tag,注意这个Delete30是我下一步要建立的stack的名字,他的做用是自动删除快照
稍等片刻,这个备份的stack就准备好了
建立配置Delete30 stack
这个步骤和上面基本相似,惟一的区别是咱们须要使用Ec2DeleteSnapshot.template
相关的配置以下所示
时区
注意这个删除的操做并非根据时间来的,而是每次建立新的snapshot的时候,这个事件会触发,根据个人观察,大概建立了snapshot 15分钟以后,他会扫描这个volume相关的snapshot,若是有标记的话,就根据设定的阈值进行删除旧的snapshot
设定删除的阈值,要么根据天数,要么根据总的个数
建立好的样子
最后看看如何tag,点开一个EC2,进行标记
根据我设定的时间 他会自动备份,在生成的snapshot上,咱们能够看见对应的信息
若是咱们设定了多个不一样task template的stack,咱们在进行标记的时候能够用逗号进行区分
豆子通常是在cloudtrail里面查看相关的记录,不过能够看见日志比较凌乱
好在AWS提供了Athena,能够把cloudtrail的日志转换成table,而后经过sql语句来查询