Pocket

さてさて!今の会社に転職してから2年半、Digdagの運用をしているのですが、一から構築を経験したことがなかったので、今回EC2(Amazon Linux2)で作ってみました。コンテナじゃないの?と思いますが、私はいつも手動でのインストールから理解してDocker化をしております。しかしこのブログは懐かしい…

[Treasure Data][Redash]Digdagとembulkを使いこなせば驚異的な分析基盤が出来上がる!!


■Environment

  • EC2(Amazon Linux2)
  • Java v1.8.0_265
  • Digdag v0.9.42
  • Embulk v0.9.23
  • PostgreSQL v12.4(RDS)

■ansible_digdag

https://github.com/RVIRUS0817/ansible_digdag

せっかくなのでAnsible化しました。なのでEC2起動したら上記を参考にして実行すれば細かい設定はインストールしてくれます。構成とAnsibleを適用後にやることは以下になります。

  • 構成


 ■What to do after running Ansible

・Make digdag_db

RedashのDB内にdigdag_dbを作り、digdag専用のユーザーを作成しました。uuid-ossp 拡張モジュールを利用するので CREATE EXTENSION することを忘れないようにしましょう。

  • /etc/systemd/system/digdag.service

  • /var/log/digdag

Digdagの起動はSystemdにしました。 --memory を指定してしまうとローカルのインメモリを見にいってしまうので、以下のようにRDSに接続するよう適宜変更しましょう。 --max-task-threads を2にすることでEmbulkが大量に動作することを制限してくれます。ログは /var/log/digdag 配下に出力するようにしました。

  • Setting Digdag file

Digdagの設定ファイルは /etc/digdag にある server.properties.tmp をコピーして管理しました。 digdag server --config server.properties を実行することでDBに初期データがマイグレーションされます。そしてsystemdでdigdagを起動すれば構築は完了になります。あとはEmbulk書いて digdag push すれば特定の時間にDigdagが動作します。


■ハマったこと

  • ERROR: function “lock_shared_tasks” already exists with same argument types

いくらdigdag serverで実行してもエラーになる場合はDBを作り直すことで実行できるようになりました。これは半日ハマった…..

@hiroysatoさんが拾ってくれましたが、原因不明…毎度フォローあざます!


■まとめ

しかしDigdagの構築は振り返ると非常に簡単でした。(DBさえハマらなければ…) 次はDockerで作ってみよう!Ansibleであればサクッと構築できるので参考にしてみてください。Google Cloud SDKをAnsible化するの忘れてたので手動は以下を参考に!

[Amazon Linux 2]Google Cloud SDKをインストール

新しいヘッドフォン買ったのでオススメです!

Pocket

カテゴリー: AWSdigdag

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください