Snapshot
各ボリュームのスナップショットを
作成する
ec2.volumes.each do |v|
v.create_snapshot(
"from #{v.id} at #{Time.now}")
end
13 36
15.
Security Group
IPアドレスを一括で置換する
src_ip = 'x.x.x.x/32'
dst_ip = 'y.y.y.y/32'
ec2.security_groups.each do |src_sg|
puts "#{src_sg.id}, #{src_sg.name}"
src_sg.ip_permissions.each do |p|
if p.ip_ranges.include? src_ip
src_sg.authorize_ingress(p.protocol, p.port_range, dst_ip)
src_sg.revoke_ingress(p.protocol, p.port_range, src_ip)
end
end
end
14 36
16.
S3
期間限定URIを生成
s3 = AWS::S3.new
b = s3.buckets['your-bucket-name']
o = b.objects['object-name']
puts o.url_for(:read, :expires => 60*60*24*31)
一ヶ月間有効なURLが生成される
15 36
最新のSnapshot
as = []
ec2.volumes.each do |v|
v.attachments.each do |a|
as << a
end
end
ss = {}
r.snapshots.sort {|a,b|
b.start_time <=> a.start_time
}.map do |s|
ss[s.volume_id] = s unless ss.include? s.volume_id
end
as.each do |a|
vid = a.volume.id
if ss.include? vid
puts "#{a.instance.id} => (#{ss[vid].start_time})"
end
end
18 36
AWS.memoize
AWS.memoize do
ss = {}
r.snapshots.sort {|a,b|
b.start_time <=> a.start_time
}.map do |s|
ss[s.volume_id] = s unless ss.include? s.volume_id
end
end
ソートしている部分を
AWS.memoizeで囲むだけ
20 36
22.
Snapshotの一覧
自分のSnapshotの一覧が欲しい
ec2.snapshots.each do |s|
# ...
end
これだと、publicなSnapshotも取
21
れてしまう! 36
23.
AWS Developer
Forum
Forum: Ruby Development
https://forums.aws.amazon.com/forum.jspa?forumID=125
22 36