Instiq
第4章 · 監視とロギング·v2.2.0·更新 2026/6/14·読了目安 約11分

変更要約: in-scope サービス網羅(是正): §4.3 にベストプラクティス横断点検の Trusted Advisor 節を追加(参考書で未説明だった軸B欠落を解消)

4.2ログ管理

この節の要点

ログの収集と分析——CloudWatch LogsLogs Insights(クエリ)、メトリックフィルターサブスクリプションフィルター集中ログ(Amazon Data Firehose→S3/OpenSearch)——を理解します。ログから洞察と検知を得ます。

ログは収集・検索・分析・集中管理が要点です。CloudWatch Logs を中心に、フィルターやストリーミングで活用します。

4.2.1ログの収集と分析

ログ管理を示した図。アプリやインフラのログを CloudWatch Logs に集約し、Logs Insights で SQL ライクにクエリ分析、メトリックフィルターで特定パターン(例: ERROR の数)をメトリック化してアラーム化、サブスクリプションフィルターでログをリアルタイムに Amazon Data Firehose へ流し、複数アカウント横断で S3(長期保管)や OpenSearch(全文検索/可視化)へ集中転送する構成を示した図。
ログの収集・分析・集中管理
  • CloudWatch Logs:ログを集約し、保持期間を設定。エージェントやサービスから収集。
  • Logs InsightsSQL ライクなクエリでログを高速に分析する。
  • メトリックフィルター:ログ内のパターン(例: ERROR)をメトリック化しアラームにつなぐ。
  • サブスクリプションフィルター:ログをリアルタイムに Firehose/Lambda へストリーミングし、S3/OpenSearch へ集中転送。
試験ポイント

「ログのクエリ分析=Logs Insights」「ログのパターンをアラーム化=メトリックフィルター」「ログのリアルタイム転送/集中化=サブスクリプションフィルター→Firehose→S3/OpenSearch」 は DOP-C02 で頻出です。組織横断のログ集中管理はサブスクリプションフィルター+Firehose が定番です。

コツ

「特定の文字列(例: NullPointerException)がログに出たらアラート」はメトリックフィルターでメトリック化→アラームが定石です。長期保管は S3、全文検索/可視化は OpenSearch を使い分けます。

DOP-C02 のログ設計は「収集→分析→検知→集中保管」の各段で適切なサービスを選べるかが問われます。CloudWatch Logs はロググループごとに保持期間を設定でき(無期限も可だがコストに注意)、統合 CloudWatch Agent が EC2/オンプレからメトリックとログをまとめて送ります。Logs Insights は SQL ライクな構文(fields/filter/stats/sort)で大量ログを横断検索し、よく使うクエリは保存できます。メトリックフィルターはログ内パターンをカウント/抽出してメトリック化し、アラームへつなぎます(ただし過去ログには遡及しない点に注意)。リアルタイムの配信は サブスクリプションフィルターで、宛先は Kinesis Data Streams/Firehose/Lambda。組織横断では各アカウントのロググループから中央アカウントの Firehose へ送り、S3(長期・安価、Athena でクエリ)OpenSearch(全文検索・ダッシュボード)へ集約します。改ざん耐性が要るなら S3 Object Lock や、API 監査の CloudTrail(→ CloudWatch Logs/ S3)を併用します。コスト最適化として、不要なデバッグログの抑制・保持期間の見直し・ログのサンプリング/フィルタリングを行うのも DevOps の責務です。

やりたいこと機能要点
ログを対話的に分析Logs InsightsSQL ライクなクエリ・保存可
ログのパターンを検知メトリックフィルター→アラームERROR 数などをメトリック化(遡及なし)
リアルタイムに転送サブスクリプションフィルターKinesis/Firehose/Lambda へ
長期保管 / 全文検索S3 / OpenSearch安価保管は S3・検索は OpenSearch
補足

シナリオ:数十アカウントのアプリログを 1 か所に集め、セキュリティ調査では全文検索、監査では 7 年保管したい。→ 各アカウントの サブスクリプションフィルターから中央アカウントの Amazon Data Firehose へストリーミングし、Firehose の分岐で OpenSearch(全文検索/ダッシュボード)S3(7 年保管・Object Lock)の両方へ配信。S3 は Athena でアドホック分析でき、長期コストも抑えられます。

補足

FAQ:メトリックフィルターとサブスクリプションフィルターはどう違う? メトリックフィルターはログ内パターンをメトリック化してアラームにつなぐ(CloudWatch 内で完結)。サブスクリプションフィルターはマッチしたログをリアルタイムに外部(Kinesis/Firehose/Lambda)へストリーミングして集中処理・転送します。検知ならメトリックフィルター、転送/集中化ならサブスクリプションフィルター、と使い分けます。

注意

ひっかけ:メトリックフィルターは設定後に到着するログにのみ適用され、過去のログには遡及しません。「過去のログから件数を数えたい」場合は Logs Insights でクエリします。また長期・大量保管をすべて CloudWatch Logs に置くと割高——保管は S3、検索/可視化は OpenSearch へ寄せるのが定石です。

4.2.2ログ/運用データの大規模分析・可視化

S3 に集めたログや運用データは、目的に応じた分析サービスで掘り下げます。Athena は S3 上のデータに対しサーバーレスで SQL クエリを実行でき、インフラ管理なしにアドホック調査やコスト/アクセスログ分析に向きます(前述の集中ログの定番)。Amazon EMR は Spark/Hadoop などで大規模なバッチ/分散処理を行い、Athena では重い TB 級ログの ETL や複雑な集計に使います。Amazon QuickSight は分析結果をBI ダッシュボードとして可視化し、運用 KPI やコストを関係者へ共有できます。Amazon AppFlow は SaaS(例: 監視/チケット系 SaaS)と AWS の間でノーコードのデータ連携を行い、外部データを分析基盤へ取り込みます。いずれも DevOps では「観測データを意思決定に変える」後段の分析レイヤーであり、リアルタイム検知(メトリックフィルター/アラーム)とは役割が異なります。

4.2.3この節のまとめ

  • 分析=Logs Insights/検知=メトリックフィルター→アラーム
  • 集中化=サブスクリプションフィルター→Firehose→S3/OpenSearch
  • 大規模分析=Athena(SQL)/EMR(分散処理)、可視化=QuickSight、SaaS連携=AppFlow

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 大量のログから、SQL ライクなクエリで特定条件のエントリを高速に分析したい。何を使いますか?

Q2. ログに特定のエラー文字列が一定回数以上出現したらアラームを出したい。何を使いますか?

Q3. 複数アカウントのログをリアルタイムに集約し、S3 や OpenSearch へ集中転送したい。何を使いますか?

理解度を確認第4章「監視とロギング」の問題を解く

学習の記録を残しませんか

参考書はすべて無料で読めます。無料登録すると、問題集での演習・既読と進捗の記録・間違えた問題の復習・ハイライトが使えます。