こんにちは! JQです。
前回は『EC2編~lsyncdでリアルタイムにファイル同期②~』ということで、lsyncdを利用して別サーバ間で自動同期処理をしてみました。
今回は『SDK編~ruby SDKでスナップショットコピー~』と題して、ruby SDKを利用して別リージョンにスナップショットをコピーしてみたいと思います。
スナップショットコピー
1.スナップショットコピー
スクリプトを利用してスナップショットをコピーしてみます。
今回は[ap-northeast-1]から[ap-southeast-1]にコピーしてみます。
※移す先をendpoint等で選択しておく必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' snapshotid = "snap-xxxxxxx" ec2 = AWS:: EC2.new( :region => 'ap-southeast-1', :ec2_endpoint => 'ec2.ap-southeast-1.amazonaws.com', :access_key_id => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) |
1 2 3 4 5 |
ec2.client.copy_snapshot( :source_region => "ap-northeast-1", :source_snapshot_id => snapshotid, :description => "Backup_CreateTime:#{Time.now}" ) |
2.確認
実際に試してみます。
1 |
# ruby snapshotcopy.rb |
[ap-southeast-1]にあるスナップショットを「description」で絞り込んで表示してみます。
1 |
#!/usr/bin/env ruby |
1 2 |
require 'rubygems' require 'aws-sdk' |
1 2 3 4 5 6 |
ec2 = AWS:: EC2.new( :region => 'ap-southeast-1', :ec2_endpoint => 'ec2.ap-southeast-1.amazonaws.com', :access_key_id => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) |
1 2 3 |
ec2.snapshots.with_owner("self").filter("description","Backup_*").each do |s| puts s.id,s.description,s.status end |
1 2 3 4 |
# ruby snapshotcopy.rb snap-xxxxxxx Backup_CreateTime:2013-12-26 19:49:55 +0900 pending |
無事作成されています!
いかがでしたでしょうか?
次回もお楽しみに!