Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CloudWatch Logs Insightsで 定期業務をスマートに
Search
komakichi
August 20, 2024
Programming
1
350
CloudWatch Logs Insightsで 定期業務をスマートに
CloudWatchの勉強会で発表した内容です
https://infra365.connpass.com/event/323497/
komakichi
August 20, 2024
Tweet
Share
More Decks by komakichi
See All by komakichi
AWSの生成AI活用事例集GenUを使い倒す
komakichi
0
640
ANGEL Dojo 2023 最終発表
komakichi
0
12
【AngelDojo_LT】Raspberry PiとAWS IoT Coreで 夏を乗り切る
komakichi
0
14
Other Decks in Programming
See All in Programming
メルカリ ハロ アプリの技術スタック
atsumo
2
780
Remix × Cloudflare Pages × Sentry 奮闘記 / remix-pages-sentry
nkzn
1
410
タイミーにおけるデータの利用シーンと データ基盤の挑戦
marufeuille
4
3.2k
型付きで行うVSCode拡張機能開発 / VSCode Meetup #31
mazrean
0
240
App Router 悲喜交々
quramy
7
380
WEBアプリケーションにおけるAWS Lambdaを用いた大規模な非同期処理の実践
delhi09
PRO
7
4.1k
Iteratorでページネーションを実現する
sonatard
3
710
Kubernetes上でOracle_Databaseの運用を楽にするOraOperatorの紹介
nnaka2992
0
150
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
0
170
Modern Functional Fluent CFML REST by Luis Majano
ortus24
0
140
Real-time message handling and notifications with API Platform and Symfony
alli83
1
100
[KR] Server Driven Compose With Firebase
skydoves
2
190
Featured
See All Featured
The Mythical Team-Month
searls
218
43k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
29
1.7k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
Writing Fast Ruby
sferik
626
60k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
Thoughts on Productivity
jonyablonski
67
4.2k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
Building Adaptive Systems
keathley
38
2.1k
Typedesign – Prime Four
hannesfritz
39
2.3k
How STYLIGHT went responsive
nonsquared
95
5.1k
Rails Girls Zürich Keynote
gr2m
93
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
Transcript
CloudWatch Logs Insightsで 定期業務をスマートに みのるんのゲリラ勉強会&インフラ技術基礎勉強会 アイレット株式会社 ⼩巻玖美
⾃⼰紹介 2 所属:アイレット株式会社 アジャイル事業部 業務:TSやPythonでのWebアプリケーション開発 (最近は専ら⽣成AI系) ⼩巻 玖美 / こまきち
@komakichidev https://zenn.dev/kumao
ある⽇、こんなことを⾔われました 3
やりたいこと 4 エンドユーザーから時々レスポンスが 遅いと報告が上がっている 数ヶ⽉間、定期的にログを確認して 原因を調査してくれ
やりたいこと 5 • アプリケーションのパフォーマンスをあげたい ボトルネックを探す⼀助として、遅延が発⽣しているリクエストを知りたい • 1ヶ⽉分のログが対象 API GatewayのLatencyやLambdaのDurationがx秒以上のものを探したい
やりたいこと 6
最初の数ヶ⽉間、こんな作業をしていました 7
これまで⾏っていたこと 8
これまで⾏っていたこと 9
これまで⾏っていたこと 10
これまで⾏っていたこと 11
これまで⾏っていたこと 12
これまで⾏っていたこと 13
これまで⾏っていたこと 14
これまで⾏っていたこと 15
これまで⾏っていたこと 16
これまで⾏っていたこと 17
これまで⾏っていたこと 18
そんな時に CloudWatch Logs Insights に出会った 19
CloudWatch Logs Insightsとは 20 AWS CloudWatchに保存されたログデータをリアルタイムで検索し、 分析するためのクエリツール
CloudWatch Logs Insightsとは 21 クエリ構⽂ ロググループをクエリし、特定のログデータを抽出‧分析するための⾔語 コマンド名 説明 display 特定のフィールドをクエリ結果に表⽰する
filter クエリをフィルタリングし、条件に⼀致するログイベントのみを返す stats ログフィールドの値を使⽤して統計情報を算出する dedup 指定したフィールドの値に基づいて重複した結果を削除する unmask マスクされたデータの内容を表⽰する
CloudWatch Logs Insightsとは 22 クエリ構⽂ ロググループをクエリし、特定のログデータを抽出‧分析するための⾔語 コマンド名 説明 display 特定のフィールドをクエリ結果に表⽰する
filter クエリをフィルタリングし、条件に⼀致するログイベントのみを返す stats ログフィールドの値を使⽤して統計情報を算出する dedup 指定したフィールドの値に基づいて重複した結果を削除する unmask マスクされたデータの内容を表⽰する こんな感じ
実際にやってみます 23
やってみる 24 CloudWatch Logs Insightsに移動する
やってみる 25 クエリを書きます <⼊⼒> 対象はLambda関数の実⾏に関するログイベント / 処理に4秒以上かかっている / タイムスタンプで ソート
/ 20個まで表⽰
やってみる 26 クエリを書きます <出⼒> タイムスタンプ / リクエストID / 処理にかかった時間 /
CloudWatch Logsのログストリーム / メッセージ
やってみる 27
やってみる 28 @duration @log / @logStream @message
やってみる 29
やってみる 30 対象のリクエストもわかる!
やってみる 31 対象のリクエストもわかる! ログにも⾶べる!
やってみる 32 対象のリクエストもわかる! ログにも⾶べる!
やってみる 33 対象のリクエストもわかる! ログにも⾶べる! ただ、この沢⼭のログ ログ設計を⾒直すともっと⾒やすい!!
ログをもう少し⾒やすくする (ログ設計のおはなし) 34
ログを⾒やすくする 35 ログ形式を意識せずにLambdaを作成すると、取得できる@messageの 表⽰がバラバラ 例: Lambda(Python)でprint出⼒を混ぜた 天気を取得する実装の例 ↑
ログを⾒やすくする 36 そこでログ出⼒を共通化することで、欲しいログを探しやすくする fields @timestamp, @duration, @message, @logStream, @log |
filter @message like "INFO" // ここではINFOを取り出してみる | limit 100
ログを⾒やすくする 37 TIPS:ログの共通化には「Powertools for AWS Lambda」が便利! フォーマットを指定しなくても、Powertoolsが良しなにやってくれる Loggerだけでなく、Validation‧Parser‧Data Maskingなどが簡単に導⼊可能
CloudWatch Logs Insights その他の機能 38
その他の機能 39 クエリを保存しておく クエリした結果を CloudWatchのダッシュボードに追加も可能 クエリ単体での保存
その他の機能 40 ⾃然⾔語を使⽤して Logs Insights CloudWatch クエリを⽣成および更新する ※バージニア北部、オレゴン、東京リージョンでのみ利⽤可能
その他の機能 41 ⾃然⾔語を使⽤して Logs Insights CloudWatch クエリを⽣成および更新する ※バージニア北部、オレゴン、東京リージョンでのみ利⽤可能 英語のみ対応…
まとめ 42 CloudWatch Logs Insightsを使⽤したことで… • 数の多い⼿作業の調査から決まったクエリ結果を⾒るだけに • 遅延の原因特定が迅速に •
ダッシュボードへのクエリ結果追加で、より楽にミスを少なく
Appendix 43 ・powertools-lambda-python https://docs.powertools.aws.dev/lambda/python/latest/ ・CloudWatch Logs Insights を使用したログデータの分析 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/Analy zingLogData.html