1.はじめに
AWS Step Functionsは、AWSでマイクロサービスに対する一連の操作(ステップ)を管理するための非常に効果的なツールです。
一方で、HinemosはITリソースの運用管理に使用されるオープンソースの統合運用管理ソフトウェアです。
この記事では、AWS Step Functionsを使ってHinemosのジョブ管理をどのように実現するか考察します。
なお、Hinemosに関する詳細については、以下に記載の通りです。
サブスクリプションモデルも提供されており、ミッションクリティカルなシステムにおいても有効となる運用管理ツールになります。
・Hinemosとは
https://www.hinemos.info/hinemos
・Hinemosのサブスクリプションサービス
https://www.intellilink.co.jp/topics/news_release/2023/032200.aspx
2.検討対象とするジョブパターンとその内容
Hinemosのジョブ管理機能の内、今回AWSサービスで実現方法を検討するジョブパターンは以下の通りとなります。
関わっている案件で主に利用しているものを中心にピックアップしています。
No | ジョブパターン | 概要 |
---|---|---|
1 | スケジュール起動(cron型) | 年次/月次/日次などの定められたスケジュールによって起動するもの |
2 | スケジュール起動(rate型) | 30分毎/1時間毎などの定められた間隔によって起動するもの |
3 | スケジュール起動(カレンダー型) | 特定条件(第一週に月曜日がある月の第二日曜日など)で起動するもの |
4 | スケジュール起動(cron型)+他ジョブ/ジョブネットステータス連動 | cron型起動かつ先行ジョブ/ジョブネットのステータスを条件として起動するもの |
5 | 手動起動 | 手動で起動するもの |
3.各ジョブパターンに対するAWSサービス構成
検討対象となるHinemosのジョブをどのようにAWSサービスで実現するかを検討しました。各ジョブパターンの処理方式は以下になります。
No.4 スケジュール起動(cron型)+他ジョブ/ジョブネットステータス連動
4.検証結果と課題
いくつかのHinemosジョブパターンについて、今回検討したAWSサービス構成で実現できるか実機で検証し、想定通りにジョブが実行できることを確認できました。
ただし、Step Functionsの仕様から下記のような課題があることも分かりました。
・デフォルトではコマンドの実行結果を待たない
・処理の分岐は択一であり、1-n構成でのジョブフローは実現できない
・ジョブのリラン/スキップは厳密には対応できない
5.まとめ
今回、Hinemosジョブ管理機能で実現可能なジョブパターンについてAWS Step Functionsを使った構成を検討しました。今後、ジョブのAWSクラウド移行を検討する際には参考になると思います。
ただし、前項の通り課題がいくつかあることも分かりました。解決策としては何らかのDBサービスを利用してジョブ実行ステータスを保管する必要があると考えてます。
次回はDBサービスを利用してジョブ実行ステータスを保存した場合の構成について検討したいと思います。
※ 本ブログに記載した内容は個人の見解であり、所属する会社、組織とは関係ありません。