DynamoDB localについて
(公式ドキュメント)DynamoDB Local 色々かかれています。
今回はこちらを元に書き進めます。
DynamoDB local実行に必要な環境
OS
Ubuntu
Pakages
openjdk-7-jdk
wget
構築手順
Dynamo DBを配置
$ mkdir /usr/local/ddlocal
$ cd /usr/local/ddlocal
$ wget http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz
$ tar zxvf dynamodb_local_latest.tar.gz
データ配置用ディレクトリ作成
$ mkdir /usr/local/ddlocal/db
実行
$ export JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64
$ java -Djava.library.path=/usr/local/ddlocal/DynamoDBLocal_lib -jar /usr/local/ddlocal/DynamoDBLocal.jar -port 8080 -dbPath /usr/local/ddlocal/db
確認
$ aws dynamodb list-tables --endpoint-url http://localhost:8080
{
"TableNames": []
}
さて、Dockerに置き換えてみましょうか
https://github.com/shinofara/dynamodb-local
githubにサンプルソースを上げてます。
README.mdに書いてますが一応
注意
当手順は、docker-compose
and docker-machine
を使うことを前提に書いていますので、ソレ以外の場合は、置き換えてお使いください!
環境準備
$ git clone git@github.com:shinofara/dynamodb-local.git
$ cd dynamodb-local
Dockerイメージ作成
$ docker-compose build
containerを立ち上げましょう
$ docker-compose up
dynamo_1 | Initializing DynamoDB Local with the following configuration:
dynamo_1 | Port: 8080
dynamo_1 | InMemory: false
dynamo_1 | DbPath: /usr/local/ddlocal/db
dynamo_1 | SharedDb: false
dynamo_1 | shouldDelayTransientStatuses: false
dynamo_1 | CorsParams: *
dynamo_1 |
8080ポートで立ち上がりましたね。
今回は、docker-machine
上に立ち上げてますので、 localhost
でアクセスできません。
事前にIPを確認
$ docker-machine ip [環境]
192.168.99.100
僕の場合は 192.168.99.100
でした。
軽く触ってみます。
テーブル一覧確認
$ aws dynamodb list-tables --endpoint-url http://192.168.99.100:8080
{
"TableNames": []
}
ない!
つくろう
$ aws dynamodb create-table --endpoint-url http://192.168.99.100:8080 --table-name test --attribute-definitions AttributeName=testId,AttributeType=S --key-schema AttributeName=testId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
つくった。確認
$ aws dynamodb list-tables --endpoint-url http://192.168.99.100:8080
{
"TableNames": [
"test"
]
}
出来た!
最後に
今回は、DynamoDB
を Docker
上に作成するところまででしたので、awscli
で Dynamoをもっと触りたい人は色々調べてみてください!