CloudWatch Alarm の Terraform Module を作って監視を展開する

156 Views

April 09, 25

スライド概要

profile-image

株式会社Finatext サーバーサイドエンジニア AWS/Go/Terraform

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

CloudWatch Alarm の Terraform Module を作って 監視を展開する 2025-02-20 株式会社Finatext 松崎稔矢 @tm8619_pro © 2024 Finatext Holdings Ltd.

2.

自己紹介 松崎稔矢 Toshiya Matsuzaki 株式会社Finatext 職種: バックエンドエンジニア チームリーダー 趣味: ボウリング ど /ゲーム /ダーツ /ポーカー /乗馬 /お酒 な 技術: Go/AWS/Terraform 競プロ経験あり 好きなAWSサービス: AWS RDS(Aurora) © 2024 Finatext Holdings Ltd. 1

3.

イントロダクション 簡単に監視入れられるように CloudWatch Alarmをterraformでmodule化 した過程と手順の話 © 2024 Finatext Holdings Ltd. 2

4.

イントロダクション 以下くらいの背景を要求します ●CloudWatch Metricsの画面は見たことある ●Alarmの存在は知っている 後半出てきますが、あんまり知らなくても大丈夫 ●Terraform Moduleについて © 2024 Finatext Holdings Ltd. 3

5.

イントロダクション インフラ監視って難しいですよね © 2024 Finatext Holdings Ltd. 4

6.

イントロダクション 何が難しいか ●何を設定するべきか精査する ●しきい値を考える ●設定を管理・メンテナンスする ●設定したものがちゃんと監視されるようにする これをプロダクト開発しつつやる必要がある © 2024 Finatext Holdings Ltd. 5

7.

イントロダクション 今までの経験 プロダクト新規開発します!アプリケーション開発ギリギリ終わっ てテスト乗り越えてリリース!! 監視の仕組み作る時間ない!!とりあえずDatadog入れとくか!! ●ALBやTargetGroup 5XXエラーを検知 ●RDS CPU使用率が高いのも拾うか ○とりあえず50%とか70%くらい…? © 2024 Finatext Holdings Ltd. 6

8.

イントロダクション よしなに作っていくと… - ノイズなアラートがたくさん出る - RDSの50%って別に全然大丈夫 - 監視すべき点が抜ける © 2024 Finatext Holdings Ltd. 7

9.

イントロダクション 目的 監視基盤を作って 網羅的にインフラの健康状態が見れる状態にしたい 簡単にAlarmの導入を出来るようにしたい © 2024 Finatext Holdings Ltd. 8

10.

イントロダクション 能動的に監視したい → CloudWatch Dashboard 受動的に監視したい → CloudWatch Alarm 今回はインフラ障害発生を未然に防いだり、発生時に調査が しやすくなるよう、Alarmの導入にフォーカスします。 © 2024 Finatext Holdings Ltd. 9

11.

CloudWatch Alarmの設定 © 2024 Finatext Holdings Ltd. 10

12.

CloudWatch Alarmの作り方 何のメトリクスに対して どんなしきい値で設定したらいいの? © 2024 Finatext Holdings Ltd. 11

13.

CloudWatch Alarmの作り方 AWSが推奨アラームをまとめています! © 2024 Finatext Holdings Ltd. 12

14.

CloudWatch Alarmの作り方 まずはここを見よう AWS公式の推奨アラーム https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Bes t_Practice_Recommended_Alarms_AWS_Services.html © 2024 Finatext Holdings Ltd. 13

15.

Page Title © 2024 Finatext Holdings Ltd. 14

16.

Page Title © 2024 Finatext Holdings Ltd. 15

17.

© 2024 Finatext Holdings Ltd. 16

18.

© 2024 Finatext Holdings Ltd. 17

19.

© 2024 Finatext Holdings Ltd. 18

20.

© 2024 Finatext Holdings Ltd. 19

21.

CloudWatch Alarmの作り方 え、これ全部やるの…? © 2024 Finatext Holdings Ltd. 20

22.

CloudWatch Alarmの作り方 IaCコード、ダウンロードできます! © 2024 Finatext Holdings Ltd. 21

23.

CloudWatch Alarmの作り方 IaCコード、ダウンロードできます! しかも複数の形式で! © 2024 Finatext Holdings Ltd. 22

24.

CloudWatch Alarmの作り方 アラームに関する推奨事項にチェックすると、必要なメトリクスが 現れ、コードのダウンロードが可能 © 2024 Finatext Holdings Ltd. 23

25.

CloudWatch Alarmの作り方 こんな感じのコードをダウンロード出来るので、簡単に Terraform化が出来てしまう © 2024 Finatext Holdings Ltd. 24

26.

Terraform Module化していく © 2024 Finatext Holdings Ltd. 25

27.

Terraform Module化していく 共通化したい部分はどこか? © 2024 Finatext Holdings Ltd. 26

28.

Terraform Module化していく 今回は2つを変数にして、module化 rds_instance_ids :RDSインス タンスID rds_cpu_utilization_threshold :CPU利用率しきい値 © 2024 Finatext Holdings Ltd. 27

29.

Terraform Module化していく これを推奨アラーム数の分だけやります! ここは筋肉 ベースとなるTerraformコードはある 設定値も基本はAWSの推奨値で問題ない © 2024 Finatext Holdings Ltd. 28

30.

Terraform Module化していく やるべきこと リソースのIDと設定値を受け取れるようにする 出来ればドキュメントをしっかり読み、このタイミング で設定値を検討する © 2024 Finatext Holdings Ltd. 29

31.

Terraform Module化していく module化が完了すれば、rds instance1つに対し moduleを呼べば必要なアラームが全部設定される これ書くだけでRDSで必要な監視を全て網羅! © 2024 Finatext Holdings Ltd. 30

32.

追加機能・実際の運用 © 2024 Finatext Holdings Ltd. 31

33.

追加機能・実際の運用 opsgenieというアラート管理ツールを利用 アラートを作成すると、優先度に応じてチケット管 理や電話を鳴らせるサービス © 2024 Finatext Holdings Ltd. 32

34.

追加機能・実際の運用 電話鳴らしたりslack通知を行ったり © 2024 Finatext Holdings Ltd. 33

35.

追加機能・実際の運用 障害対応の初動が早まる アプリケーションエラーが多数発生したとき… ●RDSのCPU使用率アラート ○DB負荷が高い 静観かスケールアウトを検討 ●NAT Gatewayのアラート ○AWSの障害 静観なりリージョン切り替えを検討 ●インフラ異常は何もない ○アプリケーションロジックのミス・外接エラー © 2024 Finatext Holdings Ltd. 34

36.

追加機能・実際の運用 障害を未然に防げる DBのメモリを食いつぶしたり、保存容量を食いつぶ したりする前に検知可能 © 2024 Finatext Holdings Ltd. 35

37.

まとめ 本日のまとめ AWSが推奨する監視設定があるので一度読むと良い Terraform Module使って設定を展開する事例紹介 © 2024 Finatext Holdings Ltd. 36