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
全AWSエンジニアに捧ぐ、CloudWatch 設計・運用 虎の巻 / CloudWatch ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
iselegant
May 29, 2023
Technology
20k
49
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
全AWSエンジニアに捧ぐ、CloudWatch 設計・運用 虎の巻 / CloudWatch design and operation bible
iselegant
May 29, 2023
More Decks by iselegant
See All by iselegant
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
6
1.2k
Progressive Deliveryで支える!スケールする衛星コンステレーションの地上システム運用 / Ground Station Operation for Scalable Satellite Constellation by Progressive Delivery
iselegant
1
370
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
22
12k
勝手に!深堀り!Cloud Run worker pools / Deep dive Cloud Run worker pools
iselegant
5
3.5k
Amazon ECSとCloud Runの相互理解で広げるクラウドネイティブの景色 / Mutually understanding Amazon ECS and Cloud Run
iselegant
20
4.9k
AWSコンテナ本出版から3年経った今、もし改めて執筆し直すなら / If I revise our container book
iselegant
20
8k
Amazon ECS & AWS Fargate 今昔物語 / past and present stories of Amazon ECS and AWS Fargate
iselegant
20
5.9k
Binary Authorizationと友達になろう / Let's be friends with Binary Authorization
iselegant
3
1.3k
エンジニアとして成長するための持続可能なアウトプット戦略 / Sustainable Output Strategy
iselegant
7
1.4k
Other Decks in Technology
See All in Technology
Snowflakeと仲良くなる第一歩
coco_se
3
300
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
120
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
450
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
51
58k
"何を作るか"を任される エンジニアは、どう育つのか
yutaokafuji
1
270
Databricks における 生成AIガバナンスの実践
taka_aki
1
360
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
2
500
新しいVibe Codingと”自走”について
watany
5
240
Reliability in the Age of AI: Engineering for AI Velocity
rrreeeyyy
0
110
Chart.js が簡単に使えるようになっていたので OGP 画像生成に使った話
kamekyame
0
170
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2.4k
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
340
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
410
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
320
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
Transcript
2023-05-29 新井 雅也、馬勝 淳史 全AWSエンジニアに捧ぐ、 CloudWatch 設計・運用 虎の巻
新井 雅也 M a s a y a A R
A I msy78 ・某大手SI企業に所属 ・金融業界のお客様に向けたビジネス提案や システム設計、開発、運用を担当 ・好きな技術・サービスはECS, Fargate, App Runner, Kubernetes, Golang, Rust, Pulumi テックリード /アーキテクト 馬勝 淳史 Atsushi UMAKATSU HorseVictory PdM / フロントエンジニア ・某大手SI企業に所属 ・金融セグメントの顧客への設計、開発、ビジネス提案、 UI/UX検討などにも従事 ・好きな技術・サービスはCDK, ECS, Fargate, TypeScript
⚠ おことわり ⚠ u本発表は登壇者らの著書「CloudWatch[本格]入門 」の内容をもとに、 追加・修正した内容となっています。 u2023年5月29日時点の内容に基づき作成しています。 u可能な限り正確な内容を記載するように努めていますが、 内容に関して保証するものではありません。
2023-05-29 新井 雅也、馬勝 淳史 全AWSエンジニアに捧ぐ、 CloudWatch 設計・運用 虎の巻
2023-05-29 新井 雅也、馬勝 淳史 全AWSエンジニアに捧ぐ、 CloudWatch 設計・運用 虎の巻?
虎の巻とは?
虎の巻とは? 虎の巻(とらのまき)は、門外不出の秘伝が書かれている書。 転じて、教科書などに対する解説書のことも指す。 一部引用:https://ja.wikipedia.org/wiki/%E8%99%8E%E3%81%AE%E5%B7%BB
虎の巻とは? 虎の巻(とらのまき)は、門外不出の秘伝が書かれている書。 転じて、教科書などに対する解説書のことも指す。 一部引用:https://ja.wikipedia.org/wiki/%E8%99%8E%E3%81%AE%E5%B7%BB CloudWatchに関するオンラインドキュメント(=教科書)の内容に対し、 本発表(=解説書)を通して設計・運用観点における理解を深めていただく
AWSとSREの観点から眺めるCloudWatchの重要性 S R E
AWSとSREの観点から眺めるCloudWatchの重要性 u220以上のサービスを提供 u自分たちの課題解決に必要なサービスの組み合わせ (「Building Block」と呼ばれる思想)
AWSとSREの観点から眺めるCloudWatchの重要性 u220以上のサービスを提供 u自分たちの課題解決に必要なサービスの組み合わせ (「Building Block」と呼ばれる思想) 自律的に開発しやすい環境が提供される中、 チームの裁量やビジネス成長によるシステム拡張が進むとどうなるか?
システム拡張に伴い、当然ながら運用の複雑性は増していく
サービス追加
サービス追加
クライアント側で リクエストエラー どこで何が発生しているか? システム拡張に伴い、当然ながら運用の複雑性は増していく エラーの影響範囲は?
AWSとSREの観点から眺めるCloudWatchの重要性 u220以上のサービスを提供 u自分たちの課題解決に必要なサービスの組み合わせ (「Building Block」と呼ばれる思想) 自律的に開発しやすい環境が提供される中、 チームの裁量やビジネス成長によるシステム拡張が進むとどうなるか?
AWSとSREの観点から眺めるCloudWatchの重要性 u220以上のサービスを提供 u自分たちの課題解決に必要なサービスの組み合わせ (「Building Block」と呼ばれる思想) 自律的に開発しやすい環境が提供される中、 チームの裁量やビジネス成長によるシステム拡張が進むとどうなるか? ・サービス(=ブロック)の数が肥大化する ・サービス間の接続が増し、システム内の相互関係が複雑化する ・故に、障害原因や影響範囲の特定が困難になりやすい
AWSとSREの観点から眺めるCloudWatchの重要性 S R E ビジネス拡大に伴う システムの複雑化・分散化
AWSとSREの観点から眺めるCloudWatchの重要性 S R E uIT運用におけるSWEのアプローチ uシステムの信頼性を維持しつつも、 運用を改善するために必要なタスクを行う e.g. モニタリング、変更管理、 インシデント対応、キャパシティ計画
AWSとSREの観点から眺めるCloudWatchの重要性 S R E ビジネス拡大に伴う システムの複雑化・分散化 信頼性維持と運用改善
AWSとSREの観点から眺めるCloudWatchの重要性 S R E ビジネス拡大に伴う システムの複雑化・分散化 信頼性維持と運用改善 どうやって両立する?
AWSとSREの観点から眺めるCloudWatchの重要性 S R E ビジネス拡大に伴う システムの複雑化・分散化 信頼性維持と運用改善 オブザーバビリティの 重要性 どうやって両立する?
オブザーバビリティ(Observability)
オブザーバビリティ(Observability) いつ、どこで、なにが起こっているのか、 システムの状態を把握できる能⼒・状態のこと 日本語では「可観測性」と訳される。 また、observabilityの最初の「o」と最後の「y」以外の単語数で短縮して「o11y」と表現されることもある。
ͱͱɺ੍ޚֶͷʹ͓͍ͯɺ ʮ֎෦ग़ྗͷใΛجʹγεςϜ෦ঢ়ଶΛਪఆ͢ΔͨΊͷࢦඪʯͱͯ͠ར༻͞Ε͍ͯͨɻ 引用. https://www.sciencedirect.com/science/article/pii/S1474667017700948
Ref. https://www.dynatrace.com/ja/gartner-magic-quadrant-for- application-performance-monitoring-observability/ オブザーバビリティ実現を支える主要なサービス
Ref. https://www.dynatrace.com/ja/gartner-magic-quadrant-for- application-performance-monitoring-observability/ オブザーバビリティ実現を支える主要なサービス
AWSとSREの観点から眺めるCloudWatchの重要性 S R E ビジネス拡大に伴う システムの複雑化・分散化 信頼性維持と運用改善 オブザーバビリティの 重要性 どうやって両立する?
AWSとSREの観点から眺めるCloudWatchの重要性 S R E ビジネス拡大に伴う システムの複雑化・分散化 信頼性維持と運用改善 オブザーバビリティの 重要性
CloudWatchのサービススイート
CloudWatchのサービススイート
CloudWatchにおける各サービスの責務
CloudWatchにおける各サービスの責務
CloudWatchにおける各サービスの責務
CloudWatchにおける各サービスの責務
CloudWatchにおける各サービスの責務
CloudWatchにおける各サービスの責務
CloudWatchにおける各サービスの責務
CloudWatchにおける各サービスの責務
CloudWatchにおける各サービスの責務 今回の発表で 取り上げるサービス 今回の発表で 取り上げるサービス
CloudWatch メトリクスの設計・運用 虎の巻
CloudWatchにおける各サービスの責務 再掲
CloudWatchメトリクス AWS 上の多様なワークロードにおける測定可能なデータポイントの集合 u時系列のデータとして集計され、時刻と値を保持 uメトリクス情報を保存可能なAWSサービスは多岐に渡る u「名前空間」、「ディメンション」、「メトリクス」の3要素で構成
CloudWatchメトリクスの概要
CloudWatchメトリクスの概要 メトリクスにおける 論理的なグループ 生成されたメトリクスは 必ずいずれかの名前空間に分類される
CloudWatchメトリクスにおける名前空間
CloudWatchメトリクスの概要
CloudWatchメトリクスの概要 メトリクスを特定するための識別子。 分析する際の切り口・粒度。
CloudWatchメトリクスの概要
CloudWatchメトリクスのディメンション
CloudWatchメトリクスの概要
CloudWatchメトリクスの概要
CloudWatchメトリクスにおけるデータポイントの保持期間 時間経過について、メトリクス値は間引きされていく
CloudWatchメトリクス 設計・運用上の注意点 p 15ヶ月以上メトリクスを保持する場合はMetric Streamsで保存が可能 p 利用者によるメトリクスの削除がサポートされていない p CloudWatch Metrics
Insightsでクエリ可能なデータは直近3時間まで 設計 運用 運用
設計 修正する CloudWatchメトリクス 設計・運用上の注意点 15ヶ月以上メトリクスを保持する場合はMetric Streamsで保存が可能 u 別途、料金が発生するため要注意 u データポイント間隔が短いメトリクスは料金が肥大化しがちなので、適切にフィルタする
u 15ヶ月保持された後に勝手に削除されていく動き u 検証用途でゴミリソースを大量に作成すると、環境が汚れることがあるため注意 u メトリクスの保存料金は発生しない 運用 CloudWatchメトリクス 設計・運用上の注意点 利用者によるメトリクスの削除がサポートされていない
運用 CloudWatchメトリクス 設計・運用上の注意点 CloudWatch Metrics Insightsでクエリ可能なデータは直近3時間まで u SQLライクな構文でメトリクスをグラフ化できる機能 u ユースケースとしては、リアルタイム分析・検索用途
CloudWatch Logsの設計・運用 虎の巻
CloudWatchにおける各サービスの責務 再掲
CloudWatch Logs AWS上でワークロードを運用する際に発生するログの保存が可能なサービス u各種フィルタにより、ログの加工・保存・モニタリングに応用可能 u「アプリケーションログ」と「AWSサービスログ」 u「ログイベント」、「ログストリーム」、「ロググループ」の3要素で構成
CloudWatch Logsの概要
CloudWatch Logsの概要
CloudWatch Logsの概要 アプリケーションやAWSサービスから 出力されたログ内容。 レコード単位で記録される。 複数のログストリームをまとめたもの。 多くのケースではアプリケーションや 各AWSサービスの定義単位でグルーピングされる。 同じソース上から出力された複数の ログイベントを束ねたもの。
CloudWatch Logsの概要 ロググループとログストリームの関係は 1:N ログストリームとログイベントの関係は 1:N
CloudWatch Logsの概要
CloudWatch Logs 設計・運用上の注意点 p サブスクリプションフィルターの制約 p ロググループの分離に関する判断 p ログ取り込みと保存に関する考慮 設計
設計 運用
CloudWatch Logs 設計・運用上の注意点 サブスクリプションフィルターの制約 設計 u クォータ制約として、1ロググループあたり2つまで u クォータ変更はできない u
条件の集約など、ログ出力内容も要考慮 u 文字列フィルタリングに正規表現が利用できない u 独自構文で記述が必要 u 「正規表現でやれることは実現できる」と勘違いしない
CloudWatch Logs 設計・運用上の注意点 ロググループの分離に関する判断 設計 u 分離の粒度は開発者次第であるが、以下のような検討軸で判断すると良さげ u アプリケーションの種別 u
保存ライフサイクルの違い u アラーム単位(サブスクリプションフィルタ数の制約を考慮) u 暗号化要件の有無
CloudWatch Logs 設計・運用上の注意点 ログ取り込みと保存に関する考慮 運用 u CloudWatch Logsは取り込み自体にもコストが発生する u デバッグログの吐き出しなどは要注意
u W-A観点から、保存要件とコストを考慮して保存期間を見直す方が良い u 保存コスト観点では、S3(標準ストレージクラス)と比較すると1.3倍ほど高額 u AWSサービスによっては、ロググループが自動生成されるものもある u App Runnerなどは、ランダムなインスタンスIDでロググループが作成 u その他、LambdaやCodeBuildなどのログはデフォルトで無期限保存
CloudWatch Container Insightsの設計・運用 虎の巻
CloudWatchにおける各サービスの責務 再掲
CloudWatch Container Insights ECS やEKS といったコンテナワークロードの パフォーマンス情報を統合的に分析できるサービス uコンテナの詳細な情報まで取得可能
CloudWatch Container Insightsのメカニズム
CloudWatch Container Insightsのメカニズム
CloudWatch Container Insightsのメカニズム { "Version": "0", "Type": "Task", "TaskId": "7ac4dfba69214411b4783a3b8189c9ba",
"TaskDefinitionFamily": "sleep360", : "CpuUtilized": 0.0, "CpuReserved": 10.0, "MemoryUtilized": 0, "MemoryReserved": 10, "CloudWatchMetrics": [{ "Namespace": "ECS/ContainerInsights", "Metrics": [ { "Name": "CpuUtilized", "Unit": "None” }, { "Name": "CpuReserved", "Unit": "None” }, : ], "Dimensions": [ [ "ClusterName” ], [ "ClusterName", "TaskDefinitionFamily” ] ] }] } ECSタスクに関する内容 JSON形式で記述
CloudWatch Container Insightsのメカニズム
CloudWatch Container Insights 設計・運用上の注意点 p コンピューティング構成によるContainer Insights有効化方法の違い p カスタムメトリクス自動作成に伴う追加コストの考慮 設計
運用
CloudWatch Container Insights 設計・運用上の注意点 コンピューティング構成によるContainer Insight有効化の違い 設計 u コントロールプレーン(ECS or
EKS)、データプレーン(EC2 or Fargate)の違いで手順が異なる u データプレーンがEC2の場合、追加設定が必要なイメージ ECS on EC2 構成 EKS on EC2 構成 ECS on Fargate 構成 EKS on Fargate 構成
CloudWatch Container Insights 設計・運用上の注意点 カスタムメトリクス自動作成に伴う追加コストの考慮 u 内部的に作成されるカスタムメトリクスは一つあたり 0.30 USD(*1) が発生
運用 (*1) アジアパシフィック(東京)における、最初の 10000メトリクスのコスト (*2) AWSドキュメント(https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-reference-performance-logs-ECS.html)記載の パフォーマンスログサンプルのメトリクス数は8つだが、2022年11月18日にサポートされたストレージ利用モニタリングにより、エフェメラルストレージ領域のメトリクスが取得できるようになった u コスト発生を極力抑えるためのTipsとして… u 開発環境では無効化、プロダクション環境では有効化など環境ごとに必要性を考慮 u ADOTを利用することで、カスタムメトリクスの送出を制限 単位コンポーネント名 カスタムメトリクス数 ECSクラスター 3 ECSサービス 5 ECSタスクファミリー 10 (*2) e.g. ECS on Fargate 構成のカスタムメトリクス数
X-Rayの設計・運用 虎の巻
CloudWatchにおける各サービスの責務 再掲
X-Ray アプリケーションが処理するリクエストに関して、 サービスコンポーネントに跨ぐ一連のトレースデータを収集するサービス uアプリケーション内部に組み込んで動作させる u「セグメント」、「トレース」で構成
X-Rayの概要
X-Rayの概要 X-Ray
X-Rayの概要 X-Ray
X-Rayの概要 X-Ray
X-Rayの概要 X-Ray メトリクスやLogsも含めて 全体を可視化
X-Rayの概要 X-Ray メトリクスやLogsも含めて 全体を可視化
X-Ray 設計・運用上の注意点 p コンテナ利用時におけるサイドカー構成・ロール付与・ネットワーク設定 p サポート言語による実装労力の差異 p 料金とパフォーマンス影響を考慮したサンプリング数の実装 設計 設計
運用
X-Ray 設計・運用上の注意点 コンテナ利用時におけるサイドカー構成・ロール付与・ネットワーク構成 設計 u X-Rayはアプリケーションの設定のみならず、周辺系の設定が割と面倒でハマることも多い u 全体感を押さえながら設定していくとベター
X-Ray 設計・運用上の注意点 サポート言語による実装労力の差異 設計 u アプリケーションのプログラミング言語によってX-Ray実装の手間が異なる u JavaはAuto-instrumentation agentによりコード変更なく組み込みが可能 u
GolangやJavaScript、TypeScript等はテレメトリデータを取得する箇所ごとにコーディングが必要
X-Ray 設計・運用上の注意点 料金とパフォーマンス影響を考慮したサンプリング数の実装 運用 u デフォルトでは、1 秒ごとに最初のリクエストを記録し、それ以降のリクエストは 5% ずつ記録
X-Ray 設計・運用上の注意点 料金とパフォーマンス影響を考慮したサンプリング数の実装 運用 u デフォルトでは、1 秒ごとに最初のリクエストを記録し、それ以降のリクエストは 5% ずつ記録 1秒
1秒 1秒 1秒 e.g. 毎秒200件リクエストが発生するケース ・・・ 最初のリクエスト(=1件) それ以降のリクエスト(=199件)の5%を取得 →199 ×0.05 = 9.95件
X-Ray 設計・運用上の注意点 料金とパフォーマンス影響を考慮したサンプリング数の実装 運用 u デフォルトでは、1 秒ごとに最初のリクエストを記録し、それ以降のリクエストは 5% ずつ記録 1秒
1秒 1秒 1秒 e.g. 毎秒200件リクエストが発生するケース ・・・ 最初のリクエスト(=1件) それ以降のリクエスト(=199件)の5%を取得 →199 ×0.05 = 9.95件 u リザーバサイズと固定レートを調整して自分たちのシステム特性に併せたサンプリング数を設定する ⇨リザーバサイズで調整可能 ⇨固定レートで調整可能
X-Ray 設計・運用上の注意点 料金とパフォーマンス影響を考慮したサンプリング数の実装 運用 u デフォルトでは、1 秒ごとに最初のリクエストを記録し、それ以降のリクエストは 5% ずつ記録 1秒
1秒 1秒 1秒 e.g. 毎秒200件リクエストが発生するケース ・・・ 最初のリクエスト(=1件) それ以降のリクエスト(=199件)の5%を取得 →199 ×0.05 = 9.95件 u リザーバサイズと固定レートを調整して自分たちのシステム特性に併せたサンプリング数を設定する ⇨リザーバサイズで調整可能 ⇨固定レートで調整可能 e.g. 1秒ごとに最初のリクエストを2件記録し、それ以降は記録したくない 1秒 1秒 1秒 1秒 ・・・ リザーバサイズ=2に設定 → 2件取得 固定レート=0%に設定 → 0件取得
まとめ
まとめ S R E ビジネス拡大に伴う システムの複雑化・分散化 信頼性維持と運用改善 オブザーバビリティの 重要性
まとめ
まとめ ・15ヶ月以上メトリクスを保持はMetric Streams ・利用者によるメトリクスの削除がサポート外 ・CloudWatch Metrics Insightsは直近3時間のデータ ・構成によるContainer Insights有効化方法の違い ・カスタムメトリクスに伴う追加コストの考慮
設計 運用 運用 設計 運用 ・コンテナ利用時に求められるアーキテクチャ ・サポート言語による実装労力の差異 ・サンプリング数の考慮 設計 設計 運用 ・サブスクリプションフィルターの制約 ・ロググループの分離に関する判断 ・ログ取り込みと保存に関する考慮 設計 設計 運用
その他のサービスはCloudWatch[本格]入門で解説しています! https://booth.pm/ja/items/4130172
Thank you!