2017-02-15 24 views
0

私はAMIイメージとして増分バックアップを持つAmazonスクリプトを探していました。 たとえば、毎日午後11時59分に自分のAMIをバックアップしたいと思い、過去5日間のバックアップが必要です。 同じインスタンスの他の古いAMIは削除しないでください。増分Amzaon AMIバックアップ

ご協力いただければ幸いです。

+0

スクリプトを持っていて、それを改善したいのですかスクリプト全体が必要ですか? – helloV

+0

Amazonディスクイメージのスナップショットについて私が理解しているのは、同じブロックのストレージを共有する点で「増分」であるということです。それはあなたのために働かないのですか? http://stackoverflow.com/questions/6469556/amazon-ebs-snapshots-as-incremental-backups?rq=1 – Thilo

答えて

0

Amazon Machine Images (AMIs)は、Amazon EC2インスタンスのブートボリュームのコピーで、必要に応じて追加のボリュームです。既存のインスタンスからCreate Imageコマンドを使用して作成できます。

AMIは、Elastic Block Store (EBS) Snapshotsとして保存され、追加のAMIメタデータが追加されます。 EBSスナップショットは増分バックアップです。つまり、最新のスナップショットの後に変更されたデバイス上のブロックのみが保存されます。したがって、AMIも事実上増分的である。 AWS Command-Line Interface (CLI)経由AMIの

作成は非常に簡単です:

aws ec2 create-image --instance-id i-1234567890abcdef0 --name "My server" --description "An AMI for my server" 

これは、スケジュールされたタスク(Windows)またはcronジョブ(Linuxの)として実行することができます。

最後にn AMIまたはAMI(過去の日以内に作成された)は、AMIを同じ記述で検索し、日付でソートし、古いものを削除するスクリプトを作成するだけです。例えば:Script to create daily AMI of AWS server and delete AMI older than n no of days(しかしPythonのようなものではもっと簡単なスクリプトでしょう)。

また、はスナップショットを撮影することもできます。違いは、スナップショットはボリュームのバックアップであり、AMIは新しいインスタンスの直接起動に使用できるという点です。最後に、

#!/usr/bin/env python 

import boto.ec2 

MAX_SNAPSHOTS = 2 # Number of snapshots to keep 

# Connect to EC2 in this region 
connection = boto.ec2.connect_to_region('YOUR-REGION') 

# Get a list of all volumes 
volumes = connection.get_all_volumes() 

# Create a snapshot of each volume 
for v in volumes: 
    connection.create_snapshot(v.id) 

    # Too many snapshots? 
    snapshots = v.snapshots() 
    if len(snapshots) > MAX_SNAPSHOTS: 

    # Delete oldest snapshots, but keep MAX_SNAPSHOTS available 
    snap_sorted = sorted([(s.id, s.start_time) for s in snapshots], key=lambda k: k[1]) 
    for s in snap_sorted[:-MAX_SNAPSHOTS]: 
     connection.delete_snapshot(s[0]) 

:ここ

は地域内のすべてのボリュームのスナップショットを取る(あなたは、特定のインスタンスに対してのみスナップショットボリュームにそれを修正することができる)と最後のnスナップショットを保持するスクリプトですAmazon CloudWatch Eventsは自動的にEBSスナップショットを作成するようにスケジュールできます(ただし、古いものは削除されません)。参照:Tutorial: Schedule EBS Snapshots Using CloudWatch Events