AWSを使い始めて最初にぶつかる壁、それが**「監視(Monitoring)」と「コスト管理」**です。
- 「気づいたら高額請求が来ていた…」
- 「サーバーが落ちたのに気づかなかった…」
- 「メモリ不足っぽいけど、どこで見ればいいの?」
これらを解決するのが Amazon CloudWatch です。
この記事では、公式ドキュメントの内容をベースに、初心者が最初にやっておくべき「請求アラーム」の設定から、基本の「CPU監視」、そして少し高度な**「メモリ監視」**の手順までを徹底解説します。
1. Amazon CloudWatch とは?
AWSリソースやアプリケーションを**「監視」**するためのサービスです。
AWS上のサーバー(EC2)やデータベース(RDS)からデータを収集し、グラフ化したり、異常検知時にメールを飛ばしたりできます。
料金と無料枠
CloudWatchは従量課金制ですが、強力な無料枠があります。
- 基本モニタリング: 無料(5分間隔のデータ)
- アラーム: 10個まで無料
- ダッシュボード: 3つまで無料
まずはこの無料枠の範囲内で、最低限の守りを固めましょう。
2. 【必須】請求アラームを設定しよう
AWS学習者の最初の一歩は「サーバーを立てること」ではなく、**「予算オーバーを検知する仕組みを作ること」**です。
なぜ必要なのか?
AWSは従量課金のため、設定ミス(高価なインスタンスの消し忘れなど)が高額請求に直結します。これを防ぐために「請求額が $10 を超えたらメールする」という設定を行います。
設定手順
注意: 請求メトリクスは、米国東部 (バージニア北部) us-east-1 リージョンでのみ管理されています。コンソール右上のリージョン選択を必ず切り替えてください。
- CloudWatchコンソールを開き、リージョンを「バージニア北部 (us-east-1)」に変更。
- 左メニュー [アラーム] > [すべてのアラーム] > [アラームの作成] をクリック。
- [メトリクスの選択] > [Billing] > [概算合計請求額] を選択。
-
EstimatedCharges(通貨: USD) にチェックを入れて [メトリクスの選択]。 -
条件:
- 「静的」
- 「…よりも」
- しきい値:
10(10ドルを超えたら通知)
-
通知設定:
- 「新しいトピックの作成」を選択し、あなたのメールアドレスを入力。
-
作成完了:
- 入力したメールアドレスに届く 「Confirm subscription」 リンクを必ずクリックして承認してください(これを忘れると通知が届きません)。
3. CPU使用率の監視(標準機能)
EC2インスタンスなどのCPU使用率は、何も設定しなくても最初から見ることができます。これは、AWSが「仮想マシンの外側」からCPUの稼働状況を把握できるためです。
確認方法
- EC2コンソールで対象のインスタンスを選択。
- 下のタブメニューから [モニタリング] をクリック。
- 「CPU使用率 (CPU Utilization)」 グラフを確認。
アラーム設定例
「CPUが80%を超えたらメール通知」という設定も簡単です。
- CloudWatch > [アラームの作成]。
- [EC2] > [インスタンス別メトリクス] > 対象の
CPUUtilizationを選択。 - 条件:
80よりも大きい。 - 通知先: 先ほど作成した請求アラームと同じトピック(メールアドレス)を選択。
4. メモリ使用率の監視(要:CloudWatch Agent)
ここが初心者がつまづくポイントです。
「EC2のモニタリングタブを見ても、メモリ使用率のグラフがない!」
なぜ見れないのか?
AWSはセキュリティ上、OSの中身(メモリ空間やディスクの使用率など)に関与できません。そのため、外側からでは「メモリがどれくらい使われているか」は分からない仕様になっています。
これを見るには、サーバー内部に**「CloudWatch Agent」**というスパイ役(エージェントソフト)をインストールして、内側からデータをAWSへ送信する必要があります。
設定手順 (Amazon Linux 2023 / Amazon Linux 2 の場合)
Step 1: EC2に権限(IAMロール)を与える
エージェントがCloudWatchにデータを書き込めるよう許可を与えます。
- IAMコンソールで [ロールを作成]。
- ユースケース: EC2 を選択。
- 許可ポリシー:
CloudWatchAgentServerPolicyを検索してアタッチ。 - ロール名(例:
CWAgentRole)を付けて作成。 - EC2コンソールに戻り、対象インスタンスを右クリック > [セキュリティ] > [IAMロールを変更] で、作成したロールを割り当てる。
Step 2: エージェントのインストール
EC2にSSH等で接続し、以下のコマンドを実行します。
# インストール
sudo dnf install amazon-cloudwatch-agent -y
# (Amazon Linux 2の場合は sudo yum install ...)
Step 3: 設定ウィザードの実行
対話形式で設定ファイルを作成します。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
多くの質問が表示されますが、基本的にはすべて Enterキー(デフォルト選択) で進めてOKです。
ただし、以下の質問だけは必ず確認してください。
Do you want to monitor metrics from host? (ホストのメトリクスを監視しますか?)
-> 1. yes を選択
Step 4: エージェントの起動
設定を読み込んでエージェントを起動します。
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
確認方法
数分待つと、CloudWatchコンソールの [メトリクス] 画面に 「CWAgent」 という新しい項目(カスタム名前空間)が登場します。
この中の mem_used_percent がメモリ使用率です。
5. まとめと注意点
| 監視項目 | 難易度 | 必要な作業 | 料金 |
|---|---|---|---|
| 請求 | 必須 | バージニア北部でアラーム作成 | 無料枠内 (通常) |
| CPU | 簡単 | 標準で見れる | 無料 |
| メモリ | 中級 | Agent導入とIAM設定 | 有料 (カスタムメトリクス) |
⚠️ 料金の注意点
メモリ監視のためにAgentから送られるデータは「カスタムメトリクス」扱いとなり、無料枠を超えると課金対象になります(1メトリクスあたり $0.3/月 程度)。
学習用で一時的に試す分には数円程度ですが、大量のサーバーで設定したまま放置しないよう注意しましょう。
まずは「請求アラーム」だけは今すぐ設定して、安全なAWSライフをスタートさせてください!
参考リンク