Edited at

Amazon DynamoDB ちゅーとりある まとめ


Amazon DynamoDB とは

フルマネージド型の NoSQL データベースサービス

データベースの分散とスケーリングを自動で管理してくれるAWSのサービス

また、書き込み読み込みにどれだけのリソースを割り当てるかを制御できパフォーマンスの管理を簡単に行うことができる。



なぜ DynamoDB を使うか

AWSの他のサービスと連携しやすいDBというのが一番の理由

また、サービスの規模が拡大してアクセスが増大してもプログラムの変更なしでスケール可能というのも大きい。



DynamoDB の開発

開発ではいちいちブラウザでアクセスしてどうこうは面倒なためcliツールを利用します。


aws-cli のインストールと設定

はとりあえず本題とは異なるためリンクでお茶を濁します。

AWS CLI をインストール

AWS CLI を設定

(各自セットアップをよろしくお願いいたします。)



aws-cliでの操作


テーブル作成

#! /usr/bin/env bash

aws dynamodb create-table \
--table-name Music \
--attribute-definitions \
AttributeName=Artist,AttributeType=S \
AttributeName=SongTitle,AttributeType=S \
--key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1


アイテム追加

#! /usr/bin/env bash

aws dynamodb put-item \
--table-name Music \
--item \
'{"Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"}, "AlbumTitle": {"S": "Somewhat Famous"}}' \
--return-consumed-capacity TOTAL

aws dynamodb put-item \
--table-name Music \
--item '{ \
"Artist": {"S": "Acme Band"}, \
"SongTitle": {"S": "Happy Day"}, \
"AlbumTitle": {"S": "Songs About Life"} }'
\
--return-consumed-capacity TOTAL


Query実行 with jsonファイル

このコマンドを実行する前にjsonファイルの作成が必要になります。

aws dynamodb query --table-name Music --key-conditions file://key-conditions.json

以下のようにkey-conditions.jsonファイルを作成してください。

{

"Artist": {
"AttributeValueList": [
{
"S": "No One You Know"
}
],
"ComparisonOperator": "EQ"
},
"SongTitle": {
"AttributeValueList": [
{
"S": "Call Me Today"
}
],
"ComparisonOperator": "EQ"
}
}



ローカルのDynamoDBでの開発

ローカルでDynamoDBを構築しAWSへのアクセスなしで開発をしたいという状況があることと思います。

その場合はdockerを利用することでローカルの環境構築が可能です。

難しいことはありません。

以下のコマンドを実行してください。

docker run -d -p 8000:8000 amazon/dynamodb-local

このコマンドで起動したローカルのDynamoDBにアクセスするには以下のように--endpoint-urlパラメータにローカルDynamoDBのURLを指定します。

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



後日更新予定