【誰でも分かる】DynamoDB Localを試してみた。〜aws-cli叩くまで~

AWS

概要

来る2013/09/12にローカルでAmazon DynamoDBでの開発が出来る様になりました。

http://aws.typepad.com/aws_japa” target=”_blank

開発しやすく、本番と開発の変更点をエンドポイントの変更のみにとどめる事が出来るのは大きいメリットです。

今日はこのDynamoDBLocalについて書こうと思います。

AmazonDynamoDBLocalを立てる

すごく簡単です。
1. gzファイルをダウンロード
2. tarコマンドで任意のディレクトリに解凍
3. 解凍されたディレクトリで

$ java –Djava.library.path=. -jar DynamoDBLocal.jar

を実行するだけです。

デフォルトでDynamoDBLocalは8000番ポートをListenします。
また、3番で–portを指定する事で任意のポートをListenさせる事が出来ます。


INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8000

こんな表示が出ていればOKです。

DynamoDBLocalはAccessKeyId_region.dbと言う名前でデータベースファイルをローカルに作成します。
これが、全ての情報を保存しているので、これを消すと全てのデータが削除されます。

aws-cliのコマンドを使ってみよう

aws — AWS CLI 1.18.69 Command Reference

aws-cli(python製)をインストール

※既にインストールされている人は飛ばして下さって結構です。

2行だけです。

sudo easy_install pip
sudo pip install awscli

・pythonのパッケージ管理ツールpipのインストール
・aws-cliをpipを用いてインストール

ここまで問題なく来たらawsコマンドが使える様になっているはずです。

aws-cliは以下の様な構成のコマンドになっています。

aws [options] <command> <subcommand> [parameters]

それでは代表的な

1. create-table
2. list-tables
3. update-table
4. delete-table
5. put-item
6. get-item
7. delete-item

辺りを順に叩いていきましょう。

create-table

テーブルを作成する事が出来ます。

・HASH型のみのキーを持つテーブルの場合

aws dynamodb create-table --endpoint-url http://localhost:8000 --table-name test --attribute-definitions AttributeName=testId,AttributeType=S --key-schema AttributeName=testId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1

・HASH型及びRANGE型のキーを持つテーブルの場合

aws dynamodb create-table --endpoint-url http://localhost:8000 --table-name test2 --attribute-definitions AttributeName=testId,AttributeType=S AttributeName=range,AttributeType=S --key-schema AttributeName=testId,KeyType=HASH AttributeName=range,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1

→成功時は作成テーブルの型を表すJSONがレスポンスとして表示されます。

list-tables

テーブルのリストを表示する事が出来ます。

aws dynamodb list-tables --endpoint-url http://localhost:8000

→成功したら以下の様なJSONが表示されます。

{
    "TableNames": [
        "test", 
        "test2"
    ]
}

update-table

テーブルのスループットを変更する事が出来ます。

aws dynamodb update-table --endpoint-url http://localhost:8000 --table-name test --provisioned-throughput ReadCapacityUnits=2,WriteCapacityUnits=2

→ReadCapacityUnits及びWriteCapacityUnitsが2になっているのがレスポンスから確認出来ます。

delete-tabel

テーブルを削除する事が出来ます。

aws dynamodb delete-table --endpoint-url http://localhost:8000 --table-name test2

→削除テーブルの型を表すJSONがレスポンスとして表示されます。

put-item

DynamoDBでは挿入するデータの事をアイテムと呼びます。
put-itemはRDBMSではinsertの様なコマンドです。itemと言うオプションが必須となり、JSON型で渡す必要があります。

aws dynamodb put-item --endpoint-url http://localhost:8000 --table-name test --item '{"testId":"1"}'

→レスポンスは何も返って来ません。

get-item

get-itemはそのままアイテムを取得するコマンドです。

aws dynamodb get-item --endpoint-url http://localhost:8000 --table-name test --key '{"testId":"1"}'

→指定されたキーを持つアイテムが返って来ます。

delete-item

delete-itemはアイテムを削除するコマンドです。

aws dynamodb delete-item --endpoint-url http://localhost:8000 --table-name test --key '{"testId":"1"}'

→何もレスポンスは表示されません。

ここまでで一般的なコマンドは叩けたのではと思います。

誰かのお役に立てば。

Twitterフォローお願いします

毎日技術ブログを更新しています。

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非@daiki1003のフォローお願いします♪

コメント

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