運用チームが、あるEC2インスタンス群の CPUUtilization について、障害検知までのラグを短縮するため1分間隔でメトリクスを収集したいと考えている。現在は追加設定なしのデフォルト状態で、5分間隔でしかメトリクスが記録されていない。追加のエージェント導入やアプリケーション改修を行わずにこれを実現する方法として最も適切なものを選べ。(単一選択)
- A対象インスタンスで詳細モニタリング(detailed monitoring)を有効化する。ハイパーバイザーレベルの標準メトリクスが5分間隔から1分間隔で収集されるようになる
- B全インスタンスにCloudWatch Agentをインストールし、設定ファイルで収集間隔を1分に設定する
- Cアプリケーションコード内でSDKの
PutMetricDataを呼び出し、1分ごとにCPU使用率を自前で計測・送信するよう改修する - DCloudWatchダッシュボードのウィジェット側で表示間隔(period)を1分に変更する。データ収集自体は自動的に1分単位へ切り替わる
正解・解説・誤答理由・ひっかけを見る▼ open
解説
EC2インスタンスのCloudWatchメトリクス(CPUUtilization、NetworkIn/Out、DiskReadOps 等のハイパーバイザーレベルの指標)は、
デフォルトでは基本監視(basic monitoring)=5分間隔で収集され、追加料金は発生しない。
- これを1分間隔の詳細監視(detailed monitoring)に切り替えるには、インスタンス起動時またはインスタンス設定変更で 「CloudWatch詳細モニタリングを有効化」するだけでよく、エージェント導入もアプリケーション改修も不要である。
- 詳細監視は基本監視より追加費用がかかる(インスタンスごとの課金)が、実装コストは最小で障害検知のラグを大きく短縮できる。
- 一方、メモリ使用率やディスク使用率のようなOS内部の指標は、詳細監視を有効にしても収集されない(別途CloudWatch Agentが必要)点は区別すること。
- BCPUUtilization等の標準メトリクスはEC2側(ハイパーバイザー)が収集しており、Agentを追加導入しなくても詳細監視の有効化だけで1分間隔にできる。Agentが必要なのはメモリ/ディスク使用率など別種の指標。
- C要件は「アプリケーション改修を行わない」であり、また標準メトリクスの収集間隔を変えるだけならカスタムメトリクスの自前計測は過剰な実装コストになる。
- Dダッシュボード側のperiod設定は表示上の集計間隔にすぎず、実際にCloudWatchへ何分間隔でデータポイントが記録されるか(収集側の粒度)を変えるものではない。