結構前に一回実行用に作ったものだけど、最近使う機会出たのでここにもメモ。
#!/usr/bin/env ruby require 'aws-sdk' require 'pp' region = 'ap-northeast-1' cred = Aws::SharedCredentials.new Aws.use_bundled_cert! cli = Aws::EC2::Client.new(credentials: cred, region: region) instance_info = cli.describe_instances all_instances = instance_info[0].map do |data| data[:instances].first end all_instances.each do |instance| instance_tags = instance.tags.select{|t| !t.key.start_with?('aws')}.map {|t| {:key => t.key,:value => t.value}} pp "Set Tag :#{instance_tags}" instance.block_device_mappings.map {|b| b.ebs.volume_id}.each {|id| cli.create_tags(resources: [id],tags: instance_tags)} instance.network_interfaces.map {|n| n.network_interface_id}.each {|id| cli.create_tags(resources: [id],tags: instance_tags)} end