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
610
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 re_Cheers: WEB
komakichi
0
160
Lambda(Python)の リファクタリングが好きなんです
komakichi
5
310
JAWS Days 2025のインフラ
komakichi
1
500
Amazon Bedrock + AWS Chatbot ノーコードでAIボット作成
komakichi
0
120
マルチエージェントで AWSサービスと会話がしたい
komakichi
1
58
Amazon BedrockとIoTで 実家情シスを卒業する
komakichi
3
120
もう実家に手頃な情シス娘は不要!Bedrockでもう一人の娘を作る
komakichi
2
270
AWS SAMとX-Rayで Lambdaの遅延を可視化
komakichi
0
65
AWSの生成AI活用事例集GenUを使い倒す
komakichi
1
1.4k
Other Decks in Programming
See All in Programming
Create a website using Spatial Web
akkeylab
0
260
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
110
社内での開発コミュニティ活動とモジュラーモノリス標準化事例のご紹介/xPalette and Introduction of Modular monolith standardization
m4maruyama
0
120
Benchmark
sysong
0
130
実はすごいスピードで進化しているCSS
hayato_yokoyama
0
110
SODA - FACT BOOK
sodainc
1
840
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
790
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
210
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
280
Blueskyのプラグインを作ってみた
hakkadaikon
1
510
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
300
Java on Azure で LangGraph!
kohei3110
0
110
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
71
4.9k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Music & Morning Musume
bryan
46
6.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
GraphQLとの向き合い方2022年版
quramy
46
14k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Side Projects
sachag
454
42k
Scaling GitHub
holman
459
140k
Thoughts on Productivity
jonyablonski
69
4.7k
The Cost Of JavaScript in 2023
addyosmani
50
8.3k
Git: the NoSQL Database
bkeepers
PRO
430
65k
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