CloudWatchで出来ること、AWS監視のお作法とは

クラウドへのシステム移行を検討されている企業や組織は増加する一方ですが、移行先の候補の一つとして挙げられるのが国内外で豊富な導入事例を持つAmazon Web Services(以降、AWSと略す)です。そうした企業や組織のシステムを預かる運用部門の方の中には、AWSに合わせて監視運用をどう設計すれば良いのかを悩まれ、まさに現在調査中の方も多くいらっしゃるかと思います。

本記事では、運用の中でもシステム安定稼働に無くてはならない「システム監視」にフォーカスし、

  • Amazon CloudWatch(以降、CloudWatchと略す)でどういうことができるのか?
  • AWS上でシステム監視を行う場合のお作法や注意点を知りたい

とお悩みの方にぜひ知って頂きたい情報をお伝えします。

1. AWS監視に必要不可欠なCloudWatch

1.1 CloudWatchとは?何ができる?

CloudWatch とは、AWS上で提供されるあらゆるサービスを監視するためのサービスです。後述しますが、特にPaaSやSaaSのようにユーザーが管理できる範囲が限られるサービスを監視するためには必要不可欠なサービスです。サービスの特長としては以下が挙げられます。

  • 基本料金が無料(利用する機能や監視のデータ量に応じて課金)
  • SaaSとして提供されるので、構築不要ですぐに利用を開始できる
  • メトリクス(サービス毎のリソース情報)とログ(テキストデータ)を収集できる
  • メトリクスの閾値や特定のログ出力などの条件を基に、アラート通知や対処の自動アクションを行うことができる

CloudWatchでは、アラート通知を行うCloudWatch Alarmやログの収集を行うCloudWatch Logs、サービスのイベント(状態)をトリガーにアクションを実行するCloudWatch Eventsなどの機能が提供されており、それらを組み合わせることで、システム監視を行うことが出来ます。以下のようなイメージです。

CloudWatchによるAWS監視のイメージ

CloudWatch はAWSのすべてのサービスを監視することが出来ますが、サービスごとに監視できる項目は異なりますし、IaaSとPaaS / SaaSで監視の仕組みそのものも大きく異なります。ここからは、IaaSとPaaS / SaaSにおける監視の仕組みを詳しく説明していきます。

1.2 IaaS(EC2)の監視

AWSでは、Amazon Elastic Compute Cloud(以降、EC2と略す)という仮想サーバー構築サービスが提供されています。IaaSとして提供されるサービスなのでハードウェアやハイパーバイザーの監視は必要ありませんが、OSやアプリケーションのレイヤーはオンプレミスのシステム同様にユーザー側で監視する必要があります。EC2の監視方式として多く採用されるパターンには、以下の2つがあります。

CloudWatchを中心にした監視

メリット
  • 構築作業が不要
  • AWS各種サービスとの親和性が高い
デメリット
  • オンプレミスの時と同レベルの監視を行うには苦労する場合がある
  • 利用する機能や監視項目の設定によっては思わぬ料金が発生することがある

Loading component...

Loading component...

  • 死活監視
    • EC2インスタンスの状態(「起動中(running)」や「停止中(stopped)」など稼働状態)やステータス(EC2ホストやネットワークなどサービスの異常)を検知できる
    • CloudWatch Eventsで検知し、CloudWatch Alarmで通知する
  • リソース監視
    • CPU、メモリー、ディスクの使用量や使用率など、OSのパフォーマンスモニターと同等の情報をメトリクスとして収集できる
    • CloudWatch Alarmで閾値を設定し、閾値を違反した場合に通知する
  • ログ監視
    • OSのシステムログやアプリケーションが出力するログファイルのテキストデータを収集できる
    • CloudWatch Logsで収集し、フィルター条件に一致したログテキストを検出時にCloudWatch Alarmで通知する

図で表すと、以下のようなイメージとなります。

Loading component...

Loading component...

(補足)
Amazon CloudWatchの料金についてはAWSのウェブサイトでご確認ください。

Loading component...

1.3 PaaS / SaaSの監視

Loading component...

  • 状態監視
    • サービスのイベント(データベースインスタンスの停止や状態変化など)を検知できる
    • CloudWatch Eventsで検知し、CloudWatch Alarmで通知する
  • パフォーマンス監視
    • ストレージの空き容量やディスク書き込みI/O操作数やRead / Writeの性能などをメトリクスとして収集できる
    • CloudWatch Alarmで閾値を設定し、閾値を違反した場合に通知する
  • ログ監視
    • Amazon RDSが出力するログを収集できる
    • CloudWatch Logsで収集し、フィルター条件に一致したログテキストを検出時にCloudWatch Alarmで通知する

図で表すと、以下のようなイメージとなります。EC2監視の場合と殆ど同じですが、CloudWatchエージェントを介さずに各種情報を収集できる点が異なります。

Loading component...

Loading component...

2. AWS監視で重要なこととは?

2.1 CloudWatchでも簡単にできないことがある

CloudWatchでシステム監視を実現できることを説明しましたが、何でも簡単に実施できる訳ではありません。例えばオンプレミスでのシステム監視で実施していた以下のような事が簡単にできない場合もあります。

Loading component...

Loading component...

2.2 どうすれば良い?

Loading component...

Loading component...

Loading component...

Loading component...

Loading component...

関連情報

Loading component...

Loading component...