こんにちは!4月に入社したばかりのAWSチームの新人こと年寄りザビオです!

Dynamoが東京にきて、マイスターシリーズでも取り上げられましたが皆さん使ってますか?
Dynamo宮崎バージョン
node.jsからDynamoを操作するクライアントを見つけましたのでご紹介します!
先に注意しておきますが、私はワイルドとは全く無縁の関係でございます。改めてご認識ください。
今回利用したAMIは(amzn-ami-pv-2012.03.1.x86_64-ebs (ami-e47acbe5))です。
まずはnode.jsに必要な環境構築を行います。
yum install openssl-devel
yum install gcc-c++
yum install make
その後、最新のnode.jsをインストールし、展開します。
現在の最新バージョンはv0.6.15でした。
wget http://nodejs.org/dist/latest/node-v0.6.15.tar.gz
tar -zxvf node-v0.6.15.tar.gz
./configure
make
make install
インストールが終わったら「node -v」でバージョン表示されることを確認してください。
インストールが終わっていてバージョン確認できない場合はPATHが通っていないのでPATHを通してください。
自分の場合はtmpにてファイルダウンロードをしたので、シンボリックリンクを下記のように貼りました。
ln -s /tmp/node-v0.6.15/out/Release/node /usr/sbin/node
つぎに「npm」をインストールします。
npmはPHPのPEAR的なもので、いろんなモジュール(フレームワークも)簡単にインストールできます。
curl http://npmjs.org/install.sh | sh
インストールが終わったら、いよいよクライアントツール「dynode」をインストールします。
npm install dynode
これだけでインストールできます。
このままでも利用できますが、regionが「East」のままなので、「Tokyo」にしましょう。
編集ファイルは下記ファイルです。
- /node_modules/dynode/lib/dynode/request.js
編集箇所は13行目です。
【 request.jsの編集】
var http = require("http"),
_ = require("underscore"),
signer = require('./request-signer'),
AmazonError = require('./amazon-error'),
URL = require('url'),
STS = require('./sts').STS;
var Request = exports.Request = function Request(config) {
this.sts = new STS(config);
this.config = _.defaults(config, {
prefix : "DynamoDB_20111205.",
host : "dynamodb.us-east-1.amazonaws.com"←(編集前)
host : "dynamodb.ap-northeast-1.amazonaws.com"←(編集後)
});
実際にDynamoDBにテーブルを作成してみましょう。
var dynode = require('dynode');
dynode.auth({accessKeyId: "***", secretAccessKey: "***"});
var opts = {read: 5, write: 5, hash: {wild: String}, range: {percentage: Number}};
dynode.createTable("zabbio", opts, console.log);
詳細につきましては本家のreadmeに記載がございます。
本家のサイト
それでは実行してみます。
実行後、下記のメッセージがかえってきました。
null { TableDescription:
{ CreationDateTime: ****,
KeySchema: { HashKeyElement: [Object], RangeKeyElement: [Object] },
ProvisionedThroughput: { ReadCapacityUnits: 5, WriteCapacityUnits: 5 },
TableName: 'zabbio',
TableStatus: 'CREATING' } }
Management Consoleを見てみると、

確かにできていますねー。
node.js(SocketStream)を触る機会が多く、本ライブラリを使用していますが
めちゃめちゃ使い勝手良く重宝しています。
次回(要望があればw)は作成したnodejsの利用例など紹介できればいいなと思います。
他にもたくさんのライブラリがあるようです。こちらの方も合わせてご確認ください!
Amazon Web Services ブログ