AWS

[パンダでも分かるAWSシリーズ] ローカル(Mac)でDynamoDBのインストールと実行:DynamoDB Local

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にのせて動かす方法もあり

https://qiita.com/shinofara/items/15180ad1d117f3a32ad7

参考

(1). 【AWS発表】 デスクトップ開発を可能にする DynamoDB Local
(2). Amazon DynamoDB LocalをOSX(Mountain Lion)で実行する

コメントを残す