AWSもくもく勉強会 新宿鮫:第9回でDynamoDBをいじってきました。

早いもので第9回目となったAWS勉強会 新宿鮫ですが、

!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ドヤッ的な動画があったりとか。
Screen Shot 2013-06-19 at 7.43.05 PM
 
他には↓のようなことが書いてあります。
・シェアードナッシングなアーキテクチャで分散〜
・アプリからは透過的にスケールしてくけどスループットは保証
・データの容量無制限
・アトミックなカウントも出来るよ
・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を持ってます、と。
 
さっそくテーブルを作っていきます。
Screen Shot 2013-06-19 at 7.54.17 PM
まずはForumテーブル。ハッシュなキーを付ける時に、ちゃんと分散意識しろよ的なコメントが。
Screen Shot 2013-06-19 at 7.56.31 PM
 
ひと月こんくらいよ的なのも出てる。$4.07だそうで。
Screen Shot 2013-06-19 at 7.57.22 PM
 
アラートの設定も出来て、
Screen Shot 2013-06-19 at 7.58.00 PM
 
出来上がり。
Screen Shot 2013-06-19 at 7.58.31 PM
 
次にThreadテーブル。
Screen Shot 2013-06-19 at 8.00.32 PM
 
最後にReplyテーブル。Indexの設定をして、
Screen Shot 2013-06-19 at 8.02.51 PM
Screen Shot 2013-06-19 at 8.03.03 PM
Screen Shot 2013-06-19 at 8.03.47 PM
 
とりあえず3つテーブルが出来ましたヽ(=´▽`=)ノ
Screen Shot 2013-06-19 at 8.04.05 PM
 
Step 3: Load Data into Tables
テーブルにデータを入れていきます。
EclipseでJavaの↓のアプリを動かします。
プロダクトテーブルも対象になってるのでそこは省くかな。。
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LoadData_Java.html
久しぶりにEclipse立ち上げたらAWSのSDKの最新版を落としてくれました。
Screen Shot 2013-06-19 at 8.11.13 PM
 
とりあえずDynamoDBのサンプル付きでプロジェクトを作ります。
Screen Shot 2013-06-19 at 8.12.34 PM
 
接続用のクレデンシャルはプロパティファイルにSDKがデフォルトで用意してくれるので
楽チンでございます。
但しクレデンシャルを使って接続したクライアントのEndPointの向き先を
Tokyoリージョンに設定が必要です。

client = new AmazonDynamoDBClient(credentials);
client.setEndpoint("dynamodb.ap-northeast-1.amazonaws.com");

↓こんな感じでJavaなアレ。
Screen Shot 2013-06-19 at 8.15.29 PM
 
動かしてみると、、データ入ってますね〜
Forumテーブル
Screen Shot 2013-06-19 at 8.19.22 PM
 
Threadテーブル
Screen Shot 2013-06-19 at 8.20.03 PM
 
Replyテーブル
Screen Shot 2013-06-19 at 8.19.37 PM
 
Step 4: Try a Query
次にクエリ叩いてみます。
Javaからも叩けますがWebコンソールから叩いてみることにします。
4件の中からですけどHash KeyとRange Keyを指定する形で。
Screen Shot 2013-06-19 at 8.26.23 PM
 
セカンダリインデックスを使ったクエリはまだWebコンソールからは叩けませんでした。

Index queries are not available in console at this time. See Secondary Indexes for more information.

 
Hash Keyはequal toしかありませんが、Range Keyはイロイロ。
Screen Shot 2013-06-19 at 8.26.35 PM
 
Step 5: Delete Example Tables
最後にテーブル消して終了です。Webコンソールから。
Screen Shot 2013-06-19 at 8.29.02 PM
さよーなら〜(^_^)/~
Screen Shot 2013-06-19 at 8.29.38 PM
 
 

スケールとか運用を全部お任せできちゃうっていうのはアツいわけですが、
実際使うとなると管理コンソールとかって結構大事かなと思うのですが、
なかなか使い勝手も良さそうですし、もっとよくなって行きそう感もあるな〜と。
 

Amazon Web Services クラウドデザインパターン実装ガイド
大澤 文孝
日経BP社
売り上げランキング: 3,607
Amazon Web Services クラウドデザインパターン 設計ガイド
玉川 憲 片山 暁雄 鈴木 宏康
日経BP社
売り上げランキング: 4,110

コメント

タイトルとURLをコピーしました