アマゾンのウェブデータベースサービス「SimpleDB」、公開ベータテストへ

ニュース - CNET Japan

SimpleDBをより使いやすくするため、現在データベースで幅広く使われているSQLに似た新しいインターフェースを発表する計画だと、Amazon.comは話している。同社はまた、複数アイテムのアップロードがより簡単になる仕組みも計画している。
Amazon SimpleDB のパフォーマンス測定メモ : a++ My RSS 管理人ブログ

この SimpleDB は REST APISOAP から制御します。
そのため、Amazon S3 と同じく EC2 から利用する必要はありません。
が、Amazon EC2 から使うと「高速に」アクセスできる、という噂もあり、EC2 とセットで試してみました。

EC2 は一番小さな Small Instance を利用し、アイテムの追加、アイテムの取得、アイテムの検索、アイテムの削除を行ってみました。

結果は以下の通り。1000リクエストあたりの処理時間(秒・平均値)です。
アイテムは、属性を 3 つ持たせた合計 100バイトほどの小さなものを利用しました。
また検索は、[属性値 > 数値] という単純なものを用いています。

・アイテムの追加 - 116 sec
・アイテムの取得 - 23 sec
・アイテムの検索 - 29 sec
・アイテムの削除 - 107 sec

この数値を見ると、リアルタイムなアプリケーションでガリガリ(たとえばセッション情報の管理とか)というほど速くはないですね。
ただ、REST API なので、ソケットを非ブロックモードで開いて並列にクエリを投げるなどの工夫をすることで、もう少しクリティカルな用途にも使える可能性があると思います。

なお、REST API は単純に file_get_contents() で実施したのですが、https://sdb.amazonaws.com/ への https 接続のオーバーヘッドだけを測定してみると、1000リクエストあたり 15 秒かかっていることがわかりました。EC2以外のサーバーからより速いことは確かです。

データ量が少ないので微妙ではありますが、このパフォーマンスを念頭において設計するといろいろと使い道があると思います。

永続ストレージサービスである Amazon EBS も同時にはひとつのインスタンスにしか接続できないので、複数インスタンスからガンガン使える SimpleDB はそれはそれとして便利ではあると思うので。