26
28

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.

Dynamoがlocalで実行できる事を知ったので、Docker Container上で動かせるようにして、公開してみたお話。

Posted at

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"
    ]
}

出来た!

最後に

今回は、DynamoDBDocker 上に作成するところまででしたので、awscli で Dynamoをもっと触りたい人は色々調べてみてください!

26
28
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
26
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?