Created
July 28, 2011 02:16
-
-
Save okochang/1110788 to your computer and use it in GitHub Desktop.
run and stop EBS type instance with AWS-SDK for Ruby
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
## aws-sdk for rubyを使用したEC2インスタンス起動スクリプト | |
## 引数に指定する値はリージョンURL、インスタンスID、固定IPとなります | |
## インスタンスのステータスを判定して起動もしくは停止をします | |
## 引数で指定するURLの例は以下の通りです | |
## ec2.us-east-1.amazonaws.com | |
## ec2.us-west-1.amazonaws.com | |
## ec2.eu-west-1.amazonaws.com | |
## ec2.ap-southeast-1.amazonaws.com | |
## ec2.ap-northeast-1.amazonaws.com | |
require 'rubygems' | |
require 'aws-sdk' | |
## アクセスIDとシークレットアクセスキーを指定します。 | |
ACCESS_KEY = 'SET_UP_YOUR_ACCESS_KEY' | |
SECRET_KEY = 'SET_UP_YOUR_SECRET_KEY' | |
## 引数チェック | |
unless ARGV.size == 3 | |
puts "Usage: #{$0} <aws_region_url> <instance-id> <elastic-ip>" | |
exit 0 | |
end | |
## 引数から起動、停止するインスタンスの設定を行います。 | |
aws_region = ARGV[0] | |
instance_id = ARGV[1] | |
elasticip = ARGV[2] | |
## EC2インターフェースを作成するために認証を行います | |
AWS.config(:access_key_id => ACCESS_KEY, :secret_access_key => SECRET_KEY, :ec2_endpoint => aws_region) | |
ec2 = AWS::EC2.new | |
## 引数から対象インスタンスとElasticIPを設定します | |
target_instance = ec2.instances[instance_id] | |
## 対象インスタンスのステータスを確認します | |
instance_status = target_instance.status | |
## ステータスが停止中ならばインスタンスを起動してEIPを割り当てます | |
if instance_status == :stopped then | |
target_instance.start | |
sleep 1 while target_instance.status == :pending | |
target_instance.associate_elastic_ip(elasticip) | |
## ステータスが起動中ならばインスタンスを一時停止します | |
elsif instance_status == :running then | |
target_instance.stop | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment