LoginSignup
7
12

More than 5 years have passed since last update.

RubyでAWS EC2の起動・停止・インスタンスタイプの変更

Last updated at Posted at 2015-08-12

利用環境

  • 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
7
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
12