AWS 的EC2備份可以有很多方法,如果管理員熟悉腳本和Lambda,完全可以通過Cloudwatch的事件來定時(shí)備份,甚至可以直接在Windows的計(jì)劃任務(wù)里面跑個(gè)簡單的PowerShell腳本都能實(shí)現(xiàn)。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的邵原網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
AWS官方也提供了一個(gè)一攬子的解決方案叫做 ops automation,這個(gè)很適合對于腳本完全不懂的管理員,配置好以后管理員通過對應(yīng)的tag可以進(jìn)行靈活的自定義操作。
下面這個(gè)截圖是官方的示意圖
具體的解釋和配置向?qū)У倪^程可以參考這個(gè)鏈接,不過目前暫不提供中文翻譯
https://aws.amazon.com/solutions/ops-automator/
對于普通的用戶來說,看了這個(gè)示意圖能從一個(gè)高層抽象的角度去理解他的過程就行了,但是不需要去具體了解如何調(diào)用的。更重要的是知道如何去配置和使用。
簡單的解釋一下安裝和配置的過程,通過Cloudformation我們可以安裝一個(gè)叫做 AWS Ops Automator的stack 模板(我稱為主模板),這個(gè)stack會自動配置一系列的微服務(wù),包括Lambda函數(shù),DynamoDB數(shù)據(jù)庫等等,同時(shí)他會自動創(chuàng)建一個(gè)S3的bucket,并在這個(gè)bucket里面保存了6個(gè)stack 模板文件,剛好對應(yīng)他的6個(gè)任務(wù)功能:創(chuàng)建快照,拷貝快照,刪除快照,替換實(shí)例,更改實(shí)例類型和通過cpu利用率對實(shí)例進(jìn)行標(biāo)記。 如果我們需要他的某一個(gè)功能,那我們就需要通過對應(yīng)的模板文件再次添加一個(gè)新的stack(我稱為任務(wù)模板)。比如說,如果我們需要實(shí)現(xiàn)一個(gè)定時(shí)創(chuàng)建快照的功能,我們需要首先配置一個(gè)主stack,然后配置一個(gè)定時(shí)創(chuàng)建快照的任務(wù)stack,然后通過這個(gè)主模板來調(diào)用這個(gè)任務(wù)模板
那么怎么調(diào)用這些功能呢?我們在對應(yīng)的EC2或者snapshot上面進(jìn)行tag標(biāo)記,將AWS Ops Automator的tag name賦予key,然后將對應(yīng)的任務(wù)stack的tag name賦予 value,他就會通過主stack去調(diào)用對應(yīng)的task stack了。
這個(gè)邏輯如果光看文字是比較迷惑的,最容易理解的方法就是直接動手操作一次。舉個(gè)栗子,我打算實(shí)現(xiàn)每天定時(shí)在8:30,11:30,15:30和20:30這4個(gè)點(diǎn)進(jìn)行快照備份,然后所有的快照超過30天以上的自動刪除。下面看看怎么來實(shí)現(xiàn)的。
首先安裝我們的主模板,安裝的時(shí)候注意在右上角選定自己需要的region,他的安裝向?qū)J(rèn)是在US East安裝的,一定要記得修改。
配置stack的內(nèi)容,關(guān)鍵的東西是taskscheduler tagname,這個(gè)是我們后面添加tag的時(shí)候,key的名字。
點(diǎn)擊下一步
Review一下
記得勾選最下面的IAM選項(xiàng)
然后他就會自動開始配置相關(guān)的資源和微服務(wù)
狀態(tài)變?yōu)镃omplete之后,點(diǎn)擊output,查看對應(yīng)的S3 bucket名稱
點(diǎn)開對應(yīng)的bucket看看,里面有2個(gè)目錄,AccountsConfiguration是用來給其他賬號配置IAM的權(quán)限,如果我們就用這個(gè)主賬號操作的話可以暫時(shí)忽略;TaskConfiguration里面包括了6個(gè)Task Template,也就是我們需要操作的任務(wù)模板。
點(diǎn)進(jìn)去看看
點(diǎn)開Ec2CreateSnapshot.template,記錄他的URL地址
然后回到Cloudformation里面,通過這個(gè)模板創(chuàng)建一個(gè)新的stack
根據(jù)自己的需要進(jìn)行設(shè)置,這里關(guān)鍵是Task interval需要使用cron格式來進(jìn)行配置
其他的自定義屬性,比如時(shí)區(qū)
以及在創(chuàng)建的Snapshot上面,自動添加對應(yīng)的tag,注意這個(gè)Delete30是我下一步要?jiǎng)?chuàng)建的stack的名字,他的作用是自動刪除快照
稍等片刻,這個(gè)備份的stack就準(zhǔn)備好了
創(chuàng)建配置Delete30 stack
這個(gè)步驟和上面基本類似,唯一的區(qū)別是我們需要使用Ec2DeleteSnapshot.template
相關(guān)的配置如下所示
時(shí)區(qū)
注意這個(gè)刪除的操作并不是根據(jù)時(shí)間來的,而是每次創(chuàng)建新的snapshot的時(shí)候,這個(gè)事件會觸發(fā),根據(jù)我的觀察,大概創(chuàng)建了snapshot 15分鐘之后,他會掃描這個(gè)volume相關(guān)的snapshot,如果有標(biāo)記的話,就根據(jù)設(shè)定的閾值進(jìn)行刪除舊的snapshot
設(shè)定刪除的閾值,要么根據(jù)天數(shù),要么根據(jù)總的個(gè)數(shù)
創(chuàng)建好的樣子
最后看看如何tag,點(diǎn)開一個(gè)EC2,進(jìn)行標(biāo)記
根據(jù)我設(shè)定的時(shí)間 他會自動備份,在生成的snapshot上,我們可以看見對應(yīng)的信息
如果我們設(shè)定了多個(gè)不同task template的stack,我們在進(jìn)行標(biāo)記的時(shí)候可以用逗號進(jìn)行區(qū)分
豆子一般是在cloudtrail里面查看相關(guān)的記錄,不過可以看見日志比較凌亂
好在AWS提供了Athena,可以把cloudtrail的日志轉(zhuǎn)換成table,然后通過sql語句來查詢