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
510
CloudWatch Logs Insightsで 定期業務をスマートに
CloudWatchの勉強会で発表した内容です
https://infra365.connpass.com/event/323497/
komakichi
August 20, 2024
Tweet
Share
More Decks by komakichi
See All by komakichi
JAWS Days 2025のインフラ
komakichi
1
130
Amazon Bedrock + AWS Chatbot ノーコードでAIボット作成
komakichi
0
50
マルチエージェントで AWSサービスと会話がしたい
komakichi
1
37
Amazon BedrockとIoTで 実家情シスを卒業する
komakichi
3
96
もう実家に手頃な情シス娘は不要!Bedrockでもう一人の娘を作る
komakichi
2
240
AWS SAMとX-Rayで Lambdaの遅延を可視化
komakichi
0
33
AWSの生成AI活用事例集GenUを使い倒す
komakichi
1
1.2k
ANGEL Dojo 2023 最終発表
komakichi
1
33
【AngelDojo_LT】Raspberry PiとAWS IoT Coreで 夏を乗り切る
komakichi
0
30
Other Decks in Programming
See All in Programming
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.6k
15分で学ぶDuckDBの可愛い使い方 DuckDBの最近の更新
notrogue
3
770
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
490
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
240
sappoRo.R #12 初心者セッション
kosugitti
0
280
Introduction to kotlinx.rpc
arawn
0
770
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
8
1.4k
Lambdaの監視、できてますか?Datadogを用いてLambdaを見守ろう
nealle
0
270
Unity Android XR入門
sakutama_11
0
180
Domain-Driven Design (Tutorial)
hschwentner
13
22k
Datadog Workflow Automation で圧倒的価値提供
showwin
1
280
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
500
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Adopting Sorbet at Scale
ufuk
75
9.2k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
A designer walks into a library…
pauljervisheath
205
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
440
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Writing Fast Ruby
sferik
628
61k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
A Modern Web Designer's Workflow
chriscoyier
693
190k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
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