- CloudWatch
アマゾンウェブサービス(AWS)環境を本番運用する際は、障害や性能劣化、リソース不足を早期に検知できる監視設計が欠かせません。Amazon CloudWatchを使えばメトリクスやログを収集できますが、ツールを設定するだけでは、実際の障害対応にはつながりません。
監視設計では、何を監視し、どの条件でアラートを出し、誰が一次確認を行い、どこまで対応するのかを事前に決めておく必要があります。ここが曖昧だと、通知が多すぎて重要な異常を見落としたり、アラートが出ても対応者が判断に迷ったりします。
この記事では、AWS監視設計で決めるべき基本項目、CloudWatchをはじめとする主な監視サービス、主要AWSサービス別の監視項目、アラート設計、運用体制の考え方を解説します。
AWS監視設計とは、AWS上で稼働するシステムの状態を継続的に把握し、異常や変化を検知するための設計です。Amazon CloudWatchでアラームを設定するだけでなく、監視対象、通知条件、一次対応、エスカレーションまで含めて設計します。
本番環境では、リソースの停止だけでなく、性能劣化、エラー増加、設定変更、セキュリティ上の異常も確認対象になります。監視範囲や通知条件が曖昧なままでは、障害の兆候を見逃し、アラート発生後の初動も遅れます。
安定運用に必要なのは、異常を検知する仕組みと、検知後に対応へ移れる体制です。
監視設計では、主に以下を決めます。
監視項目を増やしても、安全性が高まるとは限りません。重要度の低い通知が増えると、本当に対応すべき異常が埋もれます。どの状態を異常とみなすのか、誰に通知するのか、どの優先度で対応するのかを、項目ごとに整理します。
アラート発生後の動きも設計対象です。一次確認者、確認する情報、担当者や関係部門へ引き継ぐ条件を決めておけば、障害対応の初動を早められます。
監視設計は、本番稼働後に追加するものではなく、構築段階から検討します。利用するAWS サービス、可用性要件、障害時の影響範囲によって、見るべき項目や通知条件は変わります。
構築後に監視を追加すると、必要なログが取得されていない、通知先が決まっていない、責任範囲が曖昧なまま運用が始まる可能性があります。標準で取得できるメトリクスと、追加設定が必要な項目も分けて確認しなければなりません。たとえば、Amazon EC2のメモリ使用率やOS内部のディスク使用率などは、CloudWatch エージェントの導入が必要になる場合があります。
構築段階から監視を組み込めば、本番稼働後の手戻りを抑え、障害時の対応体制も設計に反映できます。システム構成と監視設計は分けずに、あわせて検討します。
監視設計では、検知、通知、判断、対応の流れを分けて整理します。ここでは、本番運用前に確認しておきたい基本項目を解説します。
まず、監視対象を洗い出します。対象には、Amazon EC2、Amazon RDS、AWS Lambda、Elastic Load Balancing、ネットワーク、アプリケーションログ、セキュリティイベント、コストなどがあります。
次に、対象ごとに見る項目を整理します。EC2であればCPU使用率、メモリ使用率、ディスク使用率、ステータスチェックなどが候補になります。RDSではCPU使用率、接続数、ストレージ空き容量、IOPS、レプリケーション遅延などを確認します。
すべての項目を見る必要はありません。業務影響が大きい項目、障害の兆候として把握すべき項目、復旧判断に使う項目を優先します。
監視項目を決めたら、どの状態を異常とみなすかを定義します。CPU使用率が一定時間高い、RDSの空き容量が少ない、Lambdaのエラー数が増えているなど、アラートを出す条件を具体化します。
しきい値を低くすれば安全になるわけではありません。条件が厳しすぎると通知が増え、現場はアラートを通常業務のノイズとして扱い始めます。一方で、条件が緩すぎると、障害の兆候を検知できません。
瞬間的なスパイクと継続的な異常は分けて扱います。一時的な負荷上昇で通知するのか、一定時間続いた場合に通知するのかを決めることで、不要なアラートを抑えられます。
アラートは、通知先と通知方法まで決めて運用に組み込みます。軽微なアラートであればメールやチャット通知で足りますが、サービス停止や顧客影響につながる異常では、担当者への直接連絡や運用チームへのエスカレーションも必要になります。
通知先を個人に依存させると、担当者不在時に対応が止まります。チーム単位の通知先、当番体制、代理対応のルールを決めておけば、アラート発生後の対応漏れを防げます。
通知を受けた担当者が何を確認し、どの条件で障害と判断し、誰に引き継ぐのかを明確にします。対応フローが曖昧なままでは、アラートに気づいても、初動確認や切り分けに時間がかかります。
複数のAWS サービスが連携する構成では、原因がAmazon EC2、Amazon RDS、ネットワーク、アプリケーションのどこにあるのかを順番に確認する手順が必要です。復旧後の報告や再発防止の流れまで決めておくと、障害対応を運用改善につなげられます。
監視対象は、障害、操作履歴、構成変更、セキュリティ、コストに分けて整理します。Amazon CloudWatchを中心に、目的に応じて複数のAWS サービスを組み合わせます。
サービス | 主な役割 | 監視・確認できること |
Amazon CloudWatch | メトリクス・ログ・アラームの監視 | CPU使用率、エラー数、ログ、アラーム通知、ダッシュボード |
AWS CloudTrail | 操作履歴の記録 | 誰が、いつ、どのAPI操作を行ったか |
AWS Config | リソース構成の記録・評価 | 設定変更、構成履歴、ルール違反 |
Amazon GuardDuty | 脅威検知 | 不審なアクセス、認証情報の悪用、異常な通信 |
AWS Health Dashboard | AWSサービス側の影響確認 | AWS側の障害、メンテナンス、利用中リソースへの影響 |
AWS Budgets / AWS Cost Explorer | コスト監視・利用状況の確認 | 予算超過、利用料金の増加、サービス別コスト |
Amazon CloudWatchは、メトリクス、ログ、アラームを扱う中核サービスです。ただし、操作履歴はAWS CloudTrail、構成変更はAWS Config、脅威検知はAmazon GuardDuty、コスト監視はAWS BudgetsやAWS Cost Explorerといったように、目的ごとに確認する情報を分けます。
監視項目は、サービスの特性と障害時の影響範囲から決めます。CPU使用率のようなリソース指標だけでなく、エラー数、接続数、遅延、スロットリングなども確認対象になります。
AWS サービス | 主な監視項目 | 確認すべきポイント |
Amazon EC2 | CPU使用率、メモリ使用率、ディスク使用率、ステータスチェック、ネットワーク通信量 | OSやアプリケーションの稼働状態、リソース不足、インスタンス障害の兆候 |
Amazon RDS | CPU使用率、メモリ使用率、ストレージ空き容量、接続数、IOPS、レプリケーション遅延 | 性能劣化、容量不足、接続過多、バックアップや冗長化の状態 |
AWS Lambda | 実行回数、エラー数、実行時間、タイムアウト、スロットリング | 処理失敗、実行時間の増加、同時実行数の制限、呼び出し元への影響 |
Elastic Load Balancing | リクエスト数、HTTP 4xx / 5xx、ターゲット応答時間、正常・異常ホスト数 | アプリケーション側のエラー、応答遅延、バックエンドの異常 |
Amazon S3 | リクエスト数、エラー数、レイテンシ、ストレージ使用量、アクセスログ | オブジェクトアクセスの異常、エラー増加、容量増加、想定外のアクセス |
Amazon VPC / ネットワーク | VPC Flow Logs、NAT Gateway通信量、VPN接続状態、Direct Connect接続状態 | 通信経路の異常、通信量の急増、外部接続の切断、想定外の通信 |
標準メトリクスだけでは取得できない項目もあります。たとえば、Amazon EC2のメモリ使用率やOS内部のディスク使用率は、CloudWatch エージェントの導入が必要になる場合があります。
監視項目は、サービス単位で機械的に決めず、障害時の影響範囲から逆算します。顧客影響が大きい処理、停止すると業務が止まるデータベース、外部連携に関わるネットワークは、優先して監視対象に含めます。
アラート設計では、緊急度の判定と対応手順まで決めます。通知条件が曖昧なままでは、緊急対応が必要な異常と確認目的の通知が混在し、優先順位を判断できません。
すべてのアラートを同じ通知先、同じ方法で送ると、緊急度の違いが伝わりません。サービス停止や顧客影響につながる異常は即時対応、リソース使用率の上昇や軽微なエラーは営業時間内の確認など、重要度に応じて通知方法を分けます。
緊急度の高いアラートは、チャット、電話、インシデント管理ツールなど、担当者がすぐに気づける経路を使います。傾向確認や定期的な見直しで足りる項目は、メールやダッシュボードで扱います。
アラートが多すぎると、現場は通知を通常業務のノイズとして扱い始めます。その状態では、本来すぐに確認すべき異常も埋もれます。
通知過多を防ぐには、しきい値、継続時間、通知頻度を調整します。一瞬の負荷上昇と、数分以上続く高負荷状態では、対応の必要性が異なります。同じ原因から複数のアラートが連鎖する場合は、通知をまとめる設計も有効です。
アラート発生後に確認する情報、障害と判断する条件、担当部門へ引き継ぐ基準を決めます。どのダッシュボードを見るのか、どのログを確認するのかが曖昧なままでは、一次対応が属人的になります。
対応手順を定めておけば、確認漏れや判断のばらつきを抑え、障害発生時の初動を安定させられます。
監視設計の失敗は、ツール不足よりも、検知後の判断基準や対応範囲が曖昧なまま運用に入ることで起こります。
よくある失敗 | 起こる問題 | 対策 |
CloudWatchの設定だけで終わる | アラートは出るが、確認手順や担当者が決まっていない | 監視項目、通知先、一次確認手順、エスカレーション先まで設計する |
監視項目を増やしすぎる | 重要度の低い通知が増え、緊急度の高い異常が埋もれる | 業務影響、顧客影響、復旧判断に関わる項目を優先する |
監視対象が偏っている | リソース状態だけを見て、ログ、構成変更、セキュリティイベントを見落とす | リソース監視、ログ監視、操作履歴、構成変更、脅威検知を分けて整理する |
しきい値を固定したままにする | 利用量の変化に合わず、誤検知や未検知が増える | アラート件数、対応履歴、リソース傾向をもとに調整する |
通知先が個人に依存している | 担当者不在時に確認が止まる | チーム単位の通知先、当番体制、代理対応のルールを決める |
障害対応の責任範囲が曖昧 | 自社、開発会社、運用委託先の間で判断が止まる | 一次対応、原因調査、復旧作業、報告の担当範囲を分ける |
コスト監視を入れていない | ログ保存量や通信量の増加に気づかず、想定外の料金が発生する | AWS BudgetsやAWS Cost Explorerで予算、利用量、増加傾向を確認する |
検知、通知、確認、対応、見直しまでを一つの流れとして設計すれば、アラートを運用改善に活かせます。
監視設計は、ツール設定ではなく、システムの重要度や障害時の影響範囲から整理します。
1.システムの重要度を整理する
顧客向けサービス、社内業務システム、検証環境では、求められる監視レベルが異なります。停止時の影響範囲、許容できる停止時間、夜間・休日対応の要否を確認します。
2.監視対象を洗い出す
Amazon EC2、Amazon RDS、AWS Lambda、Elastic Load Balancingなどのリソースに加え、アプリケーションログ、ネットワーク、セキュリティイベント、コストも対象に含めます。
3.監視項目としきい値を決める
CPU使用率、ストレージ空き容量、エラー数、接続数、レイテンシなどから、障害の兆候や業務影響につながる項目を優先します。しきい値は通常時の利用傾向やピーク時間帯を踏まえて設定します。
4.通知・対応フローを決める
即時対応が必要なもの、営業時間内の確認で足りるもの、定期的な傾向確認で扱うものを分けます。一次確認者、確認するログやダッシュボード、エスカレーション先も決めておきます。
5.運用後に見直す
アラート件数、誤検知、非検知、対応時間を確認します。使われていない項目や、障害時に判断材料が足りなかった項目は見直します。システム構成や利用量が変われば、監視設計も更新します。
自社で対応できるかどうかは、AWSの知識だけでは決まりません。担当者の人数、対応時間、障害時の判断権限、復旧まで担える体制も確認します。
判断項目 | 自社運用が向くケース | 外部委託を検討すべきケース |
AWSに詳しい担当者 | 社内にAWS運用経験者がいる | 担当者が少ない、または特定の人に依存している |
対応時間 | 平日日中の対応で足りる | 夜間・休日を含む監視や一次対応が必要 |
システムの重要度 | 停止時の影響が限定的 | 顧客向けサービスや基幹システムなど、停止時の影響が大きい |
障害対応の範囲 | アラート確認や簡単な切り分けを社内で行える | 原因調査、復旧支援、関係者への報告まで支援が必要 |
運用対象の規模 | 単一アカウント、少数リソースで管理できる | 複数アカウント、複数システム、複数拠点にまたがる |
セキュリティ監視 | 基本的なログ確認や権限管理で足りる | AWS CloudTrail、AWS Config、Amazon GuardDutyなどを継続的に確認したい |
運用改善 | 社内でアラート件数や対応履歴を見直せる | 監視項目、しきい値、通知条件を定期的に改善したい |
24時間365日の監視、複数アカウントの運用、セキュリティ監視、障害時の一次対応まで求める場合、自社だけで体制を維持する負荷は大きくなります。監視設計の段階で、自社が担う範囲と外部に任せる範囲を分けておくと、運用開始後の責任範囲も明確になります。
AWS監視設計では、Amazon CloudWatchの設定だけでなく、監視対象、アラート条件、通知先、対応フローまで整理します。監視範囲やしきい値が曖昧なままでは、障害の兆候を見逃し、アラート発生後の初動も遅れます。
本番環境では、リソース監視、ログ監視、操作履歴、構成変更、セキュリティイベント、コスト状況を分けて確認します。CloudWatchを中心に、AWS CloudTrail、AWS Config、Amazon GuardDuty、AWS Budgetsなどを組み合わせ、目的に応じた監視範囲を設計します。
安定した運用には、検知後の判断基準と対応手順が欠かせません。自社だけで対応が難しい場合は、外部委託も含めて、必要な運用体制を検討するとよいでしょう。