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
630
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
170
Lambda(Python)の リファクタリングが好きなんです
komakichi
5
310
JAWS Days 2025のインフラ
komakichi
1
510
Amazon Bedrock + AWS Chatbot ノーコードでAIボット作成
komakichi
0
120
マルチエージェントで AWSサービスと会話がしたい
komakichi
1
61
Amazon BedrockとIoTで 実家情シスを卒業する
komakichi
3
130
もう実家に手頃な情シス娘は不要!Bedrockでもう一人の娘を作る
komakichi
2
280
AWS SAMとX-Rayで Lambdaの遅延を可視化
komakichi
0
68
AWSの生成AI活用事例集GenUを使い倒す
komakichi
1
1.5k
Other Decks in Programming
See All in Programming
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
170
PipeCDのプラグイン化で目指すところ
warashi
1
240
NPOでのDevinの活用
codeforeveryone
0
680
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
690
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
460
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
320
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1.2k
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
0
510
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
570
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
590
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
0
310
関数型まつりレポート for JuliaTokai #22
antimon2
0
160
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
140
7k
Documentation Writing (for coders)
carmenintech
72
4.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Facilitating Awesome Meetings
lara
54
6.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
940
Code Reviewing Like a Champion
maltzj
524
40k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
A Tale of Four Properties
chriscoyier
160
23k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
950
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
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