DynamoDBローカルをsystemdで管理する
systemctl start dynamodb
こんな感じで DynamoDB を起動できるようにします。
環境
- CentOS 7
- DynamoDBローカル
今回試したのは 2017年05月12日時点の東京リージョン対象です。
DynamoDBローカルのセットアップ
詳しくはAWSのドキュメント見てください。
http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html
cd /usr/local/src
wget https://s3-ap-northeast-1.amazonaws.com/dynamodb-local-tokyo/dynamodb_local_latest.tar.gz
DynamoDBローカルは /usr/local/dynamodb に置きました。
mkdir /usr/local/dynamodb
tar xzvf dynamodb_local_latest.tar.gz -C /usr/local/dynamodb
DynamoDBローカルを動かすにはJavaが必要なのでインストールします。
もちろん本番では利用しない環境なので楽な yum からインストールします。
yum install java -y
一旦動かしてみます。
cd /usr/local/dynamodb
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
DynamoDBローカルのユニットファイル作成
ここが本題です。
vim /etc/systemd/system/dynamodb.service
dynamodb.service
[Unit]
Description=Manage DynamoDB service
Documentation=http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html
After=network.target
[Service]
Environment="DYNAMODB_HOME=/usr/local/dynamodb"
Environment="DYNAMODB_LISTEN_PORT=8000"
ExecStart=/usr/bin/java -Djava.library.path=${DYNAMODB_HOME}/DynamoDBLocal_lib -jar ${DYNAMODB_HOME}/DynamoDBLocal.jar -dbPath ${DYNAMODB_HOME} -sharedDb -port ${DYNAMODB_LISTEN_PORT}
ExecStop=/bin/kill -QUIT $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Type=simple
[Install]
WantedBy=multi-user.target
DynamoDBローカルの置き場所が違う場合は DYNAMODB_HOME を変更してください。
公開ポートを DYNAMODB_LISTEN_PORT で変更できます。
systemctl start dynamodb
systemctl stop dynamodb