投稿

ラベル(メモリ監視)が付いた投稿を表示しています

EC2メモリ使用率をCloudWatchで監視する方法:CloudWatchエージェント完全ガイド

EC2インスタンスのCPU使用率はCloudWatchコンソールで即座に確認できるのに、メモリ使用率を見ようとすると何も表示されない——この状況に直面したエンジニアは多い。アラームを設定しようとして初めて「なぜRAMのメトリクスが存在しないのか」に気づく。これはAWSの設計上の理由があり、CloudWatch Agentをインストールすることで解決できる。 TL;DR:EC2メモリ監視の要点 項目 内容 デフォルトで取得できるメトリクス CPUUtilization、ネットワーク、ディスクI/O(ハイパーバイザーレベル) デフォルトで取得できないメトリクス メモリ使用率、ディスク空き容量、スワップ使用率 解決策 CloudWatch Agentをインスタンスにインストールし、OSレベルのメトリクスを送信 必要なIAM権限 CloudWatchAgentServerPolicyをインスタンスプロファイルにアタッチ メトリクス名前空間 CWAgent(デフォルト) なぜEC2メモリ使用率はCloudWatchに表示されないのか CloudWatchがデフォルトで収集するEC2メトリクスは、AWSのハイパーバイザー(基盤となる仮想化レイヤー)が観測できる情報に限定される。CPUの使用サイクル数やネットワークパケット数はハイパーバイザーから見えるが、ゲストOS内部のメモリ割り当て状況はハイパーバイザーには見えない。 ハイパーバイザーとゲストOSの関係は、ビルのオーナーと入居テナントに似ている。オーナーは電力消費量(CPU)や出入りする荷物の量(ネットワーク)は把握できるが、部屋の中で何がどこに置かれているか(メモリの中身)は見えない。 これはAWSの制限ではなく、クラウド仮想化の構造的な特性だ。ゲストOS内部の状態を取得するには、OS内部で動作するエージェントプロセスが必要になる。それがCloudWatch Agentの役割だ。 graph TD HV["AWSハイパーバイザー 仮想化レイヤー"] EC2["EC2インスタンス ゲ...