Ubuntu で Digdag サーバを作るまでの手順


Treasure Data が OSS として公開しているワークフローエンジン Digdag を使う機会があり、とりあえず動かすところまでやったのでその手順のメモ。

環境

  • Amazon EC2
    • t2.micro
  • Ubuntu 16.04

このエントリを書いた時点での Digdag のバージョンは 0.9.16 だった。
新しいバージョンが出たらこのエントリは役に立たないかもしれないので注意。

Java 8 をインストール

JDK 8u72 以上が必要とのことなのでインストールする。

# apt update && apt upgrade
# apt install openjdk-8-jre

Digdag をインストール

curl で最新版の jar ファイルをダウンロードしていきて設置する。
これひとつでサーバにもクライアントにもなるっぽい。

# curl -o /usr/local/bin/digdag -L "https://dl.digdag.io/digdag-latest"
# chmod +x /usr/local/bin/digdag

パス追加とか面倒なので /usr/local/bin に直接ぶっこんでしまった。

PostgreSQL 設定

digdag を起動するにはデータストレージが必要になる。
インメモリモード --memory でも起動できるが、実際に使う場合には PostgreSQL などを指定するのがよいだろう。

/etc/digdag.properties
database.type = postgresql
database.user = USER
database.password = PASSWORD
database.host = HOST
database.port = 5432
database.database = digdag

今回は RDS で PostgreSQL サーバが立っていたので、そこに digdag という名前のデータベースを作って指定した。

Secret 機能の設定

Digdag Secret 機能を有効にする必要がある場合は、設定ファイルの追記とポリシーファイルの作成が必要になる。

詳しくは: DigdagのSecret機能を使う - Qiita

Systemd 設定

以下のような service ファイルを書いた。

/etc/systemd/system/digdag.service
[Unit]
Description=digdag

[Service]
Restart=always
ExecStart=/bin/sh -c "/usr/local/bin/digdag server --bind 0.0.0.0 --config /etc/digdag.properties --task-log /var/log/digdag/ --access-log /var/log/digdag"

[Install]
WantedBy=multi-user.target

どうやら ExecStart= に指定する実行コマンドには jar ファイルを直接指定することができない1らしく、 /bin/sh -c "..." で囲むことで解決した。

# systemctl enable digdag

サーバ起動時に自動起動する設定をしたら、実際に起動させてみる。

# systemctl start digdag

http://<IP Address>:65432/ にアクセスすると、Digdag の Web UI を使うことができる。