はじめまして
職人見習いの磯辺です
cloudpackに参加してまだ間もなく、AWSの経験もまだ浅いですが、これまで行ってきたサーバの運用の経験を生かしつつ、従来のサーバ運用とは違うAWSらしさに慣れて行きたいと思っています。
よろしくお願いいたします。
さて、AWSの特徴のひとつとして、APIを使い、プログラムなどからインフラを扱えるというものがあります。
各種プログラミング言語で使える公式のSDKのうちのひとつ、AWS SDK for Rubyが、今年の7月14日にリリースされましたので、早速試してみたいと思います。
まずはRubyを導入します。今回はWindowsにインストールします。
AWS SDK for Rubyが対応しているRubyのバージョンは、1.8.7以降です。
今回は、RubyInstaller for Windowsにある最新版である、Ruby 1.9.2のパッケージを使います。
Ruby本体の他に、AWS SDK for Rubyが必要としているgemのパッケージのインストールに必要な
Development Kitをダウンロードします。
インストーラを起動して、インストールを開始します。
途中、オプションを指定する箇所では、[Add Ruby executables to your PATH]にチェックを入れます。
他はお好みで設定します。
Rubyがインストールできたら、Development Kitをインストールします。
exeファイルを実行すると、ファイルが展開されます。
コマンドプロンプトで展開されたディレクトリにcdして、ruby dk.rb initを実行します。
c:Ruby192devkit>ruby dk.rb init [INFO] found RubyInstaller v1.9.2 at C:/Ruby192 Initialization complete! Please review and modify the auto-generated 'config.yml' file to ensure it contains the root directories to all of the installed Rubies you want enhanced by the DevKit.
次に、ruby dk.rb installを実行します。
c:Ruby192devkit>ruby dk.rb install [INFO] Updating convenience notice gem override for 'C:/Ruby192' [INFO] Installing 'C:/Ruby192/lib/ruby/site_ruby/devkit.rb'
これで、Development Kitが導入できました。これで、RubyのパッケージシステムであるRubyGemsを使って、
AWS SDK for Rubyをインストールする準備ができました。
AWS SDK for Rubyのgemパッケージ名は、aws-sdkです。gem install aws-sdkを実行します。
すべて完了するまでに、少し時間がかかります。
c:>gem install aws-sdk Fetching: uuidtools-2.1.2.gem (100%) Fetching: crack-0.1.8.gem (100%) Fetching: httparty-0.7.8.gem (100%) When you HTTParty, you must party hard! Fetching: nokogiri-1.4.7-x86-mingw32.gem (100%) Fetching: json-1.5.3.gem (100%) Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... Fetching: aws-sdk-1.0.2.gem (100%) Successfully installed uuidtools-2.1.2 Successfully installed crack-0.1.8 Successfully installed httparty-0.7.8 Successfully installed nokogiri-1.4.7-x86-mingw32 Successfully installed json-1.5.3 Successfully installed aws-sdk-1.0.2 6 gems installed Installing ri documentation for uuidtools-2.1.2... Installing ri documentation for crack-0.1.8... Installing ri documentation for httparty-0.7.8... Installing ri documentation for nokogiri-1.4.7-x86-mingw32... Installing ri documentation for json-1.5.3... Installing ri documentation for aws-sdk-1.0.2... Installing RDoc documentation for uuidtools-2.1.2... Installing RDoc documentation for crack-0.1.8... Installing RDoc documentation for httparty-0.7.8... Installing RDoc documentation for nokogiri-1.4.7-x86-mingw32... Installing RDoc documentation for json-1.5.3... Installing RDoc documentation for aws-sdk-1.0.2...
これでインストールできました。
では、さっそく使ってみましょう。今回はs3にbucketを作成して、公開されるファイルをアップしてみます。
まず、config.ymlという名前でファイルを作成し、下記のような内容にします。
your_access_keyには、あなたの使用しているAWSアクセスキーを、your_secret_keyには、
同様にAWSシークレットアクセスキーを、それぞれ記載します。
access_key_id: your_access_key secret_access_key: your_secret_key
config.ymlと同じディレクトリに、s3upload.rbというファイルを作成して、下記の内容を記載します。
bucket_nameには、任意のバケット名を指定します。
upload_filenameには、アップロードしたいファイル名を指定します。
# s3upload.rb bucket_name = 'rubysdktest-s3upload-20110727' upload_filename = 'cloudpack.gif' require 'aws-sdk' AWS.config(YAML.load(File.read('config.yml'))) s3 = AWS::S3.new bucket = s3.buckets.create(bucket_name) basename = File.basename(upload_filename) s3_obj = bucket.objects[basename] s3_obj.write(:file => upload_filename, :acl => :public_read) puts s3_obj.public_url.to_s
それでは、作成したコマンドを実行してみましょう。
c:>ruby s3upload.rb https://rubysdktest-s3upload-20110727.s3.amazonaws.com/cloudpack.gif
コマンドが成功すれば、ファイルがアップロードされ、そのファイルのURIが表示されますので、
ブラウザでアクセスしてみましょう。
アップロードされたファイルがブラウザに表示されました。
今回の例はとても簡単なものなので、AWS Management Consoleを使うのと手間はあまり変わらないと思いますが、一度に大量に扱う場合などにはとても便利だと思います。
今後も、AWS SDK for Rubyについて記事にして行こうと思います。
※この記事は、なかの人(muramasa64)が書いています。