Amazon EC2編~EC2インスタンスを監視するには~


先日AWSの方で、Amazon CloudWatchに新機能が追加されたと発表がありました。
新機能とは、Amazon CloudWatchでサービスに異常を検知してアラームがトリガされた場合、EC2などのインスタンスでサービスを停止または、終了する機能だそうです。

この機能はフェイルセーフ(異常な状態を検知してから行動する)やアプリケーションの処理ロジックの一部(期待される条件を待ってから行動する)として使うことができるので、非常に便利な機能です。このアラームアクションの設定についても後ほど、ご説明したいと思います。

ということで今回は、そんなAmazon EC2での監視について記述したいと思います。

システムを運用していくうえで懸念事項となるのは、やはり「障害」かと思います。
どんなに万全に設定をおこなっても、障害が起きてしまうことはあります。
障害をいち早く検知また、できるだけ障害を未然に防ぐには日々のシステム監視が重要になります。
監視方法はいくつかありますが、まずは「Amazon CloudWatch」を紹介しましょう!

基本的にAWSでの監視はこのAmazon CloudWatch行えます。
Amazon CloudWatchは、リソース監視のためにあらかじめAWSで用意されている測定基準(メトリクス)をもとに、インスタンスをモニタリングしてそのデータに基づくアラートアクションを構成できるサービスです。
あらかじめ、CloudWatchで設定をおこなっておけば何か監視項目で変動が起こった際、所定の通知先にアラートメールを通知することもできます。

下記画面が実際のEC2でのCloudWatch監視項目です。
(※通常にAWS管理コンソールにログインしていただき、EC2サービスに入った画面下部の「Monitoring」タブをクリックしていただくと、表示されます。)

20130620_03_01

また、EC2でのCloudWatchアラート通知設定方法についても説明しておきましょう!

1.AWS管理コンソールにログインして、サービスでEC2を選択し下記画面を開き、画面左メニューにある「Instances」をクリックします。
20130620_03_02

2.インスタンスの一覧から今回、設定をおこなう対象インスタンスをチェック、画面下部より「Monitoring」タブを選択して「Create Alarm」をクリックします。

20130620_03_03

3.「create topic」をクリックします。

20130620_03_04

4.「Send a notification to:」の項目に任意の名前(アラーム名称)を入力していただき、「with these recipients:」にメールアドレス(ア ラーム通知先)を入力します。
「Whenever」の「of」の後の項目で「Status Check Failed(Any)」を選択、「Create Alarm」をクリックします。

20130620_03_05

5.Closeをクリック

20130620_03_06

また、今回は監視項目で「Status Check Failed(Any)」を選択しましたが、監視の設定項目は他にも以下の項目を選択することが可能です。
それぞれAverage(平均)、最大(Maximum)、最小(Minimum)で表示させることができるので簡単に項目の設定をおこなうことができます。

・CPU Utilization(CPU使用率)
・Disk Reads(ディスク読み込み状況)
・Disk Writes(ディスク書き込み状況)
・Network In,Out(ネットワーク状況)
・Status Check Failed(ステータスチェックに失敗した際)

また、手順3の画面にも表示されているしきい値のグラフはリアルタイムに反映され、下記画面のように確認することができます。

アラーム通知設定の手順2と同様、画面下部で「Monitoring」タブをクリックすると、グラフが表示されます。
20130315_01_05.png

これで、アラーム通知設定は完了です!

ただ、CloudWatchの基本設定だけではLoad Average(処理を待っているプロセス数)やメモリ利用状況、Disk Usage(ディスク利用状況)といったOS内部の情報を監視することはできません。その補完としてあるのが、「カスタムメトリクス」です。
「カスタムメトリクス」はCloudWatchにある機能の1つで、先述であげたような、CloudWatchの基本設定だけだと監視することができないけど、この部分については監視したい!という項目のメトリクスを独自に作成し監視をおこなうことも可能です。
20130315_01_06.png

加えて、冒頭でお話したCloudWatchのアラームアクションの設定に関する説明ですがもし、このアラームアクションの設定をおこなう際は、先ほどのアラーム通知設定の手順3の画面の「Take the action」の項目にチェックを付け、「Stop」か「Terminate」を選択してアラームがトリガされた場合の処理を決めましょう!

最後にもうひとつだけ、監視ツールをご紹介します。「Nagios」という監視ツールです。

Nagiosはサーバ自体の稼動状態を監視するツールです。
Nagiosには、システムの異常を検知してメールで報告する機能、Webインターフェースによるサーバステータスの一覧や、レポートの出力機能などがあります。
20130315_01_07.png

こちらでご紹介した監視ツールおよび監視方法は、ほんの一例です。
特に監視方法については、紹介したCloudWatchの「カスタムメトリクス」を用いることで様々なパターンで監視をおこなうことが可能です。
また監視をおこなう上で、「カスタムメトリクス」については公式のものも公開されていますので詳細については以下のページも参考にしてみてください。

■Amazon CloudWatch開発ガイドはこちら

いかがでしたでしょうか?
是非、監視ツールを活用していただき、負荷なく監視をおこないましょう!

次回は、「SnapshotやAMIを使ったバックアップと運用~パート①~」と題して、SnapshotやAMIを使ったバックアップについてお話しますのでお楽しみに!