早いもので第9回目となったAWS勉強会 新宿鮫ですが、 Tweets about "#shinjukuzame" !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); 今回は今まで気になってたけど使った事のなかったDynamoDBに触れてみることにしました。 ■ 公式ページをみてみる http://aws.amazon.com/jp/dynamodb/ が日本語の公式ページになります。 ↓SSDドヤッ的な動画があったりとか。 他には↓のようなことが書いてあります。 ・シェアードナッシングなアーキテクチャで分散〜 ・アプリからは透過的にスケールしてくけどスループットは保証 ・データの容量無制限 ・アトミックなカウントも出来るよ ・Elastic MapReduceと統合可能 ■ Getting Started 「Amazon DynamoDB の使用を開始する」リンクを押してみたら、英語ですかと。。 頑張りますo(((`・Д・´)))o Step 1: Before You Begin AWSのアカウントを作りましょうってのと、AWS SDKを落としときましょうくらいな感じ。 Step 2: Create Example Tables Use case 2: Forum Application っていうのが面白そうな感じ。 ・Forumを管理するテーブル ・スレッドを管理するテーブル ・Replyのコメントを管理するテーブル で、Replyテーブルはlocal secondary indexを持ってます、と。 さっそくテーブルを作っていきます。 まずはForumテーブル。ハッシュなキーを付ける時に、ちゃんと分散意識しろよ的なコメントが。 ひと月こんくらいよ的なのも出てる。$4.07だそうで。 アラートの設定も出来て、 出来上がり。 次にThreadテーブル。 最後にReplyテーブル。Indexの設定をして、 とりあえず3つテーブルが出来ましたヽ(=´▽`=)ノ Step 3: Load Data into Tables テーブルにデータを入れていきます。 EclipseでJavaの↓のアプリを動かします。 プロダクトテーブルも対象になってるのでそこは省くかな。。 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LoadData_Java.html 久しぶりにEclipse立ち上げたらAWSのSDKの最新版を落としてくれました。 とりあえずDynamoDBのサンプル付きでプロジェクトを作ります。 接続用のクレデンシャルはプロパティファイルにSDKがデフォルトで用意してくれるので 楽チンでございます。 但しクレデンシャルを使って接続したクライアントのEndPointの向き先を Tokyoリージョンに設定が必要です。
client = new AmazonDynamoDBClient(credentials); client.setEndpoint("dynamodb.ap-northeast-1.amazonaws.com");
↓こんな感じでJavaなアレ。 動かしてみると、、データ入ってますね〜 Forumテーブル Threadテーブル Replyテーブル Step 4: Try a Query 次にクエリ叩いてみます。 Javaからも叩けますがWebコンソールから叩いてみることにします。 4件の中からですけどHash KeyとRange Keyを指定する形で。 セカンダリインデックスを使ったクエリはまだWebコンソールからは叩けませんでした。
Index queries are not available in console at this time. See Secondary Indexes for more information.
Hash Keyはequal toしかありませんが、Range Keyはイロイロ。 Step 5: Delete Example Tables 最後にテーブル消して終了です。Webコンソールから。 さよーなら〜(^_^)/~
スケールとか運用を全部お任せできちゃうっていうのはアツいわけですが、 実際使うとなると管理コンソールとかって結構大事かなと思うのですが、 なかなか使い勝手も良さそうですし、もっとよくなって行きそう感もあるな〜と。