awsでec2のメモリやディスクの容量を監視する方法

awsは大企業から個人事業主にまで幅広く利用されているクラウドサーバーで、最初は無料で使用することも可能で大変便利なサービスです。しかし、使っているうちにec2のメモリやディスクをどんどん使ってしまい、いつの間にか容量の上限に達してしまうことがよくあります。

そこで、ec2のメモリやディスクの容量を監視する方法について解説します。

awsを使っているとec2のメモリやディスクの容量はいつも気にしておきましょう

awsは無料でインスタンスを作成し、使い始めることができるクラウドサーバーです。有料のインスタンスの場合でも、最初は低料金のプランを使われる方も多いことでしょう。その場合に、メモリやディスクの容量が思っていた以上にすぐに一杯になってしまうことはよく起こります。

このような場合に、とりあえずインスタンスのサイズをより大きいものに変更することを繰り返していくと、想定した以上の請求額となってしまうこともしばしばあります。なるべく低料金で利用するためにも、メモリやディスクについては定期的に容量をチェックしておき、可能な限り無駄遣いを減らす習慣を付けることが重要になります。

aws内に用意されている便利なサービス・Cloudwatch

awsでは、Cloudwatchという大変便利なサービスが用意されています。こちらは、使用中のサーバーのログをはじめ、サーバー内で運用しているアプリケーションに関わる様々なデータを測定・収集してくれるサービスです。

ec2では多種多様なOSが用意されていますが、Amazon Linux、Ubuntu、CentOSなど一般的に広く使われているOSに関しては漏れなくCloudwatchを利用することが可能です。新規に利用登録を行わなくとも、awsにログインしている状態であればCloudwatchのコンソール画面に直接アクセスするだけで確認できます。

立てているec2サーバー毎に、データをグラフ形式で分かりやすく表示してくれています。Cloudwatchのコンソールに都度アクセスしてデータを確認するという使い方でももちろん問題がありませんが、さらに多種多様なデータを取得できるCloudwatchエージェントというサービスも用意されています。

こちらでは、Cloudwatchで取得可能なデータに加え、CPUがアクティブになっている時間・スリープ状態になっている時間、またメモリやディスクの容量についても適宜設定することで確認可能です。ここまでのデータが得られれば、運用中のサーバーの状況やアプリケーションの稼働状態の分析を行うのには十分と言えます。

awsでec2のメモリやディスクの容量をCloudwatchエージェントで監視する方法

それでは実際に、Cloudwatchエージェントを使って、ec2のメモリやディスクの容量を監視するための方法について解説します。まずはインストールから行うことになりますが、3種類の手段が用意されています。

最速で行えるのはコマンドを叩く方法ですが、慣れていない方は多少時間がかかっても残りの手段を用いる方が望ましいです。コマンドの利用以外には、AWS Systems ManagerもしくはAWS CloudFormationを利用するというものがあります。

どちらのサービスを用いるにせよ、公式サイトの説明通りに行えば問題ありません。次に、IAMロール(aws内での操作権限を与える仕組み)の作成を行います。公式サイトの説明に沿い、Cloudwatchエージェントを利用するためのロールの追加を行います。

フォームへの入力事項がやや多いですが、一つでも間違ってしまうと正常に作成されないことがありますので、焦らず慎重に行う必要があります。その後、Cloudwatchエージェントの利用に必要なツールであるSSMエージェントを先にインストールし、完了するとCloudwatchエージェントがインストールされます。

ここまでできれば導入は完了なので、実際にCloudwatchエージェントにて取得したいデータの設定を行います。メモリやディスクの容量についての項目を探し出し、取得項目として追加しましょう。追加した項目は、AWS Systems Managerにていつでも確認することができます。

設定完了後、Cloudwatchエージェントを起動した段階で、データの取得が開始されます。

メモリやディスクの容量監視にCloudwatchエージェントを利用するメリット・デメリット

ec2のメモリやディスクの容量を監視するのにCloudwatchエージェントを利用する方法について解説しましたが、利用者によってメリット・デメリットがあることは確かです。まずメリットですが、大変見やすいグラフで推移を確認できるという点が挙げられます。

数字だけ見るのと、視覚的に確認するのとでは、状況の把握度が異なってきます。グラフで空き容量が少なくなっているのを実感できれば、対策を立てなければという気持ちになりやすいことは確かです。また、メモリやディスクの容量以外にも、アプリケーションにかかっている負荷など、サーバーをメンテナンスする上で併せて見ておきたい情報についても一目で確認できるのも嬉しいところです。

一方でデメリットもあります。Cloudwatchエージェントでは、取得できるデータのうち、デフォルトの設定で取得可能なものとそうでないものがあります。メモリやディスクの容量についてはデフォルトでは用意されておらず、カスタム設定の画面から取得したいデータの名称を探し出して追加する必要があるのです。

さらに、他にもカスタム設定で色々なデータの取得を行うよう設定していくと、知らないうちにCloudwatchエージェントの利用料金が発生してしまいます。取得するデータの種類が少ないうちは無料ですが、増やしていくうちに自然と有料に切り替わってしまい、知らないうちにクレジットカードからの引き落としが行われることがありますので、細心の注意が必要です。

Cloudwatchエージェント以外に容量を監視する方法

Cloudwatchエージェントを利用する以外にも、ec2のメモリやディスクの容量を監視する方法があります。Linux系のOS限定ではありますが、awsでは容量を確認するための専用のスクリプトが提供されており、そちらを利用するという方法です。

Perl言語を使ったスクリプトですので、公式サイトの指示に従って、必要なPerlのライブラリをあらかじめ監視対象のEC2にインストールしておきます。

後はスクリプトのダウンロード・インストール・設定を行えば準備は完了です。後は適宜公式サイトに記載のコマンドを叩くことで、メモリやディスクの容量を確認することができます。インフラ周りに慣れている方でしたら、こちらの方法を利用しても問題ありません。

awsの便利なツールやスクリプトを使ってec2のメモリやディスクの容量を監視しましょう

awsで、ec2のメモリやディスクの容量を監視する方法についてご紹介しました。主にはCloudwatchを使用して、サーバーのログなど様々なデータと一緒に常日頃から確認する方法がおすすめではありますが、インフラに慣れている方はaws提供のスクリプトを利用されるのも良いでしょう。

これらの方法を上手く活用され、メモリやディスクの無駄遣いを減らしてみてはいかがでしょうか。

関連⇒aws保守 … CloudCREW
https://managed.gmocloud.com/managed/