DynamoDB Localとは
DynamoDBの ローカル実行可能なJavaアーカイブ(JAR)ファイルです。
動作環境
Windows、Mac、Linuxシステム上で動作し、
Java Runtime Environment(JRE)のバージョン7と互換性があります。
これより古いバージョンのJavaでは動作しませんのでご注意ください。
インストール
Step1. JREをインストール
下記のコマンドでインストール済みのJAVAバージョンを確認することができます。
$ java -version
java version "1.8.0_112"
Step2. DynamoDB Localをダウンロード&インストール
ダウンロードしたら 解凍 (ダブルクリック あるいは tar zxvf dynamodb_local_latest.tar.gz
) します。
そのディレクトリでコマンドプロンプトを開きます。
そして解凍フォルダーに入りDynamoDB Localを起動します。
cd dynamodb_local_latest
$ java -jar DynamoDBLocal.jar –Djava.library.path=.
Initializing DynamoDB Local with the following configuration:
Port: 8000
InMemory: false
DbPath: null
SharedDb: false
shouldDelayTransientStatuses: false
CorsParams: *
デフォルトでは、 0.0.0.0/0で8000番ポートをListenします。
javaコマンドの実行時に --port
オプションを付加すること他のポート番号に変更できます。
Step3. AWS CLIでDynamoDBを操作してみる
--endpoint-url
オプションがポイントです。
$ aws dynamodb create-table --endpoint-url http://localhost:8000 --table-name mytable --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
{
"TableDescription": {
"ProvisionedThroughput": {
"NumberOfDecreasesToday": 0,
"WriteCapacityUnits": 1,
"LastDecreaseDateTime": 0.0,
"LastIncreaseDateTime": 0.0,
"ReadCapacityUnits": 1
},
"KeySchema": [
{
"AttributeName": "id",
"KeyType": "HASH"
}
],
"ItemCount": 0,
"TableStatus": "ACTIVE",
"AttributeDefinitions": [
{
"AttributeName": "id",
"AttributeType": "S"
}
],
"CreationDateTime": 1525181907.818,
"TableName": "mytable",
"TableArn": "arn:aws:dynamodb:ddblocal:000000000000:table/mytable",
"TableSizeBytes": 0
}
}
上記のコマンドを実行したら、
<APIキー名>_<リージョン名>.db
ファイルが作成されます。
file
コマンドで調べてみると、SQLiteのデータベースファイルでした。
$ file FFFFFFB51111RE1_ap-northeast-1.db
FFFFFFB51111RE1_ap-northeast-1.db: SQLite 3.x database
注意点(DynamoDBとの違い)
- DynamoDB Localはプロビジョンされたスループット(Throughput)の設定を無視します。Throughputの制限による動作確認はできません。
Dockerにのせて動かす方法もあり
参考
(1). 【AWS発表】 デスクトップ開発を可能にする DynamoDB Local
(2). Amazon DynamoDB LocalをOSX(Mountain Lion)で実行する