ClaudWatchのカスタムメトリクスを使ってストレージ容量を監視!

CloudWatch
スポンサーリンク

EC2に写真や動画ファイルをバンバン格納していくと、
「あれ?ストレージの空き容量って足りるかな?」と気になりますよね?

AWSでは、CPU使用率やメモリ使用率といったパフォーマンスデータが、
メトリクスデータという形式でデフォルトで蓄積されており、
システムリソースの使用状況はメトリクスデータを確認するのが基本となります。

しかし、ストレージ容量に関するメトリクスデータはデフォルトでは存在しません。

今回は、どのようにしたらEC2のストレージ使用量がモニタリングできるのか?
その方法について解説したいと思います。

メトリクスデータって何?

まずはじめに、「メトリクスデータ」について軽くご説明します。

メトリクスデータとは、パフォーマンスに関する時系列データセットのことです。

一定の間隔でCloudWatchに蓄積されており、
CPU使用率やメモリ使用率、ディスクI/Oといったデータセットがデフォルトで存在します。

このデフォルトで存在するデータセットのうち、5分間隔のデータセットを「標準メトリクス」、
1分間隔のデータセットを「詳細メトリクス」と言います。

詳細メトリクスは、オプション選択となっており、
詳細メトリクスとしてデータを蓄積するには料金がかかります。

標準メトリクスにはストレージ使用量がない!?

CloudWatchにはたくさんの標準メトリクスが存在しておりますが、
上記でもお話した通り、標準メトリクスにストレージ使用量という項目はありません

では、標準メトリクスに無い項目はどうしたらよいのでしょうか?

このようなケースの場合、
カスタムメトリクスを作成する必要があります。

カスタムメトリクスとは?

自身で作成したメトリクスデータのことです。

プログラム等によって取得したデータをCloudWatchのAPIを使って送信(PUT)することで作成できます。

例えば、Apacheのプロセス数を確認しCloudWatchへ送信するようなスクリプトを作成し、
Cronを使って一定間隔でスクリプトを実行すれば、Apacheの死活監視ができるカスタムメトリクスが作成できます。

今回はAWSが公開しているスクリプトを利用して、ストレージ使用量に関するカスタムメトリクスを作成します。

EC2のストレージ使用率をモニタリングするカスタムメトリクスの作り方

それでは、ストレージ使用率のカスタムメトリクスの作成方法をご紹介します。

(1)まずはCloudWatchへPUTできるIAMロールを作成し、対象のEC2へ割り当てを行いましょう。
今回サンプルとして割り当てるIAMロールへアタッチするポリシーは”CloudWatchFullAccess”となります。
IAMロールの詳しい作成方法やEC2への割り当て方法についてはこちらの記事をご参考ください。

ちなみになぜIAMロールが必要かと言いますと、
EC2からCloudWatchへ送信するためには、EC2にCloudWatchへ送信(PUT)できる権限が付与されている必要があるからです。

IAMロールではなく、IAMユーザーのアクセスキーとシークレットキーを一時的に付与して行う方法もありますが、
セキュリティ的な面を考えると、アクセスキーとシークレットキーは極力使用せず、EC2インスタンスにIAMロールを持たせて送信することが賢明です。

なぜなら、アクセスキーとシークレットキーは文字列であります。
万が一流出してしまった場合、悪用される恐れがあるからです。

※次の記事に詳しいことを記載しております。ご興味がありましたらご一読ください。
EC2からS3へファイルを送受信する方法

(2)対象のEC2へログインします

(3)次のコマンドを実行し、スクリプトを動かすためのパッケージインストールを行います

(4)次のコマンドを実行し、スクリプトをインストールします

(5)次のコマンドを実行し、送信テストを行います

以下のテキストが返ってきたら成功となります。

Successfully reported metrics to CloudWatch. Reference Id: 〜

(6)次にスクリプトを定期実行させるためにcronへ登録しましょう。
※cronとは、いついつになったら指定のプログラムを実行してくれる機能です。
今回は5分間隔で実行させる設定とします。

 

(7)しばらくするとCloudWatchにカスタムメトリクスが表示されますので確認してみましょう。
CloudWatchコンソール画面を開き、 左ナビゲーションペインの[メトリクス]をクリック、 [すべてのメトリクス]→[Linuxシステム]→[Filesystem, InstanceId, MountPath]をクリックします。

 

(8)このカスタムメトリクスを使ってCloudWatchのダッシュボードへ表示してみましょう。

※「CloudWatchのダッシュボードって?」と思った方は次の記事をご参考に設定してみてくださいね。
CloudWatchダッシュボードが結構使える!

あらステキ!
ダッシュボードを確認すればストレージ使用率が一目でわかるようになりました。


いかがでしたでしょうか?

ストレージ使用率以外にもカスタムメトリクスを使って、さまざまなパフォーマンスをモニタリングすることが可能です。

ですが、ちょっと待ってください!
モニタリングだけでは足りないと思いませんか?

そう、一定の値を超えたらメール通知するという機能が必要ですよね!

次の記事では、その設定方法についてご紹介しておりますので、
ご興味がありましたら、ぜひご一読ください。
CloudWatchを使ってストレージ使用量が一定値を超えたらメールする方法

ここまでお読みいただきありがとうございました。

以上、hidesanでした!

タイトルとURLをコピーしました