AWSOpsAutomation和自动化备份

背景

AWS 的EC2备份可以有很多方法,如果管理员熟悉脚本和Lambda,完全可以通过Cloudwatch的事件来定时备份,甚至可以直接在Windows的计划任务里面跑个简单的PowerShell脚本都能实现。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的邵原网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

AWS官方也提供了一个一揽子的解决方案叫做 ops automation,这个很适合对于脚本完全不懂的管理员,配置好以后管理员通过对应的tag可以进行灵活的自定义操作。

下面这个截图是官方的示意图

AWS Ops Automation 和自动化备份

具体的解释和配置向导的过程可以参考这个链接,不过目前暂不提供中文翻译

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,然后通过这个主模板来调用这个任务模板

那么怎么调用这些功能呢?我们在对应的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天以上的自动删除。下面看看怎么来实现的。

安装配置流程

安装主模板

首先安装我们的主模板,安装的时候注意在右上角选定自己需要的region,他的安装向导默认是在US East安装的,一定要记得修改。

AWS Ops Automation 和自动化备份

配置stack的内容,关键的东西是taskscheduler tagname,这个是我们后面添加tag的时候,key的名字。

AWS Ops Automation 和自动化备份

点击下一步
AWS Ops Automation 和自动化备份

Review一下

AWS Ops Automation 和自动化备份

记得勾选最下面的IAM选项

AWS Ops Automation 和自动化备份

然后他就会自动开始配置相关的资源和微服务
AWS Ops Automation 和自动化备份

状态变为Complete之后,点击output,查看对应的S3 bucket名称

AWS Ops Automation 和自动化备份

点开对应的bucket看看,里面有2个目录,AccountsConfiguration是用来给其他账号配置IAM的权限,如果我们就用这个主账号操作的话可以暂时忽略;TaskConfiguration里面包括了6个Task Template,也就是我们需要操作的任务模板。

AWS Ops Automation 和自动化备份

安装任务模板

点进去看看

AWS Ops Automation 和自动化备份

点开Ec2CreateSnapshot.template,记录他的URL地址
AWS Ops Automation 和自动化备份

然后回到Cloudformation里面,通过这个模板创建一个新的stack

AWS Ops Automation 和自动化备份

AWS Ops Automation 和自动化备份

根据自己的需要进行设置,这里关键是Task interval需要使用cron格式来进行配置

AWS Ops Automation 和自动化备份

其他的自定义属性,比如时区
AWS Ops Automation 和自动化备份

以及在创建的Snapshot上面,自动添加对应的tag,注意这个Delete30是我下一步要创建的stack的名字,他的作用是自动删除快照

AWS Ops Automation 和自动化备份

稍等片刻,这个备份的stack就准备好了

AWS Ops Automation 和自动化备份

创建配置Delete30 stack

这个步骤和上面基本类似,唯一的区别是我们需要使用Ec2DeleteSnapshot.template

AWS Ops Automation 和自动化备份

相关的配置如下所示

AWS Ops Automation 和自动化备份

时区
注意这个删除的操作并不是根据时间来的,而是每次创建新的snapshot的时候,这个事件会触发,根据我的观察,大概创建了snapshot 15分钟之后,他会扫描这个volume相关的snapshot,如果有标记的话,就根据设定的阈值进行删除旧的snapshot

AWS Ops Automation 和自动化备份

设定删除的阈值,要么根据天数,要么根据总的个数
AWS Ops Automation 和自动化备份

创建好的样子

AWS Ops Automation 和自动化备份

Tag标记

最后看看如何tag,点开一个EC2,进行标记

AWS Ops Automation 和自动化备份

根据我设定的时间 他会自动备份,在生成的snapshot上,我们可以看见对应的信息

AWS Ops Automation 和自动化备份

如果我们设定了多个不同task template的stack,我们在进行标记的时候可以用逗号进行区分

查看历史记录

豆子一般是在cloudtrail里面查看相关的记录,不过可以看见日志比较凌乱

AWS Ops Automation 和自动化备份

好在AWS提供了Athena,可以把cloudtrail的日志转换成table,然后通过sql语句来查询

AWS Ops Automation 和自动化备份


分享文章:AWSOpsAutomation和自动化备份
URL网址:http://scyanting.com/article/igdgio.html