2012-10-23 75 views
10

亞馬遜是否支持可爲每個AMI/EBS配置的任何類型的自動計劃快照?如何爲每個AMI/EBS設置自動計劃快照?

我的目標是定期對每個AMI進行備份,而不依賴於外部腳本和類似的東西。

+0

您是否更關心備份EBS卷或者是否定期從機器創建新的AMI?你真的想要備份什麼? –

+0

我更關心備份EBS卷。 –

+0

亞馬遜沒有那個內置的。但是你可以設置cronjob來完成任務。你可以閱讀我的解釋如何在這裏設置10個步驟:http://stackoverflow.com/questions/7003409/automating-linux-ebs-snapshots-backup-and-clean-up/22666932#22666932 –

回答

7

您可以使用AWS命令行工具自動執行EBS快照。只需計劃一個定時任務或類似的操作,即可在您的ebs捲上以所需間隔運行ec2-create-snapshot命令。

如果你不想安裝命令行工具,你也可以通過http進行API調用來做同樣的事情。

有關創建EBS快照的更多信息,請參閱鏈接。

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html

5

使用這種Python代碼

from boto.ec2.connection import EC2Connection 
from datetime import datetime 
import sys 

if __name__ == '__main__': 

    conn = EC2Connection('aws_access_key_id', 'aws_secret_access_key') 

    volumes_id={'vol-2354534'} 

    description = 'Created by crontab at ' + datetime.today().isoformat(' ') 

    for vol_id in volumes_id : 

     snapshot = conn.create_snapshot(vol_id ,description)   
0

AWS管理控制檯沒有內置自動化創建維護EBS快照。您可以嘗試使用腳本,基本自動創建EBS快照的第三方雲管理控制檯,或者適用於EC2實例的基於快照的備份和恢復管理解決方案& EBS卷,可在AWS市場或其他地方獲得。

1

我創建了一個小型的Perl程序,https://github.com/sciclon/EBS_Snapshots

一些特點:*程序在後臺模式或腳本模式(crontab中)

  • 運行後,可以只選擇了本地連接的卷或遙控器,以及

  • 您可以定義日誌文件

  • 您可以定義每個卷的數量Ø ˚F快照

  • 您可以定義爲每個卷它們之間的頻率

  • 頻率和數量會像一個「循環」,當它到達移除最早的快照限制。

  • 如果您有6個快照,並且您修改3中的數量,您可以一步重新調整數量,這意味着您可以自動重新調整數量。

  • 您可以定義一個「prescript」執行,您可以在執行快照之前添加您的代碼以執行快照,例如您想嘗試卸下卷或停止某些服務,或者檢查實例負載。父進程將等待退出代碼,「0」表示成功,您可以根據退出代碼來定義是否繼續。

  • 可以定義一個「後記」執行取快照(例如電子郵件,告訴你這件事)後執行任何以股代息

  • 您可以添加「保護快照」跳過您定義的快照,我的意思是他們將在「只讀」,他們將永遠不會被抹去。

  • 當它以守護程序模式運行時,腳本可以「隨時」重新配置腳本,該腳本接受信號和IPC。

  • 它有一個「本地緩存」,以避免多次請求API。您可以添加或修改配置文件中的任何配置並重新加載而不會中止進程。