いまさらですがRubyのクラウドAPIであるFog経由でAmazonのSimpleDBを利用する練習として作ったスクリプトをgistにアップロードしておきました。ぼくは自分の写真のデータをバックアップしているAmazon Glacierとの連携や簡単なウェブサービスでの利用を想定していますが、他の誰かの何かの参考になれば。

→ Ruby Fog::AWS::SimpleDB Example – gist

fogはgemで簡単にインストールできます。

#rbenv等で入れている場合
gem install fog

#システムワイドのrubyを使用している場合
sudo gem install fog

20150107時点のコードを以下にも再掲しておきます。(gist上では更新されているかもしれません)

require "fog"
 
#Create a Fog AWS SimpleDB instance
sdb = Fog::AWS::SimpleDB.new(
  :aws_access_key_id => "YOUR_ACCESS_KEY_ID",
  :aws_secret_access_key => "YOUR_SECRET_ACCESS_KEY",
  :region => "ap-northeast-1" #meaning "Tokyo"
)
 
#Create domain
domainName="glacier"
sdb.create_domain(domainName)
 
#Put an item
itemName="sampleItem"
attributes={:color=>"blue", :price=>"500"}
sdb.put_attributes(domainName,itemName,attributes)
 
#
sleep 5
 
#Get the item that was just put
result=sdb.select("select * from #{domainName}")
puts result.body

YOUR_ACCESS_KEY_IDとYOUR_SECRET_ACCESS_KEYは、実際に使用するアカウントのものに変更してください。利用したいregionがTokyoでない場合は:regionも変更してください。AmazonのRegions and Endpointsのページで各regionの名称が整理されているので必要な場合は参照してください。

Region Name Region
US East (N. Virginia) us-east-1
US West (Oregon) us-west-2
US West (N. California) us-west-1
EU (Ireland) eu-west-1
Asia Pacific (Singapore) ap-southeast-1
Asia Pacific (Sydney) ap-southeast-2
Asia Pacific (Tokyo) ap-northeast-1
South America (Sao Paulo) sa-east-1