CloudWatch Agent(procstatプラグインによるプロセス監視)難易度 標準無料
本番のLinuxサーバーで稼働する特定のJavaアプリケーションプロセス(myapp.jar)について、そのプロセス固有のCPU使用率・メモリ常駐サイズ・実行中スレッド数をCloudWatchメトリクスとして監視し、プロセスが異常終了した場合にはアラームで検知したい。この要件を満たすCloudWatch Agentの設定として最も適切なものを選べ。(単一選択)
- ACloudWatch Agentの設定ファイルで
procstatプラグインを有効化し、プロセスパターンとしてmyapp.jarを指定してCPU使用率・メモリ・スレッド数を収集項目に含める - BEC2標準メトリクスの
CPUUtilizationを監視すれば、インスタンス上の任意のプロセス単位のCPU使用率も自動的に内訳表示される - CAWS X-Rayを有効化し、分散トレーシングのセグメントデータからプロセスのCPU・メモリ使用量を取得する
- DAWS ConfigでLinuxプロセスの起動・終了イベントを記録し、そのイベントからCPU・メモリの推移を推定する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
CloudWatch Agentには、procstatプラグインがあり、プロセス名(pattern)・PIDファイル・
systemdユニット名などを指定して、特定のプロセスに限定したCPU使用率・メモリ使用量・スレッド数・ファイルディスクリプタ数
などをメトリクスとして収集できる。
- 設定ファイルの
metrics.metrics_collected.procstatセクションに対象プロセスの識別方法とメトリクス項目を指定する。 - プロセスが停止・クラッシュした場合、
procstatのメトリクス自体が送信されなくなる(データ欠落)ため、 アラームの欠落データの扱い(treatMissingData)をbreachingに設定しておけば、 プロセス停止=メトリクス途絶をアラームの発報条件として扱える(別設問で詳述)。 - これに対しEC2標準メトリクスは、インスタンス全体のCPU・ネットワーク等は分かってもプロセス単位の内訳は分からない。
- B
CPUUtilizationはインスタンス全体の値であり、プロセスごとの内訳を提供しない。プロセス単位の指標にはprocstatプラグインが必要。 - CX-Rayはリクエスト単位の分散トレーシング(レイテンシ・呼び出し関係の可視化)が主目的であり、OSプロセスのCPU/メモリのようなシステムメトリクスの収集機能ではない。
- DAWS ConfigはAWSリソースの構成変更履歴を記録するサービスであり、OS内のプロセスのリソース使用量メトリクスは扱わない。
ひっかけ: 「EC2標準メトリクスのCPU使用率で代用できる(B)」は誤り。標準メトリクスはインスタンス全体の値であり、
特定プロセスだけのCPU/メモリ/スレッド数を切り出すことはできない。プロセス単位の内訳が要件ならCloudWatch Agentの
procstatが必要。AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)