---
title: 今更聞けないAWSのログ運用
tags: 
author: [小林拓磨](https://docswell.com/user/norit4ma)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/YJ6YRZX97V.jpg?width=480
description: JAWS-UG初心者支部#61 初心者向けオンラインLT大会 にて登壇しました。 https://jawsug-bgnr.connpass.com/event/324349/
published: July 24, 24
canonical: https://docswell.com/s/norit4ma/5R23JE-cloudwatch-for-beginner
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/YJ6YRZX97V.jpg)

今更聞けないAWSでのログ運用
Takuma Kobayashi, Finatext
© 2024 Finatext Holdings Ltd.


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GJ5G8WXDJ4.jpg)

Outline
● 自己紹介
● なぜログが必要なのか
● ECSからの使い方
● ALBからの使い方
● つまりログのフォーマットは構造化が大事！
● 社内loggerライブラリの話
● まとめ
© 2024 Finatext Holdings Ltd.
1


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LE3R844Q75.jpg)

自己紹介
● 小林拓磨（X: @takuma5884rbb）
● 2023 (株)Finatext 入社
● ソフトウェア・AWSエンジニア
○ Go・AWSを用いた証券取引サービスの開発・運用
○ Terraformを用いたIaC
● 2024 Japan AWS Jr. Champions
● 趣味
○ 料理
○ ランニング
© 2024 Finatext Holdings Ltd.
2


# Page. 4

![Page Image](https://bcdn.docswell.com/page/8EDYMQQWEG.jpg)

はじめに
DevOps、してますか？
© 2024 Finatext Holdings Ltd.
3


# Page. 5

![Page Image](https://bcdn.docswell.com/page/V7P6RLLXJ8.jpg)

Webサービス開発・運用における日々
環境でのデバッグ、障害対応、etc.
「何が起こったのか」の情報がないと、
● 再現に時間がかかる
● 環境依存の問題など、再現が難しい事象も
→原因がわからなければ、対応のしようがない
© 2024 Finatext Holdings Ltd.
4


# Page. 6

![Page Image](https://bcdn.docswell.com/page/2JV3RQQ3EQ.jpg)

アプリケーションには声を上げさせる
error rate, latency
などの集計
一連の処理がどのような
道筋を辿ったか
ある処理（あるコードの箇所）
において
何が起こったのか
https://github.com/cncf/tag-observability/blob/8cfd111503564e15d353cafac4fe2560618a740d/whitepaper.md
© 2024 Finatext Holdings Ltd.
5


# Page. 7

![Page Image](https://bcdn.docswell.com/page/5EG3MWWY7L.jpg)

なぜログが必要なのか？
ある時に起こった事象がログから追える！
ログの構造を工夫すれば、トレース・メトリクスも追える！
（後述します）
もちろん、適材適所は大事
© 2024 Finatext Holdings Ltd.
6


# Page. 8

![Page Image](https://bcdn.docswell.com/page/4JQ5R3367P.jpg)

具体的な使い方を見ていきます
まずはECS＋CloudWatch
© 2024 Finatext Holdings Ltd.
7


# Page. 9

![Page Image](https://bcdn.docswell.com/page/K749811ME1.jpg)

CloudWatch Logs
● 様々なリソースからログデータを収集・集計・分析が可能
● リソースの関係は以下
Log event
Log stream
Log event
Log group
Log event
Log stream
Log event
1つ1つのアクティビティのレコード
イベントソースを共有する
ログイベントのまとまり
© 2024 Finatext Holdings Ltd.
監視やアクセス制御の設定を
共有する単位
8


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LJ1K2GGY7G.jpg)

CloudWatch Logs/Log group
● 監視対象のAWSリソースごとにLog groupを作成可能
© 2024 Finatext Holdings Ltd.
9


# Page. 11

![Page Image](https://bcdn.docswell.com/page/GJWDRKK172.jpg)

CloudWatch Logs/Log stream
● Log groupはさらにLog streamという単位に分割される
● ECSの場合はtask単位
ECSの場合、ここが
&lt;prefix&gt;/&lt;service name&gt;/&lt;task ID&gt;
© 2024 Finatext Holdings Ltd.
10


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4EZGRZZXJ3.jpg)

CloudWatch Logs/Log event
● 様々なリソースからログデータを収集・集計・分析が可能
© 2024 Finatext Holdings Ltd.
11


# Page. 13

![Page Image](https://bcdn.docswell.com/page/Y76YRZZPEV.jpg)

CloudWatch Logs/Logs Insights
● Log streamに対してクエリを投げてデータ取得・分析が可能
© 2024 Finatext Holdings Ltd.
12


# Page. 14

![Page Image](https://bcdn.docswell.com/page/G75G8WWP74.jpg)

ECS→CloudWatch Logs
ログの書き込みに必要なリソースは以下
1. ログの書き込み先を指定したタスク定義
2. ログを書き込むためのIAM Policy
© 2024 Finatext Holdings Ltd.
13


# Page. 15

![Page Image](https://bcdn.docswell.com/page/9J2YKQQZJR.jpg)

ECS→CloudWatch Logs
● タスク定義
© 2024 Finatext Holdings Ltd.
14


# Page. 16

![Page Image](https://bcdn.docswell.com/page/DEYGNWWNEM.jpg)

ECS→CloudWatch Logs
● タスク実行ロールにログの書き込み権限が必要
● Managed PolicyでよければAmazonECSTaskExecutionRolePolicy
© 2024 Finatext Holdings Ltd.
15


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VJNGX99V78.jpg)

ECS→CloudWatch Logs
● 標準出力がLog eventとして表示される
© 2024 Finatext Holdings Ltd.
16


# Page. 18

![Page Image](https://bcdn.docswell.com/page/YE9W822VE3.jpg)

閑話休題
AWS ManagedであるALBのアクセスログから、
AWSにおけるログ運用を学んでみる
© 2024 Finatext Holdings Ltd.
17


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GE8N85547D.jpg)

ALB
問題のあったエンドポイント・パスに対して、
問題のあった期間にアクセスのあった全量を知りたい
© 2024 Finatext Holdings Ltd.
18


# Page. 20

![Page Image](https://bcdn.docswell.com/page/LELPRYYV7R.jpg)

ALB/アクセスログの設定方法
© 2024 Finatext Holdings Ltd.
19


# Page. 21

![Page Image](https://bcdn.docswell.com/page/4JM4RNNN7W.jpg)

ALB/アクセスログの設定方法
● アクセスログの保存先として、S3バケットを指定可能
© 2024 Finatext Holdings Ltd.
20


# Page. 22

![Page Image](https://bcdn.docswell.com/page/PJRWRDD479.jpg)

ALB/Athenaからクエリを投げる場合のテーブル定義（一部省略）
© 2024 Finatext Holdings Ltd.
21


# Page. 23

![Page Image](https://bcdn.docswell.com/page/PEXPR11Z7X.jpg)

ALBのアクセスログ形式から学べること
Athenaからサクッと集計できる
↓
構造化が大事！！！
© 2024 Finatext Holdings Ltd.
22


# Page. 24

![Page Image](https://bcdn.docswell.com/page/3EKDR22VJD.jpg)

ログフォーマットを担保するための実装/社内loggerライブラリ
● 一行書くだけで、時間や発生箇所なども構造的に出力
© 2024 Finatext Holdings Ltd.
23


# Page. 25

![Page Image](https://bcdn.docswell.com/page/L73R84YQJ5.jpg)

ログフォーマットを担保するための実装/アクセスログ
● labstack/echo と合わせたアクセスログの収集
● 様々なリソースからログデータを収集・集計・分析が可能
© 2024 Finatext Holdings Ltd.
24


# Page. 26

![Page Image](https://bcdn.docswell.com/page/87DYMQ5W7G.jpg)

ログフォーマットを担保するための実装/アクセスログ
● 実際のアクセスログ
ユーザーID
© 2024 Finatext Holdings Ltd.
25


# Page. 27

![Page Image](https://bcdn.docswell.com/page/VJP6RLGXE8.jpg)

Logs Insightsで調査してみる
● あるパスのレスポンス状況は？
© 2024 Finatext Holdings Ltd.
26


# Page. 28

![Page Image](https://bcdn.docswell.com/page/2EV3RQ637Q.jpg)

Logs Insightsで調査してみる
● サービスが利用不可能だった時間帯は？（サーバーとしては生きている前提）
© 2024 Finatext Holdings Ltd.
27


# Page. 29

![Page Image](https://bcdn.docswell.com/page/57G3MWNYJL.jpg)

Logs Insightsが超便利
● クエリでトレースからメトリクスまで出せる
○ もちろん、定期的に計測したいならメトリクスフィルターとかを使った方がいい
● ただし半構造化データにしてフォーマットを整えていくことが必要
● CloudWatchは料金が高いイメージがあるが、実際掛かっているのは書き込み部分
だけで、トータルで見るとS3+Athena構成とそんなに変わらない
© 2024 Finatext Holdings Ltd.
28


# Page. 30

![Page Image](https://bcdn.docswell.com/page/4EQ5R3Q6JP.jpg)

何よりも大事なこと
● 構造化されたフォーマットでログ出力する
● 適切な箇所でログ出力する
○ アクセスログ、エラーログ、etc.
● 知りたい情報に応じてクエリを作る
● どんな場合にどんな情報が必要かを考え、その通りに実装し、その通りに調査する
● 運用で困った経験から、より良い実装・設計を考えるヒントが得られる
● ソフトウェアエンジニアとしての成長につながる
© 2024 Finatext Holdings Ltd.
29


# Page. 31

![Page Image](https://bcdn.docswell.com/page/KJ4981NM71.jpg)

何よりも大事なこと
開発と運用は表裏一体！
© 2024 Finatext Holdings Ltd.
30


# Page. 32

![Page Image](https://bcdn.docswell.com/page/LE1K2G5YJG.jpg)

まとめ
● CloudWatch Logsを活用することで、
アプリケーションの利用状況を様々な断面から調査できる
● ただし、構造化されたログフォーマットと、ログ出力の実装を知っていることが必要
● 開発と運用のサイクルを回してくことが大事
© 2024 Finatext Holdings Ltd.
31


# Page. 33

![Page Image](https://bcdn.docswell.com/page/GEWDRK51J2.jpg)

まとめ
より良いログ運用について学び、
エンジニアとして圧倒的成長💪
© 2024 Finatext Holdings Ltd.
32


# Page. 34

![Page Image](https://bcdn.docswell.com/page/47ZGRZNXE3.jpg)



