« 【AWS発表】 マイクロソフト ライセンス モビリティをAWSにも拡張。各種Windowsサーバー アプリケーションをアマゾンクラウド/オンプレミス上で動作可能に。 | メイン | 【AWS発表】 Amazon Simple Email Serviceが添付ファイルをサポート »

【AWS発表】 AWS SDK for Rubyを提供開始

Rubyは"開発者の喜び"のために最適化された素晴らしい言語です。日本人である、まつもとゆきひろ氏が開発したこともあり、日本の開発者の中でも最も人気の高い言語の一つです。じつは、Rubyと、EC2やS3のようなアマゾンクラウドは、共通のゴールを持っています。開発者が、開発のスピードを鈍化させる煩雑な作業を心配することなく、イノベーティブな製品を開発するのを助ける、ということです。

本日の発表は、RubyとAWSの関係をより緊密にする、公式のAWS SDK for Rubyです!


AWS SDK for Ruby gem
 

このSDKは、AWSのコンピュート、ストレージ、ミドルウェアサービス(認証、リクエストのリトライ、XMLプロセッシング、エラーハンドリング)に対応しています。このSDKから、Amazon EC2S3SQSSNSSimple Email Serviceにアクセスすることができ、SimpleDBのためのオブジェクト・リレーショナル・マッパーを含んでいます。我々のゴールはRubyディベロッパーに公式にサポートされ最適化された開発環境を提供することで、アプリを作成するのをより簡単にすることなのです。


SDKの使いはじめ

AWS SDK for Ruby gemをコマンドラインからインストールできます:

sudo gem install aws-sdk

これにより、AWS::EC2、AWS::S3といった特定のAWSクラスにアクセスすることができます。セキュリティ証明書を特定することで、すぐにはじめることができます。簡単なYAMLファイルを用いると良いでしょう:

access_key_id: your_access_key 
secret_access_key: your_secret_key 

その後、アクセス証明書をロードし、リクエストを発行することができます。例えば、下記のコードで、S3に新しいバケットを作成し、パブリックなリードアクセスに設定して、ファイルをアップロードできます:

config = YAML.load(File.read(config_file))
AWS.config(config)

s3 = AWS::S3.new
bucket = s3.buckets.create(bucket_name)

basename = File.basename(file_name)
o = b.objects[basename]
o.write(:file => file_name, :acl => :public_read)

より詳細な情報は、SDK for Ruby detail page(英語)を参照ください。


Railsで用いる

 AWS SDK for Rubyは、AWS::Recordと呼ばれる、Amazon SimpleDBへのORMインターフェースを含んでいます。これを用いて、どのようにデータを保存できるか見てみましょう。この例では、非常に簡単なソーシャルブックマークサイトを作成しています。

はじめに、新しいRailsアプリケーションを作成します。AWS for Rubyのドキュメンテーションでは、どのようにアプリをセットアップするか記述されていますが、下記の簡単なアプリケーションテンプレートを用いることで、より簡単にセットアップできます:

rails new tagcloud -m http://ruby-sdk.s3.amazonaws.com/aws.rb

証明書をconfig/aws.ymlに加え、最初のmodelを作成できます:

rails generate aws_record bookmark

app/models/bookmark.rbを開き、モデル属性(model attribute)の定義を開始します。SimpleDBは、分散キー・アトリビュート・ストアなので、スキーマ等は必要としません。モデルの属性を定義するだけで良いのです。下記のクラス定義を加えます:

string_attr :title
string_attr :url
string_attr :tags, :set => true
timestamps 

これにより、Bookmarkクラスに、title、URL、tagsのコレクションという3つのstring属性を加え、timestampsを追加します。Rakeタスクを用いて、もし事前に存在しなければ、新しいSimple DBのドメイン(テーブルのようなもの)を作成します:

rake aws:create_domains

ActiveRecordを使ったことがある方ならお分かりだと思いますが, 下記のように新しいBookmarkオブジェクトを作成し、その属性を下記のように保存できます:

b = Bookmark.new(
      :title => 'Amazon EC2',
      :url => 'http://aws.amazon.com/ec2',
      :tags => [ 'aws', 'cloud', 'compute'])

b.save 

また、下記のように取得したりアップデートします:

b = Bookmark.find(:first, :where => {:title => 'Amazon EC2'})
b.tags += ['elastic']
b.save

SimpleDBは、高い可用性と耐久性の高いデータストアを提供し、冗長性やレプリケーションやサーバーのことすら考える必要がありません。AWS SDK for Rubyを用いることで、非常に簡単にSimpleDBのドメインを使いはじめることができ、スキーマやデータベースサーバーのことを考えずにデータを永続保存することができるのです!


他の言語のサポート

今回発表のあったRubyの他に、 JavaPHPiOSAndroid.Netにおいて公式のSDKが用意されています。


玉川憲 (@KenTamagawa)

 

コメント

Featured Event

2016年3 月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31