awsの死活監視の重要性と活用できるサービス

パソコン2

クラウドサービスの先駆けとして利用が始まったawsは、ユーザーが求めるクオリティを追求してきた結果、同種のサービスの中でトップシェアを誇ります。コンプライアンスの要件を満たしたデータセンターが運営されているなど、セキュリティ対策に安心感がありますが、監視は依然として重要です。

その理由と活用できるサービスについて考えます。

⇒awsの監視の基本は用途に応じた監視ツールを導入すること

awsの死活監視の重要性

IT資産を管理するうえで重要なことはいくつもありますが、awsを含むクラウドなど、インターネットを介して提供されるサービスが多くなっている現状では、死活監視が重要です。

死活監視とは、サーバーやそれに紐づいているネットワーク機器、ソフトウェアなどの稼働状況を監視する作業です。死活監視の重要性は火を見るより明らかです。ネットワークは、今ではインフラととらえられており、24時間365日稼働できるのが当たり前と考えられています。

常に正常に動作することを前提にサービスが提供されるので、ひと時でもネットワークがダウンしてしまうと、ビジネスにおいて大きな損害につながり、信用問題になりかねません。

顧客がサービス利用できないだけでなく、社内システムも利用不可となる可能性があり、日常業務に支障が出ることも考えられます。死活監視は「ping」コマンドを使って実施するのが一般的です。Windowsのコマンドプロンプトでも利用できますし、ネットワークにかかわる仕事に従事している方は、使ったことがあるかもしれません。

pingは、ネットワークやその先に接続されている機器に対して、ICMPといわれるプロトコルを使ったパケットを送り、応答があるかどうかで死活監視を行います。ネットワークでは、多少のパケットが送り届けられなくても、正常に動作できるような仕組みとなっているため、pingを使う場合は、数個のパケットを送信したり、継続してpingを実施しないと、本当の意味の状況確認はできません。

この作業をすべて人手を介して行うと、労働力コストがかかりすぎてしまうため、死活監視システムを構築することが大切になります。一般的な死活監視は、あくまでネットワークやそれに接続されている機器の稼働状況をチェックするだけとなるため、プログラムが稼働しているか、アプリケーションが正常に動作しているかなどは調べられません。

そのため、死活監視以外の監視も併用する必要があります。その一つが、遅延監視です。遅延監視は、ネットワークの反応速度の監視となり、スムーズなサービス利用に役立つほか、ハードウェアの障害を未然に防ぐ助けになります。

経路監視は、ネットワークの通信量を監視します。一つのサービスにアクセスが集中して輻輳(ふくそう)が起きると、通常通りの処理ができなくなり、通信速度が低下するケースがあります。その点を検知するのが経路監視で、SNMPというプロトコルを使って行われます。

状態監視も死活監視と併用して用いられます。こちらは、サーバーやネットワークに接続されている機器のCPUやメモリ、ディスク使用量といった状態を監視する仕組みです。Windowsでいう「タスクマネージャー」のようなもので、こちらもSNMPを使い、監視します。

⇒awsとec2の違いや関係性とは?pingで監視するツールには何があるのか

awsはサーバーレスでも死活監視は必要

awsはサーバーレスのシステムで、サーバーやOSよりも下の階層までawsが状態把握しているので、死活監視する必要はないと考える方もいます。ですが、その考え方は正しくありません。実際、awsでは、主に3つの点で監視が必要です。

まず一つが、アプリケーションです。アプリケーションにバグがある場合、運用面でエラーが生じる可能性があるからです。awsを使うと、OSよりも下のレイヤーであるネットワークや物理的な部分の状態がはた目にはわかりにくくなるからこそ、アプリケーションの監視を強化する必要があります。

また、リソースの監視も重要です。awsのコンポーネントの中には、リソースの制限値が設定されているものがあるので、上限に達していないかを調べることで、ボトルネックの解消に役立ちます。ボトルネックの解消には、パフォーマンスの監視も重要です。

パフォーマンスの良しあしは、サービスの使い勝手に影響するからです。

awsの死活監視に使われるCloudWatchとは

awsの死活監視によく利用されているのが、CloudWatchです。こちらは、awsが提供する「フルマネージド運用監視サービス」で、セットアップが不要で使用でき、異常を検知すると、復旧までを自動で担ってくれます。

また、アラートの通知やアクションを設定でき、awsのさまざまなサービスの監視が可能になります。死活監視サービスは各社で提供されており、すでに使用していたシステムをそのままawsで使いたいという要望も聞かれますが、CloudWatchを使う利点は大きいといえます。

CloudWatchは、Push型のサービスを提供していることが最大のメリットです。Push型の監視サービスの利点は、監視対象が増えた場合、その対象が自動的に通知を送ってくるようになり、何も設定していなくても、監視が可能になることです。

知らない間に監視対象が増えていて、対応が追い付かなかった結果、大きな損害につながってしまったという事態は、Push型のCloudWatchを導入していれば防止できるはずです。

CloudWatchを使った死活監視の一例

CloudWatchを使った死活監視の方法を、ウェブサイトに対して行うケースを例にとり、考えます。まず、CloudWatchのコンソール画面に移動し、メニューバーから「Synthetics Canaries」を選びます。

そのあとに「Canaryを作成」をクリックします。Canaryの設定画面上では、死活監視したいURLを設定します。「設計図を使用する」にチェックマークを付けてから、「ハートビートのモニタリング」を選びます。

Canaryビルダーの名前の欄に認識しやすい名称を入力し、エンドポイントURLに監視対象としたいURLを入力します。画面下側の「Take screenshots」にチェックを入れると、ヘルスチェックを行ったときのスクリーンショットを自動でとってくれるので、状態を把握するのに便利です。

さらに、スケジュール間隔を実情に合わせて設定します。死活監視でエラーが出た場合に通知を受け取る設定も行います。CloudWatchのアラームの設定画面上で、メトリクス名を「失敗」に設定し、閾値が1以上にすると、エラーが一つでも検出された場合にアラームが出るようになります。

次に、「Canaryの通知を設定する」の画面から、メール通知を出すように設定します。こちらは、「新しいトピックの作成」をラジオボタンで選択し、「通知を受け取るEメールエンドポイント」の欄に、メールアドレスを登録し、「トピックの作成」をクリックして設定を完了します。

CloudWatchとZabbixの違い

awsの死活監視において、CloudWatchと比較されるのが、Zabbixです。Zabbixは、CloudWatchで可能なRDSやELBなどのリソース監視が標準装備されていませんが、逆にCloudWatchが標準で装備していないプロセス監視やWeb監視、ログの監視が搭載されています。

インスタンスの死活監視の仕組みは、CloudWatchはステータスを監視するようになっていますが、Zabbixはpingで監視します。データの保存期間は、CloudWatchは2週間となっているものの、Zabbixはデータベースに保存するので制限はありません。

利用料金は、CloudWatchが条件付きで有料ですが、ZabbixはEC2の利用料金に含まれます。イベントの通知方法ですが、CloudWatchはaws SNSに限られ、コマンドは標準では装備されていません。

対してZabbixは、メールやSNS、jabberチャットメッセージを選択でき、コマンドも実行可能です。

⇒awsサービスのdynamodbにおける適切な監視方法

awsの死活監視を理解して円滑な運用に利用する

awsは、サーバーレスのクラウドサービスとはいえ、ネットワークにつながり、ビジネス上、ポイントとなるシステムなので、死活監視は重要です。単にサービスが落ちないことを確認するだけではなく、遅延やパフォーマンスを把握できるよう、様々な監視方法を併用すると、スムーズな運用が可能になります。

Push型のCloudWatchやZabbixを利用すると、簡単な設定でawsの監視を行うことができます。