【AWS】Amazon DynamoDB Local

 ■ はじめに

https://dk521123.hatenablog.com/entry/2017/02/19/121008

で、DynamoDBを調査したが、AWSに接続しなくても、
DynamoDB を使用した開発できる DynamoDB Local について
調べてみた (これは助かる)

 ■ 特徴

 * Windows、Linux、Mac OS Xで設定可能
 * SQLiteをバックグランドで使っている

 ■ 手順概要

[0] アクセスキー IDと、シークレットアクセスキーの設定
      (credentialsファイルの作成)
[1] Amazon DynamoDB Local のダウンロード
[2] ファイルの設置
[3] Amazon DynamoDB Local の実行
[4] GUIの表示

 ■ 設定

 設定環境

 * OS : Windows10
 * Java : JDK1.8

詳細手順

 [0] アクセスキー IDと、シークレットアクセスキーの設定

※これがないと、使用している時に例外が発生する 

[0-1] コマンドプロンプトを開き、C:\Users\【ユーザ名】配下に「.aws」を作成する
~~~~~~~~~~
cd C:\Users\【ユーザ名】
mkdir .aws
~~~~~~~~~~

[0-2] 「.aws」の配下に、ファイル名「credentials」を作成し、以下の内容で保存する
~~~~~~~~~~
[default]
aws_access_key_id=yourAccessKey
aws_secret_access_key=yourecretKey
region=ap-northeast-1
~~~~~~~~~~

 [1] Amazon DynamoDB Local の設定

[1-1] 以下のサイトからモジュール(今回は「dynamodb_local_latest.zip」)をダウンロードする

http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html

[1-2] [1-1]のファイルを解凍し、任意の場所(今回は「C:\work\dynamodb_local_latest」)に置く

【フォルダ構成】
~~~~~~~~~~
C:\work\dynamodb_local_latest
 |
 + db
 |
 + DynamoDBLocal.jar
 |
 + DynamoDBLocal_lib
    + antlr-runtime-4.1.jar
    + ・・・略・・・
~~~~~~~~~~

 [2] Amazon DynamoDB Local の起動と確認

[2-1] コマンドプロンプトを開き、以下のコマンドを実行
~~~~~~~~~~
# 移動
cd C:\work\dynamodb_local_latest

# データ用のフォルダ作成
mkdir db

# 起動
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -port 8000 -dbPath ./db

Initializing DynamoDB Local with the following configuration:
Port:   8000
InMemory:       false
DbPath: ./db
SharedDb:       true
shouldDelayTransientStatuses:   false
CorsParams:     *
~~~~~~~~~~

(DynamoDB を停止するには、 Ctrl+C を入力)

[オプション]
 + 「-sharedDb」:単一ファイルにデータ格納
 + 「-port」:ポート変更(デフォルトポート:8000)
 + 「-dbPath」:DBファイル格納フォルダを指定

[2-2] 起動で来たら、ブラウザで以下のURLにアクセスする
 => DynamoDB Javascript Shellが表示される

http://localhost:8000/shell/

 補足1 : データの確認

 * 「-dbPath」で指定したファイルは、SQLite用のデータファイルである
 * 以下の関連記事にあるDBクライアントを入れて、データを確認する

https://dk521123.hatenablog.com/entry/36049417

 参考文献

 公式サイト
http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html
 DynamoDB Local
http://qiita.com/yhiranoo/items/68315ec29564faae17f6
http://qiita.com/ystg/items/1df196e60f290a7c0cf2
http://www.hakopako.net/entry/2016/08/01/100000
http://aws.typepad.com/aws_japan/2013/09/dynamodb-local-for-desktop-development.html
http://www.techscore.com/blog/2014/12/12/amazon-dynamodb-local-and-aws-sdk-for-java-1/
http://lapped-lapped.blogspot.jp/2013/10/dynamodb-local.html

 関連記事

 Amazon DynamoDB ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2017/02/19/121008
 Tomcatのセッション永続化 ~ セッション レプリケーション / DynamoDB編 ~
https://dk521123.hatenablog.com/entry/36725545