自動的にスナップショットを作成する方法
最近暑くて水風呂につかるのがマイブームなzabbioです。
早速ですが、みなさんバックアップはちゃんととってますか?
バックアップをとってなくて、インスタンスが天に召された時以来、バックアップはきちんととるようになりました。
ただ漏れるのは怖いのでスクリプトで自動的に走らせています。
botoを使って定期的にバックアップを取得しています。
環境設定
yum -y install python-devel
wget http://boto.googlecode.com/files/boto-1.9b.tar.gz
tar zxvf boto-1.9b.tar.gz
cd boto-1.9b
python setup.py install
スクリプト作成
vi zabbio.py
#!/usr/bin/python
import sys
import re
from boto import config
from boto import ec2
from boto.ec2.connection import EC2ConnectionAWS_ACCESS_KEY_ID = 'アクセスキーを書いてね'
AWS_SECRET_ACCESS_KEY = 'シークレットアクセスキーを書いてね'
DESCRIPTION = '説明・・・を書いてね'
REGION_NAME = 'ap-northeast-1'if(len(sys.argv) != 3):
print "Usage: ebs-snapshot.py"
sys.exit()
regions = ec2.regions(aws_access_key_id=AWS_ACCESS_KEY_ID,aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
for r in regions:
if r.name == REGION_NAME:
_region=r
conn = EC2Connection(aws_access_key_id=AWS_ACCESS_KEY_ID,aws_secret_access_key=AWS_SECRET_ACCESS_KEY,region=_region)
conn.create_snapshot(volume_id=sys.argv[2], description=DESCRIPTION)
snapshot = {}
for x in conn.get_all_snapshots():
if((x.volume_id == sys.argv[2]) and (x.description == DESCRIPTION)):
tmp = {x.id:x.start_time}
snapshot.update(tmp)
snapshot = sorted(snapshot.items(), key=lambda (k, v): (v, k), reverse=True)
for i in range(int(sys.argv[1]), len(snapshot)):
conn.delete_snapshot(snapshot[i][0])