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語句來查詢