1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-12-07

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

後日更新予定

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?