ラピッドスタディAWS 〜 1.AWS SDK for Rubyの導入

ラピッドスタディAWSの2稿目の記事です。
前回は、ラピッドスタディAWS 〜 0.はじめに - toyamarinyon's diaryでした。

今回は実作業のファースト・ステップとして、AWS Command Lint Tool(以下AWS CLI)を導入する予定でした。
が、AWS SDK for Rubyの導入に変えました。
というのも、AWS CLIはPythonで書かれているんですが、Python全然使ったことなくて、AWSの前に、言語の学習コストがかかりそうで厳しいなーと思いました。
一方でRubyは、railsとかsinatraとかchefなんかを勉強した時ににそれなりに使っていて、ひと通り問題ないかなと思っていています。ちなみにAWS SDKは他にもたくさんの言語があるので、自分の好きなやつでやるのがいいのかなーと思います。便利な時代だなー。
ただAWS CLIとAWS SDK for xxxでできることに違いがあったら嫌ですよね。どうなんやろ。
(ちょっと調べた感じEC2とかVPCとか直近やりたいところは問題無さそうなので、いったんOKです。)

それでは、早速導入してみましょう。
AWS公式のチュートリアルではシステムワイドなrubyを使っていて、ライブラリもグローバルに入れていますが、今回はrbenvでrubyを使い、ライブラリもグローバルには入れず、bundlerで管理したいと思います。
一言で言うとモダンな感じで導入するよってことですね。

rbenvとかbundlerについては説明が長くなるのでググってください。

Gemfileの作成と、bundle install

作業用のディレクトリを切ってGemfileを作成、あとはbundle installでOKですね。

$ pwd
> /home/tamurine/
$ mkdir aws-ruby && cd aws-ruby
$ pwd
> /home/tamurine/aws-ruby
$ echo -e "source 'https://rubygems.org'\n\ngem 'aws-sdk'"> Gemfile
$ cat Gemfile
source 'https://rubygems.org'

gem 'aws-sdk'

$ budle install --path vendor/bundle

次に接続確認用のスクリプトをこんな感じで作成
S3のオブジェクトを作り、テスト用のBucketsを作り、アカウントが持っているBucketsを一覧で表示します。

$ cat hello_aws.rb
require 'aws-sdk'

AWS.config(
	:access_key_id => 'YOUR_ACCESS_KEY_ID', 
	:secret_access_key => 'YOUR_SECRET_ACCESS_KEY'
)

s3 = AWS::S3.new
s3.buckets.create('UNIQ_BUCKET_NAME')

s3.buckets.collect(&:name).each do |bucket|
	p bucket
end

ACCESS_KEY,SECRET_ACCESS_KEYは自分のもので置き換えてくださいね。また、バケット名もユニークな名前になるようにしてください。
ここでは"HELLO_AWS_RUBY_20130801"というバケット名にしたとします。
で、これを実行すると、、

$ bundle exec ruby hello_aws.rb
HELLO_AWS_RUBY_20130801

できたー!
ここまで30分かかってない!まさしく、RAPID Study!
すごいなー。これでrubyでAWSをごにょごにょできちゃうわけですよ。

ManagementConsoleより楽じゃん!

ということで、次回はEC2を起動してみたいと思います。