Slide 1

Slide 1 text

バッチ処理を監視したいだけなんだが… 2025.04.24 yabaibuki.dev #5 いつも監視(み)てるよ 〜ヤバいオブザーバビリティLT会〜 技術部インフラグループ 鈴⽊裕⼆ Copyright © Livesense Inc.

Slide 2

Slide 2 text

0. 自己紹介 Yuji Suzuki(@yjszk666) Copyright © Livesense Inc. ● 仕事:インフラグループでSRE的な動き ○ 主催勉強会:yabaibuki.dev ↑このままwebサイトになってます↑ ● 略歴 ○ 無内定卒業→Excel職⼈→リブセンス ○ ずっとSIで2年前からWeb系きた ● 趣味:公営賭博、地⽅競⾺場は全踏破 ○ ←先週⾏った霧島神宮

Slide 3

Slide 3 text

1 2 3 バッチ監視で⾒たいこと バッチ基盤の変容と監視 AWSだけで監視できるか? Copyright © Livesense Inc.

Slide 4

Slide 4 text

バッチ監視で⾒たいこと SECTION 1 Copyright © Livesense Inc.

Slide 5

Slide 5 text

● バッチの実⾏時間 ● バッチの実⾏結果 ○ 成功 / 失敗 / 実⾏されなかったこと ● (その他失敗時にログがすぐに⾒れるとなお良い) 取りたい情報は… 1. バッチ監視で見たいこと Copyright © Livesense Inc.

Slide 6

Slide 6 text

● バッチの実⾏時間 ● バッチの実⾏結果 ○ 成功 / 失敗 / 実⾏されなかったこと ● (その他失敗時にログがすぐに⾒れるとなお良い) 取りたい情報は… 1. バッチ監視で見たいこと Copyright © Livesense Inc. cronitorというSaaSを使っている

Slide 7

Slide 7 text

イメージ 1. バッチ監視で見たいこと Copyright © Livesense Inc. cronitorは指定したcron式の時間帯にpingが⾶んでこな かったときにエラーにできるシンプルなサービス。ログも ⽂字数制限あるけど⼀応⾒れる。

Slide 8

Slide 8 text

バッチ基盤の変容と監視 SECTION 2 Copyright © Livesense Inc.

Slide 9

Slide 9 text

2.バッチ基盤の変容と監視 メインがcrontab + cronitorだった。イメージとしては以下。 crontab -eで編集という伝統的な⽅法でやっていた。 ※⼀部Whenever/Rundeckも使っていた #batch 1 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh # 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh 10 0 * * * cronitor exec job_code /hoge/batch.sh オンプレ時代 Copyright © Livesense Inc.

Slide 10

Slide 10 text

2.バッチ基盤の変容と監視 最初はEventBridge Scheduler + ECS Run Taskに置換した たまに「Capacity is unavailable at this time」で実⾏されないことがある AWS化 - ECS Run Task Copyright © Livesense Inc.

Slide 11

Slide 11 text

2.バッチ基盤の変容と監視 これで失敗検知や再実⾏が可能になった。 ただAWS上で「実⾏されていないこと」は監視できていないので、cronitorは残った。 ※↑については後述 AWS化 - Step Functions Copyright © Livesense Inc.

Slide 12

Slide 12 text

2.バッチ基盤の変容と監視 当時監視設定はGUIで好き勝⼿に作られており、使ってない設定があったり、効果的にバッチ 監視を⼊れられていなかった。これをコード化することで解決した。 具体的にはPythonのSDKがあったので、CIを⾃作した。詳しくはブログを参照。 癖のあるAPIでかなり苦労したし、今でもたまにトラシューをしている。 cronitorを廃⽌して、監視をAWSに寄せられないだろうかと検討した。 cronジョブ監視サービスCronitorの設定をコード管理してCI/CDする - LIVESENSE ENGINEER BLOG マイナーなSaaSのCIを作っているんだが俺はもうダメかもしれない - LIVESENSE ENGINEER BLOG 監視設定のコード化 Copyright © Livesense Inc.

Slide 13

Slide 13 text

AWSだけで監視できるか? SECTION 3 Copyright © Livesense Inc.

Slide 14

Slide 14 text

3.AWSだけで監視できるか? AWSだけだと失敗成功は監視できるが 「実⾏されなかった場合」の監視ができていない。 State Machineはただの箱で、実⾏を命令しているのはEventBridge。 EventBridgeのメトリクス⾒ればいいと思ったので監視(み)てみた。 実⾏されなかった場合の監視が難しい Copyright © Livesense Inc.

Slide 15

Slide 15 text

3.AWSだけで監視できるか? EventBridgeのメトリクスを監視(み)る Copyright © Livesense Inc. ● 「実⾏されなかった場合」の監視としてユースケースとして2つ考える ○ 1. ターゲットを呼び出しているものの、ターゲットの API (StartExecution APIを想定) がエラーを返す等で呼び出しに失敗している ○ 2. EventBridge Scheduler がターゲットを呼び出していない

Slide 16

Slide 16 text

3.AWSだけで監視できるか? EventBridgeのメトリクスを監視(み)る Copyright © Livesense Inc. ● InvocationDroppedCount ○ 最初のターゲットの呼び出しが失敗し、その後の再試⾏も全て失敗した 場合に報告されるメトリクス ○ 1に使えそう ● InvocationAttemptCount ○ 呼び出しのたびに発⽣するメトリクス、1以外であれば実⾏されてないと 判断できる、クォータに近づいたのを察するためにあると書いてある ○ 2に使えそう https://docs.aws.amazon.com/ja_jp/scheduler/latest/UserGuide/monitoring-cloudwatch.html

Slide 17

Slide 17 text

3.AWSだけで監視できるか? しかし… Copyright © Livesense Inc. AWSに寄せると実⾏レイヤと独⽴したところでの監視というメリットが失われる 要するにAWSが落ちると気がつけない

Slide 18

Slide 18 text

3.AWSだけで監視できるか? セキュリティの多層防御の観点を監視に⽣かす Copyright © Livesense Inc. IPAのセキュリティのプラクティスにこんなものがある https://www.ipa.go.jp/security/economics/practice/practices/Practice213/ 安全確保支援士の試験で見た気がする

Slide 19

Slide 19 text

3.AWSだけで監視できるか? 「多層監視」だから現状で良い気がしている Copyright © Livesense Inc. XaaS系は落ちると仮定してシステムを組むのがベスト 多層レイヤーでの監視は安⼼感がある +

Slide 20

Slide 20 text

3.AWSだけで監視できるか? しかしAPIが弱いなど課題がある… 類似サービスを検討したけど痒いところに⼿ が届かない いい感じのバッチ処理監視ツールが欲しい話 - LIVESENSE ENGINEER BLOG Copyright © Livesense Inc.

Slide 21

Slide 21 text

3.AWSだけで監視できるか? Datadogさんあたりに似たサービスがあれば🙏😭🙏 欲を⾔えば⾃作のCIではなくTerraformで管理したい Copyright © Livesense Inc.

Slide 22

Slide 22 text

3.AWSだけで監視できるか? もやっとしていますが、おわりです。 良いソリューションがあったらご教授ください Copyright © Livesense Inc.

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content