AWS Ops Automation 和自動化備份

背景

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 和自動化備份

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章