Slide 1

Slide 1 text

Lambdaの監視、できてますか? Datadogを用いてLambdaを見守ろう 株式会社ニーリー プラットフォーム開発部 SREチーム 大木建人 2025/03/06 Japan Datadog User Group Meetup#8@ 札幌

Slide 2

Slide 2 text

2 自己紹介 氏名 所属 経歴 大木 建人 / Kento Ogi 株式会社ニーリー プロダクト統括本部 プラットフォーム開発G SREチーム 趣味 夏はボルダリング🧗 冬はスノーボード🏂 2018-2020  大学で強化学習の研究 & インターンでAWSにハマる 2020-2023  新卒で合同会社DMM.comへ  AWSにハマってたらSRE部メンバーに 2023-  株式会社ニーリーへ入社  SREとして信頼性やリリースエンジニアリングに取り組む @2357gi @2357gi

Slide 3

Slide 3 text

3 プロダクト紹介

Slide 4

Slide 4 text

ニーリーがわかるコンテンツ 4 Recruit | 採用関連資料

Slide 5

Slide 5 text

1. 現状の問題と目指した世界線 2. ミッションクリティカルなLambdaとは 3. 具体的な監視ポイントと条件 4. 実装方法について 5. 実際の運用 5 本日のお品書き

Slide 6

Slide 6 text

1. 現状の問題と目指した世界線 2. ミッションクリティカルなLambdaとは 3. 具体的な監視ポイントと条件 4. 実装方法について 5. 実際の運用 6 本日のお品書き

Slide 7

Slide 7 text

7 Lambda関数がどのように発火し、 エラー時にどうするのか/通知されるのかが設定されていなかった ミッションクリティカルなLambdaも存在 (このLambdaが失敗するとサービスとしてヤバイ) 通知は個別で設定されていたが、 網羅的にカバーできていたわけではなかった 現状の問題と目指した世界線

Slide 8

Slide 8 text

8 エラーに気づかない、原因を追いきれないリスクが存在 → サービスの信頼性が脅かされている 現状の問題と目指した世界線

Slide 9

Slide 9 text

9 今回の対応のゴール ・ミッションクリティカルなLambdaを定義・洗い出す ・そのLambdaに問題が起きたら即座に検知できる仕組みを作る ・対応が必要かどうかを判断しやすくする 現状の問題と目指した世界線

Slide 10

Slide 10 text

1. 現状の問題と目指した世界線 2. ミッションクリティカルなLambdaとは 3. 具体的な監視ポイントと条件 4. 実装方法について 5. 実際の運用 10 本日のお品書き

Slide 11

Slide 11 text

11 アプリケーションコードを確認 呼び出されている関数をリストアップし整理 定義: 「正常に機能しない場合、契約率に影響しうる」と判断したLambda関数 ミッションクリティカルなLambdaとは

Slide 12

Slide 12 text

12 アプリケーションコードを確認 呼び出されている関数をリストアップし整理 クリティカルな関数の例: 契約申し込み時にiPhone用画像拡張子(heic)で アップロードされた画像をjpegに直すLambda関数 クリティカルでは無い関数の例: 検証用DBを夜間停止するLambda関数 定義: 「正常に機能しない場合、契約率に影響しうる」と判断したLambda関数 ミッションクリティカルなLambdaとは

Slide 13

Slide 13 text

1. 現状の問題と目指した世界線 2. ミッションクリティカルなLambdaとは 3. 具体的な監視ポイントと条件 4. 実装方法について 5. 実際の運用 13 本日のお品書き

Slide 14

Slide 14 text

14 Lambdaの監視と通知は2パターン存在 ・アプリケーション側のエラーや異常終了 具体的な監視ポイントと条件

Slide 15

Slide 15 text

15 Lambdaの監視と通知は2パターン存在 ・アプリケーション側のエラーや異常終了 ・Lambda関数のリソース上の問題  ・タイムアウト間際な関数やメモリ上限に近い関数 具体的な監視ポイントと条件

Slide 16

Slide 16 text

16 Lambdaの監視と通知は2パターン存在 ・アプリケーション側のエラーや異常終了 ・Lambda関数のリソース上の問題  ・タイムアウト間際な関数やメモリ上限に近い関数 前者はもちろん、後者も潜在的なリスクなので 問題が発生する前に検知・通知したい 具体的な監視ポイントと条件

Slide 17

Slide 17 text

17 Lambdaの監視と通知は2パターン存在 ・アプリケーション側のエラーや異常終了 ・Lambda関数のリソース上の問題  ・タイムアウト間際な関数やメモリ上限に近い関数 前者はもちろん、後者も潜在的なリスクなので 問題が発生する前に検知・通知したい Datadog Monitorsを用いてslackへの通知を実装 🎉 具体的な監視ポイントと条件

Slide 18

Slide 18 text

1. 現状の問題と目指した世界線 2. ミッションクリティカルなLambdaとは 3. 具体的な監視ポイントと条件 4. 実装方法について 5. 実際の運用 18 本日のお品書き

Slide 19

Slide 19 text

19 (ほぼ)全てのLambdaは一つのリポジトリでSAMにより管理 Datadog Extension LayerをLambdaに追加 実装方法について

Slide 20

Slide 20 text

20 ミッションクリティカルかどうかを判断するために 全てのLambdaにリソースタグを追加 実装方法について

Slide 21

Slide 21 text

21 該当タグの設定漏れを検知するために CDにバリデーションを追加 実装方法について

Slide 22

Slide 22 text

1. 現状の問題と目指した世界線 2. ミッションクリティカルなLambdaとは 3. 具体的な監視ポイントと条件 4. 実装方法について 5. 実際の運用 22 本日のお品書き

Slide 23

Slide 23 text

23 ・ミッションクリティカルなLambda 前述した条件での監視設定を追加 問題があるとマズいLambdaに 異常があると SREチームが気付けるように 🎉 実際の運用

Slide 24

Slide 24 text

24 ・ミッションクリティカルではないLambda ダッシュボードを新規作成するのではなく datadogのserverless画面にフィルターを適用 このコンソールが十分優秀🥳 memory不足や実行時間ピンチもいい感じにわかる 週次で見守り、問題があった時に 検知ができるように 🎉 実際の運用

Slide 25

Slide 25 text

25 Datadogを使えば網羅的にLambdaの監視ができます🥳 ミッションクリティカルなLambdaに対するアラーティングはもちろん、 そうでないLambdaに対しても質の良い監視ができるのでオススメ Layerを追加すればいいだけなので楽々✨ 余談: 明日のRoad to SRE NEXT@札幌でも登壇予定です SREのタスク優先度について話します 💪 まとめ