バナー画像

AWSは非常に便利なクラウドサービスですが、便利な反面、障害はいつかは起こるものです。原因はAWSにある場合もあるし、AWSの利用者や利用者のサービスを使うユーザーにある場合もあります。原因はともあれ、異常をいち早く察知し、影響を最小限にとどめるような初期挙動が求められます。

AWSには各種サービスに最適な監視の仕組みが用意されています。それが、今回解説するAmazon CloudWatchです!

サードパーティー製の監視ツールを導入するのも手ですが、導入や運用のコストを考えるとAmazon CloudWatchのほうがメリットが大きいのです。システムのインフラはAWS上に構築されていますか?もしそうなら、Amazon CloudWatchをぜひご検討ください!

Amazon CloudWatchとは監視ツールでAWSのサービスの一つ

Amazon CloudWatchは、AWSのサービスの1つです。マネジメントコンソールで簡単に使用を開始できます。EC2のCPU使用率やEBSのI/O、RDSのパフォーマンス値を監視できます。あらたなミドルウェアの導入など一切必要ありません。

ちなみに、このような各種パフォーマンス値を「メトリクス」といいます。本記事でも、以降メトリクスと表現します。システム開発における品質管理指標もメトリクスといいますね。

EC2にCloudWatchを監視した結果をご覧ください。

EC2のCPU使用率が取得できたのがお分かりでしょうか。こういった監視がAWSの各種サービスに適用できます。

その他、こんなメトリクスが用意されています。

また変わったところでは、AWSの利用料金を監視できます。ある金額をしきい値として、それを超えたらアラート発信といった使い方です。

使用感も悪くなく、グラフを表示した後はマウスのポインタを動かして、細かい数値を把握することが可能です。

現場でよくある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の3つのメリット
  • 導入が簡単
  • 監視の運用工数を削減できる
  • 無料で使える枠がある

Amazon CloudWatchのデメリットは、AWSのサービスの1つであるということ

メリットばかりを並べましたが、デメリットはないかを考えてみました。ほとんどないのですが1点だけご注意を。Amazon CloudWatchはAWSのサービスの1つです。つまり、AWSのサービスそのものが止まってしまうとCloudWatchまで共倒れになるのです。それが数少ないデメリットといえますね。

ただしこれも、監視対象のあるリージョンとは別のリージョンに、または別のアベイラビリティゾーンに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のサービスを操作できるので、自宅にいるときも対応できますね!まあ、したいかどうかは別ですが。

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の各機能です。ぜひ、活用しましょう。

他のサービスではなくAmazon CloudWatchが良い理由
  • polling型ではなくpush型である
  • AWSのマネージドサービスにも対応している
  • AWSのサービスをフル活用できる

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の始め方

それではEC2を例にとり、実際に設定してみましょう。

ダッシュボードを作成

AWSのリソースを管理する単位を、ダッシュボードといいます。まずダッシュボードをつくります。AWSマネジメントコンソールから、CloudWatchを選択し、ダッシュボードの作成をします。

ダッシュボードに時間とともに推移するグラフを追加しましょう。

追加した結果です。グラフにマウスのポインタを合わせて詳細を表示させてみました。

その他のサービスを監視させるときも大体同じ要領です。簡単ですね。

まとめ

本記事では、Amazon CloudWatchを解説しました。

ミドルウェアを追加することなく各種サービスを監視できるAmazon CloudWatch、ぜひ導入を検討してみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。