1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2 + CloudWatch サーバのディスク使用率をモニタリングする方法

Last updated at Posted at 2025-02-27

はじめに

この記事はEC2+CloudWatchでEC2のディスク使用率をモニタリングする方法について記述します。

環境

OS: AmazonLinux2023

EC2のディスク使用率をモニタリングするためにはCloudWatchのメトリクス中でも「カスタムメトリクス」使用する必要があります。以下は設定完了までの全体の流れです。

image.png

メトリクスって何?

メトリクスとは?

システムの状態を数値で表したデータです。主にパフォーマンスのモニタリングや分析のために使用され、時間の経過に伴って収集されたデータにの推移を把握することができます。

メトリクスの種類

種類 説明
標準メトリクス AWSサービスがデフォルトで提供するメトリクス EC2のCPU使用率、RDSのディスクI/Oなど
カスタムメトリクス ユーザーが自分で定義して収集するメトリクス ディスク使用率、リクエスト応答時間、メモリ使用率など

作業フロー

  1. CloudWatch Agent設定
  2. IAM Role作成
  3. EC2のIAM Role設定
  4. CloudWatchのアラート設定

CloudWatch Agent設定

CloudWatch Agentインストール

カスタムメトリクスをCloudWatchに提供するためにはCloudWatch Agentが必要です。
EC2にCloudWatch Agentを入れましょう。

EC2.AmazonLinux2023
sudo yum install amazon-cloudwatch-agent

amazon-cloudwatch-agent.json設定

/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
{
  "metrics": {
    "metrics_collected": {
      "disk": {
        "measurement": [
          "used_percent"
        ],
        "resources": [
          "/"
        ],
        "ignore_file_system_types": [
          "sysfs", "tmpfs"
        ]
      }
    }
  }
}

resourcesはモニタリングしたいディレクトリを設定します。
今回はルートディレクトリを設定しました。

amazon-cloudwatch-agent.json設定を適用する

EC2.AmazonLinux2023
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s

amazon-cloudwatch-agent.service再起動

EC2.AmazonLinux2023
sudo systemctl restart amazon-cloudwatch-agent.service

amazon-cloudwatch-agent.service状態確認

EC2.AmazonLinux2023
sudo systemctl status amazon-cloudwatch-agent.service

image.png

これでEC2側からCloudWatchにディスク容量のデータを送れるようになりました!

ログを見て動作を確認する

EC2がCloudWatchにアクセスできるようにIAM Role設定をしないと、EC2からスタムメトリクスのデータを提供することができません。

以下はエラーログです。

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
status code: 404, request id:
2025-02-27T08:32:42Z W! cloudwatch: 1665 retries, going to sleep 41008 ms before retrying.
2025-02-27T08:33:23Z E! cloudwatch: WriteToCloudWatch failure, err:  NoCredentialProviders: no valid providers in chain
caused by: EnvAccessKeyNotFound: failed to find credentials in the environment.
SharedCredsLoad: failed to load profile, .
EC2RoleRequestError: no EC2 instance role found
caused by: EC2MetadataError: failed to make EC2Metadata request

IAM Role設定

EC2からカスタムメトリクス情報を渡すためにはそのための権限が必要です。
そのための権限を集めたものをIAM Roleとして作成します。

  1. IAMのダッシュボードに移動
    image.png

  2. ロール管理画面に移動
    image.png

  3. ロールを作成する
    image.png

  4. ポリシーを追加
    스크린샷 2025-04-10 16.25.21.png
    스크린샷 2025-04-10 16.25.32.png

  5. IAM Role名を記入して作成完了します

それではEC2に今作ったIAM Roleをアタッチしましょう

EC2のIAM Role設定

  1. モニタリングしたいEC2インスタンスに移動
  2. アクションでIAMロール変更をクリック
    image.png
  3. IAMロールをアタッチする
    image.png

これでEC2→CloudWatchへカスタムメトリクス情報を渡せるようになりました。

CloudWatchのアラート設定

  1. CloudWatchの全てのアラート管理画面に移動します

image.png

  1. アラート作成、メトリクス選択

image.png

  1. CWAgent(CloudWatchAgent)クリック

image.png

モニタリングしたいEC2を選択します。

あとは、
しきい値設定
アラート名設定
アラート宛先設定
をすると完了です!

EC2からディスク容量情報をもらい、モニタリングできるようになりました。

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?