Amazon DynamoDB LocalをEC2にインストール

先日、DynamoDB Localを使って、ローカルでDynamoDBのテストができる環境を構築しました。

DynamoDB Localとaws-cliとExec Maven Pluginで、DynamoDBのローカル開発環境を構築!

これでDynamoDBを利用する処理のテストが書けるようになりました。しかし、Jenkinsサーバにビルドさせようとしたら問題が発生しました。

Amazon EC2上のJenkinsでテストしたい

JenkinsサーバはAmazon EC2上に構築されていて、チームメンバーがgitにコミットするたびにビルドが実行されるようになっています。当然DynamoDBのテストも実行されるのですが、このEC2インスタンスにDynamoDB Localがインストールされていませんでした。

ローカル開発環境の設定は、Homebrewの恩恵で一瞬でしたが、EC2にインストールする場合は自分で起動スクリプト書かないといけません。

と思ったら、既に書かれている方がいました。しかも、インストーラ付き!

スクリーンショット 2014-07-14 19.09.57

tomgoodsun/aws_dynamodb_local

ありがとうございます。

インストールスクリプトでDynamoDB Localをインストール

検証用のインスタンスを起動して、インストールスクリプトを実行してみたら、DynamoDB Localの解凍時のファイル名が違うのかスクリプト内のパスと合わなくなっていました。

環境依存かもしれないのですが、少しだけ書き換えて使うことにしました。

katty0324/aws_dynamodb_local

まずgitからcloneしてきて、installerディレクトリに移動しておきます。

git clone https://github.com/katty0324/aws_dynamodb_local.git
cd aws_dynamodb_local/installer/

インストールスクリプトを実行すれば、DynamoDB Localのダウンロードと配置が実行されます。

$ sudo bash ./install.sh
Downloading latest AWS DynamoDB Local...
# ...(略)...
 
Installing AWS DynamoDB Local has done.
You can start with the following commands:
	Start:
	/etc/init.d/aws_dynamodb_local start
 
	Stop:
	/etc/init.d/aws_dynamodb_local stop
 
For more information about DynamoDB you can get from the following page.
	http://aws.amazon.com/en/dynamodb/
 
Thanks!

インストールができたようです!

起動スクリプトから起動する。

あとは起動スクリプトで起動するだけなんですが、起動スクリプト内のJavaのパスが通らなかったので、ここはファイルを書き換えてしまいました。

sudo sed -ie 's/java=\/usr\/java\/default/java=\/usr\/lib\/jvm\/java/' /etc/init.d/aws_dynamodb_local

これで起動します!

sudo /etc/init.d/aws_dynamodb_local start

これでDynamoDB Localが起動しました。動いています。

$ ps aux | grep dynamodb | grep -v grep
root      1445  0.0  1.1 2404732 44228 ?       Sl   Jul05   8:36 /usr/lib/jvm/java/bin/java -Djava.library.path=/usr/bin/aws_dynamodb_local -jar /usr/bin/aws_dynamodb_local/DynamoDBLocal.jar

起動設定もできています。

$ chkconfig | grep dynamodb
aws_dynamodb_local	0:off	1:off	2:off	3:on	4:off	5:on	6:off

これでEC2上でもDynamoDBのテストができるようになりました。

About katty0324

Comments are closed.

Scroll To Top