AWSでは様々なサービスを手軽に利用することが出来ますが、AWSに任せきりではなく、各種サービスを監視した上で適切な対応を取ることはユーザー側でも大切です。
本記事では、AWSから提供されている監視ツールとしてのサービス「Amazon CloudWatch」について、今後の利用を検討している方向けに抑えておきたい基本となる情報をご紹介していきます。
- Amazon CloudWatchは、AWSから提供されている監視ツール
- 導入が簡単で、無料枠でも十分に利用可能
- AWSサービスが停止すると監視ツール自体も動かなくなる点には注意
- AWS各種サービスの監視はもちろん、利用料金の監視も出来る
- AWSマネージドサービスにより、企業にインフラ管理の専門家がいなくても利用しやすい
目次
Amazon CloudWatchとは監視ツールでAWSのサービスの一つ
Amazon CloudWatchは、AWSのサービスの1つです。マネジメントコンソールで簡単に使用を開始できます。EC2のCPU使用率やEBSのI/O、RDSのパフォーマンス値を監視できます。あらたなミドルウェアの導入など一切必要ありません。
ちなみに、このような各種パフォーマンス値を「メトリクス」といいます。本記事でも、以降メトリクスと表現します。システム開発における品質管理指標もメトリクスといいますね。
EC2にCloudWatchを監視した結果をご覧ください。
EC2のCPU使用率が取得できたのがお分かりでしょうか。こういった監視がAWSの各種サービスに適用できます。
その他、こんなメトリクスが用意されています。
また変わったところでは、AWSの利用料金を監視できます。ある金額をしきい値として、それを超えたらアラート発信といった使い方です。
使用感も悪くなく、グラフを表示した後はマウスのポインタを動かして、細かい数値を把握することが可能です。
AWS CloudWatchサービスをより活用するためのプログラミングが学べるスクールならこちら
現場でよくある3つの監視の問題
ノウハウが必要
普通のサーバー(クラウドサーバーではなくオンプレミスの、という意味での「普通」)は、CPU利用率やディスクのI/Oなどの各種パフォーマンスを監視するとき、特別な手段を講じなくてはなりません。その例がOSSのZabbix(ザビックス)を使う、または自前でログを出力するスクリプトを作成する、といった方法です。一般的に何らかのミドルウェアを導入、最適化して運用するには、それなりのノウハウが必要になります。
AWSはメトリクスが取りにくい
AWSのサービスによっては、メトリクスが取りにくい場合があります。例えばRDSのディスクI/Oや、AWS IAMのログイン回数などです。AWS CLIのコマンドを投げてレスポンスを取得、整形するというのも方法の1つですが、どうも手間がかかってしまいます。
ログの可視化が面倒
値をよりグラフィカルに見たい場合もあります。例えば1ヶ月間の推移を見たい、などです。そんなとき、ログを取得してテキストに落とし、Excelでグラフ化するといったことが現場でよく行われています。しかしこれでは工数がかかってしまいます。工数はもっと本来の業務に使いたいものです。
これらの問題を解決できるAmazon CloudWatch
以上のよくある現場での問題を踏まえて、以下ではAmazon CloudWatchのメリットを見ていきましょう。
Amazon CloudWatchの3つのメリット
メリットその1 導入が簡単
Amazon CloudWatchは、新たに何かのミドルウェアを導入することなく各種サービスを監視できるサービスです。先に見ていただいたように、EC2の各種メトリクスをはじめとして、さまざまなサービスを監視できます。
メリットその2 運用工数削減
先に述べたように、監視に関する運用工数を削減できます。各種のログファイルを取得、編集する必要はなくグラフィカルに表示できます。マネジメントコンソールを開いただけですぐに確認できます。しかも人手を介しないので、従来のようにログ編集作業者のミスといった心配は不要です。
メリットその3 無料!
AWSはCloudWatchに無料枠を設けています。CPU使用率など一般的なメトリクスはその無料枠に含まれています。従来の運用監視のように、ソフトウェアの購入料やライセンス料は不要です。標準のメトリクスでよければ、運用スキルはまったく必要ありません。
- 導入が簡単
- 監視の運用工数を削減できる
- 無料で使える枠がある
Amazon CloudWatchが無料で利用出来るなら試してみたいけれども「そもそもAWSの使い方自体がイマイチ把握出来ていない」といった悩みをお持ちの方は、「ポテパンキャンプ」での無料カウンセリングがおすすめです。
Amazon CloudWatchのデメリットは、AWSのサービスの1つであるということ
メリットばかりを並べましたが、デメリットはないかを考えてみました。ほとんどないのですが1点だけご注意を。Amazon CloudWatchはAWSのサービスの1つです。つまり、AWSのサービスそのものが止まってしまうとCloudWatchまで共倒れになるのです。それが数少ないデメリットといえますね。
ただしこれも、監視対象のあるリージョンとは別のリージョンに、または別のアベイラビリティゾーンにCloudWatchのサービスを立てるといった代替手段を講じれば回避できます。
アプリケーションの動作パフォーマンスに重要なメトリクスを送信して保存し、トラブルシューティングや傾向の把握に役立てることができます。
AWS CloudWatchサービスをより活用するためのプログラミングが学べるスクールならこちら
Amazon CloudWatchの5つの機能・できること
Amazon CloudWatchを、機能的な面から解説します。
Amazon CloudWatchをEC2へ適用
Amazon EC2インスタンスからCPU使用率、データ転送、ディスクの使用状況の各種メトリクスを、追加のアプリケーションを導入することなく監視できます。
EC2以外のAWSのサービスを監視する
EC2以外のAWSのサービスを監視できます。具体的には、Amazon DynamoDB テーブル、Amazon EBS ボリューム、Amazon RDS DB インスタンス、Amazon Elastic MapReduce ジョブフロー、Elastic Load Balancing、Amazon SQS キュー、Amazon SNS トピックなどです。これらを追加のアプリケーションを導入することなく監視できます。
標準以外のメトリクスを監視
標準のメトリクス以外に、アプリケーションごとの特有のメトリクスを収集できます。Webアプリケーション側でAPIリクエストに返信できるようにしておき、CloudWatch でモニタリングできます。
ログの保存、グラフィカルな表示
CloudWatchが取得した各種ログやメトリクスは、保存することができます。また、CloudWatchダッシュボードで収集したメトリクスをグラフィカルに表示でき、傾向と分析が目視で可能です。すでに本記事の冒頭でお見せしたとおりです。
ログというとテキストファイルにギッシリと文字列が連なっているイメージがありますが、Amazon CloudWatchは決してそうではありません。報告書を作るときも画面イメージを貼り付けられるので、とても便利ですね!
アラーム機能
メトリクスがあらかじめ決めたしきい値を超えるとアラームを発します。そのアラームも自動送信できるので、有事にはCloudWatchがプッシュ送信して、通知を受信したオペレータが対応、といったこともできます。基本的にインターネットにつながればAWSのサービスを操作できるので、自宅にいるときも対応できますね!まあ、したいかどうかは別ですが。
AWS CloudWatchサービスをより活用するためのプログラミングが学べるスクールならこちら
Amazon CloudWatchの方がよい3つの理由
Amazon CloudWatchが、AWSの管理機能として優れている点についてご紹介します。
Amazon CloudWatchはpolling型ではなく、push型である
サーバー監視の仕組みにはpolling型とpush型があり、従来は1台のサーバーが監視対象のホストから情報を集めてくるpolling型が主流でした。しかし、AWSをはじめとするクラウドの環境では、監視対象のサーバーが頻繁に変化することから、監視対象のホストから情報を送信するpush型が採用されています。そのためクラウドに適したpush型のAmazon CloudWatchは、AWSに適した運用監視システムです。
AWSのマネージドサービスにも対応している
クラウドを利用する企業にシステム管理の専門家をいるとは限りません。AWSでそういった企業をサポートする仕組みがAWSマネージドサービスです。そして、このサービスには、Amazon CloudWatchによるモニタリングも含まれており、責任を持ってアラート分析や障害への対応を実施してくれます。このように、インフラ管理の専門家がいなくても、Amazon CloudWatchを活用すれば安心してAWSを利用できます。
AWSのサービスをフル活用できる
AWSをはじめとするクラウドの利点は、特定のサーバーに負荷がかかったら、必要に応じてサーバー数を増やすなど、動的な負荷分散が可能な点です。また、障害が発生した場合、サービスを停止することなくそのサーバーを切り離すことも可能です。そして、そういった利点を活用するためには、モニタリングによって負荷や稼働状況を監視する必要があり、それを可能にするのがAmazon CloudWatchの各機能です。ぜひ、活用しましょう。
- polling型ではなくpush型である
- AWSのマネージドサービスにも対応している
- AWSのサービスをフル活用できる
AWS CloudWatchサービスをより活用するためのプログラミングが学べるスクールならこちら
Amazon CloudWatchの4つの活用例
Amazon CloudWatchの、具体的な活用例についてご紹介します。
インフラのモニタリングおよびトラブルシューティング
一般的な監視ツールを使う目的は、システムに異変が発生したら、ただちに行動できるように監視することと、異変の原因を調べるためにログを記録しておくことです。Amazon CloudWatchには、AWSで稼動している各種サーバーなどのインフラ設備に対して、モニタリングおよびトラブルシューティングの機能を提供します。
リソースの最適化
サービスの当初に見込んでいたリソースを、運用後の負荷に応じて増やしたり減らしたりできるのも、クラウドであるAWSのメリットの一つです。しかし、負荷の状況を正しく把握できなければ、リソースの最適化はできません。Amazon CloudWatchなら、負荷の状況をチェックし、自動でリソースを増減させることも可能です。
アプリケーションのモニタリング
Webによるサービスを向上させるには、インフラリソースの最適化も重要ですが、アプリケーション毎のパフォーマンスも大きく影響します。その点Amazon CloudWatchは、AWS上で稼働するアプリケーションのモニタリングも可能なため、ボトルネックの原因解析に必要なログを提供し、パフォーマンスの改善に役立ちます。
ログ分析
システムの解析に役立つログですが、実際は膨大なテキストの羅列で、解析するには経験や専用の解析ツールが必要です。その点、Amazon CloudWatchには、AWSに接続するだけで利用できる、高機能なログ解析ツールが用意されています。また、ログの解析をAWSの専門家に依頼するサービスの利用も可能です。
Amazon CloudWatchの料金
最大50個のメトリクスからなる3つのダッシュボードまでが無料です。また監視間隔は5分なら無料、それ以上の短い間隔を設定すると有料になります。
無料で利用出来るならAmazon CloudWatchを活用してみたいけれど「システム開発全般の知識がなく不安」といった悩みをお持ちの方は、「ポテパンキャンプ」での無料カウンセリングがおすすめです。
Amazon CloudWatchの始め方
それではEC2を例にとり、実際に設定してみましょう。
ダッシュボードを作成
AWSのリソースを管理する単位を、ダッシュボードといいます。まずダッシュボードをつくります。AWSマネジメントコンソールから、CloudWatchを選択し、ダッシュボードの作成をします。
ダッシュボードに時間とともに推移するグラフを追加しましょう。
追加した結果です。グラフにマウスのポインタを合わせて詳細を表示させてみました。
その他のサービスを監視させるときも大体同じ要領です。簡単ですね。
まとめ
本記事では、AWSで利用出来る監視ツール「Amazon CloudWatch」サービスについて、基本的な概要からメリット・デメリットを含めた情報をご紹介してきました。
企業にインフラ管理の専門家がいなくても、導入も容易で無料で利用可能なAmazon CloudWatchはぜひ活用すべきサービスです。
基本的な機能であれば無料で利用出来るので、まずは気軽に導入して実際の使用感を確認してみましょう。
AWS CloudWatchサービスをより活用するためのプログラミングが学べるスクールならこちら