「CloudWatch」とはなんぞや…?
CloudWatchは、AWSが提供する「フルマネージド運用監視サービス」で、AWSの各種リソースを監視してくれるもの。もう少し具体的にすると
- セットアップ不要で使えて
- 異常な状態を検知して、自動で復旧までしてくれて
- メトリクスに応じてアラート通知や、アクションを設定できる
サービスだそう。メトリクスとはなんぞや…と遠い目をしたくなりますが、監視対象の変数…つまり何を監視するかの設定、と理解しました。EC2やEBSなど、いろんなサービスを監視できるそうです。
そして、CloudWatchには3つのサービスがあります。ちょっと分かりにくいのですが、何もつかない「CloudWatch」と「CloudWatch Logs」「CloudWatch Events」の3つ。LogsもEventsもCloudWatchをベースにしたサービスですが、それぞれできることや用途は異なり、違うものとして認識した方が理解しやすそうです。
まず基本となるのが、リソースを監視する「CloudWatch」です。CPUやメモリなど複数項目をグラフ化してダッシュボードを作れます。よく使うものは標準メトリクスとして用意されていて、クレジット(利用料金)も監視できるのだそう。監視するだけじゃなくてリソースの状況に応じて、メールを送ったり、再起動したり、AutoScalingしたりとアクションができるのも特長です。
続いて、ログを集めて監視する「CloudWatch Logs」。Amazon Linux、RedHat、Windowsなどに対応し、インスタンスにエージェントを入れることで各種ログを取得します。OSに加えて、アプリケーションのログも対応していて、キーワードでアラート通知させることもできます。つまり「アプリケーションやOSがエラーログ吐いたら管理者のメールに通知」が実現できるということですね。
最後が「CloudWatch Events」です。これはちょっとAWS独特かもしれませんが、APIのイベントをトリガーに何らかのアクションを実行させる、というサービスです。
APIというとなにか特殊な用途に思えますが、AWSはさまざまな処理をAPIで実行しています。たとえばEC2インスタンスの起動停止もAPIで実行するんですね。こういったイベントを監視するのがCloudWatch Events、ということです。具体的には、インスタンスのterminate(削除)でアラート通知する、コンソールに特定のユーザがサインインしたときにアラート通知する、ということなんかができるそう。トリガーになるイベントはそれ以外にもEC2ステータスやスケジュールなど数多く用意されていまして、「LambdaやSQS、SNSなどと連携できます」だそう。Lambdaは前回取り上げたサーバーレスのアレですね。SQSやSNSは調べたところ、メッセージ送信関連のサービスのようです。これはまたいつかのテーマとしてとっておきたいと思います!
なんで既存の監視システムじゃなくて、CloudWatchがいいの?
CloudWatchでできることは分かりましたが、そもそもシステム監視はオンプレミスでもやってる企業が多いですし、すでにさまざまな製品が出ています。今まで使ってたツールのが使い慣れてるし、そのままじゃダメ?というのは当然の疑問です。
この疑問についてもセッションで答えがありました。要約すると「CloudWatchはAWS用に作ったんだから、AWS監視に使いやすいのだ」ということ。こう書くと「なにを当たり前なことを…」感が漂いますが、もちろんちゃんと理由があります。
まず、CloudWatchはPolling型ではなく、Push型であること。これまでの監視ツールはあらかじめ決まった対象にひとつずつ問い合わせして回るPolling型が一般的。となると、対象が追加になったら監視サーバに設定する必要があります。これはAWSで負荷に応じてオートスケールする環境だと無理が出てきます。勝手に増えたインスタンスを、いつ誰が監視対象に加えるのか…。がんばればできなくもないようですが、CloudWatchはPush型なので、監視対象が増えたらその対象が勝手に通知を送ってくるようになるんだそうです。それはよさげです。
2つ目は、AWSのマネージドサービスにも対応していること。従来型監視ツールはまずサーバがあり、その下のCPUやメモリなどを監視するイメージですが、AWSにはサーバが“ない”マネージドサービスも多くあります。これらのサービスは、サーバありきの従来環境とは監視するポイントも監視方法も大きく異なります。なんの項目を、どう監視するのか、ということから考えて、既存のツールに対応させるのはハードルが高いでしょう。もちろんCloudWatchなら、40以上のマネージドサービスに対応し、ほかのものと同じように監視ができます。
さらにはAWSのサービスをフル活用できるのもメリットらしく、「CloudWatch Logsなら、S3にログをエクスポートし、Hadoopで分析したり、Kinesisを使ったり」もできるということ!ほう!どうやらすごいらしい!………詳しくはまたこれからの課題が増えた感しかないですが、ログの分析がAWSのサービス使うと簡単にできるってことで、今回はそっとしておきたいと思います。あ、月額料金が一定額を超えたら通知してくれる、というのはAWSならではっぽくて、便利そうだなと思いました。これは従来の監視ツールにはなかなかない項目ですし。
- AWS運用管理・自動化ツール「クラウドポータル」
-
「はじめてでも運用できる」 「もっと使いこなせる」 独自開発ツール
- マネージドクラウド with AWS
-
はじめてのAWSから 一歩進んだ活用までトータルサポート
まとめ
というわけでCloudWatchについて紹介してきましたが、できそうなことは分かったけど、これを実際使いこなせるかというと甚だ不安というのが正直なところです。
が!安心してください!ソニーネットワークコミュニケーションズのマネージドクラウド with AWSでは独自の管理ツール「クラウドポータル」を提供していまして、これを使うとCloudWatchの使い方がイマイチ分からん、という方でも簡単にAWSの監視ができちゃいます。CPU使用率とディスク使用率をチェックして8割超えたらアラートメールとか、簡単に設定できます。CloudWatch Logsを使ったアプリケーションのログ監視とかも割と簡単にできちゃいます。いいんじゃないかなー。いいと思うんだなー(宣伝)
以上、シイノキでした!
パンフレットをダウンロード
「AWS運用管理・自動化ツール「クラウドポータル」」のダウンロードをご希望のお客様は、
以下必要事項をご入力ください。