利用環境
- Ruby 2.1.2
- aws-sdk 2.1.11
Gemインストール
gem 'aws-sdk'
EC2の操作
Clientインスタンス生成
各種EC2の操作は、Clientインスタンスを利用して行う。
require 'aws-sdk'
access_key ="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
secret_key ="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
region = "ap-northeast-1"
client = Aws::EC2::Client.new(
credentials: Aws::Credentials.new(access_key , secret_key),
region: region
)
インスタンスの停止
client.stop_instances({
dry_run: false,
instance_ids: ["i-1234567" ],
})
# 停止まで待つ。5秒間隔で15回
client.wait_until(:instance_stopped, instance_ids: [ 'i-1234567']) do |waiter|
waiter.interval = 5
waiter.max_attempts = 15
end
インスタンスタイプの変更
インスタンスタイプを指定してインスタンスを変更する。変更対象のインスタンスは停止している必要がある。
# m1.small に変更
instance_type = Aws::EC2::Types::AttributeValue.new(value: "m1.small")
client.modify_instance_attribute({
dry_run: false,
instance_id: "i-1234567",
instance_type: instance_type,
})
インスタンスの開始
client.start_instances({
dry_run: false,
instance_ids: ["i-1234567" ],
})
# 起動まで待つ。5秒間隔で15回
client.wait_until(:instance_running, instance_ids: [ 'i-1234567']) do |waiter|
waiter.interval = 5
waiter.max_attempts = 15
end