
awsを利用するにあたりリスクとなるのはシステム障害です。これはオンプレミスでも同じであり、システム障害を100パーセント防止することはできません。予期せぬところで発生するシステム障害の影響を最小限にとどめるために利用するのが監視です。
監視は用途に応じたものを利用しなければ意味をなしません。監視の種類と導入の目的、awsで利用するのに便利な監視ツールを紹介します。
awsのシステム監視の種類
システムはハードウェアやソフトウェアの組み合わせで構成されています。awsも例外ではなく、クラウド上にサービスの基盤が存在するだけでハードウェアやソフトウェアを組み合わせて利用しています。どんなシステムにも共通していえるのがシステムそのものが常に正常に稼動しているかを見守る必要があるということで、それが監視です。
監視にはインフラ監視とサービス監視の二種類が存在します。同じシステムの中でも監視している対象が異なっているのが特徴です。インフラ監視とは、ネットワークやリソースなどのインフラ関連が正しく稼働しているかを確認する監視です。
オンプレミス環境でもクラウド環境でも同じで、システム内部のパーツが正しく動作をしているかをチェックします。インプットデータを検証して最後にデータベースに書き込むプロセスで、書き込みがなされないといった異常はインフラ監視で発見することができます。
もう一つのサービス監視は、Webアプリケーションを対象とした監視です。ユーザはシステムから離れた場所からインターネットなどを介して遠隔でシステムにアクセスします。このときの画面遷移やURL反応が正しいかどうかをチェックするのがサービス監視です。
監視は、インフラとサービスの二軸から行われています。
監視の目的を明確にする
監視を取り入れる前の基本設計として監視を行う目的を明確にする必要があります。システムは未来永劫正しく稼働してくれるとは限りません。いつ何時障害に見舞われるかわかりません。障害とは、機器やソフトウェアに生じる問題、サイバー攻撃、自然災害など原因は多岐にわたります。
しかし共通していえることはこれらの障害によってシステムは影響を受け、利用する人にも連鎖して影響を及ぼします。障害が発生しないようにすることはもちろん必要ですが、想定外のシステム障害発生に常に備えるのもリスク対策として必要です。
監視はそのために利用するものです。監視をしないと障害が発生したときの影響範囲を拡大させてしまいます。例えば、夜間に障害が生じたとき、システム管理者が帰宅後であれば、翌日まで障害の状態が継続します。発生から対応までの時間帯が長ければ長いほど影響範囲は広がります。
CPU、メモリ、ストレージなどが原因である場合、サーバダウンや再起不能な状態に陥る可能性もあります。障害発生時に即対応する重要性はここにあります。システム障害を機に犯罪が横行すれば、その被害を拡大させてしまいます。
小さな原因が、取り返しのつかない大事故に発展する可能性もあります。
監視方法の種類
監視方法にはいくつかの種類があります。単独で利用することもあれば、組み合わせて利用することもあります。外形監視はユーザ視点で正しく動作しているかを監視する方法です。ユーザ視点といっても手動で行うわけではありません。
サーバに対してPINGを打ったり、特定のURLのレスポンスを機械的に読み取ったりして監視します。システムでしか検知できない応答を利用して監視するのが死活監視です。サーバやネットワークの監視に一般的に利用されている方法で、相互やりとりを行いどちらかに異常があれば、停止されるため気づきます。
利用状況を監視するリソース監視もあります。CPU、メモリ、ディスクなどは利用している状態が常に変化します。そしてパンク寸前まで利用して急にサーバダウンなどを起こしてしまう危険性もあります。未然に回避するためにリソース状態を監視しておくのがこの方法です。
ネットワークの接続状態を見る接続監視は、ネットワークの指定ポートへ接続をし応答があることを定期的にチェックする方法です。障害や性能低下の発生を迅速に見つけることができます。そしてサーバからのログ監視です。
あらかじめログに含まれる文字列やキーワードをもとに監視を行い、設定したキーワードのログが検知するとアラートが出る仕組みでシステムの異常を検知します。
適切な監視は定義設計がポイント
システムに監視を設定するには、適切な監視体制を敷かないと意味がありません。awsでもデータベースやアプリケーションなど様々なサービスやツールがあります。これらの特性を知解して正しく監視させておく必要があります。
インスタンスの利用監視とEC2の監視では用途も目的も異なります。インスタンスではアクセスログを用いた監視、EC2では接続監視や外形監視などを利用するなど適切な監視を取り入れる設計が大事です。監視タイミングの設定も必要です。
利用頻度が少ないアプリケーションに分単位の監視サイクルを設定しても意味がありません。逆にアクセスが非常に多いサイトに対しての監視を一日一回では少なすぎて意味がありません。利用状況などに応じて頻度を設計する必要があります。
⇒awsとec2の違いや関係性とは?pingで監視するツールには何があるのか
awsにおすすめのAmazon CloudWatch
awsで監視をするのであれば、オプションサービスのAmazon CloudWatchを利用するのがおすすめです。
awsには標準でログを取得する機能などは備わっていますが、汎用性が低く、他のアプリケーションなどとの連携に制限があります。簡易的な監視機能として用いるのであれば十分ですが、システム機能を保持するための監視としては物足りないのが現状です。
Amazon CloudWatchはawsでの利用専用なのでawsにマッチした機能を持ち合わせています。複数のインスタンスやアプリケーションなどを一元的に監視することができるとともに、イベントやログなど監視に必要なオプション機能が充実しています。
監視で発生したアラートをトリガーにアクションを起こすことも容易です。awsで監視機能を充実させるのであれば、Amazon CloudWatchを利用するのが最も効果的です。(参考:aws保守:CloudCREW)
監視はシステムを守るために入れる
オンプレミスでもawsでもシステムを正常に稼働させ続ける目的は同じです。システム障害は様々な要因で予期せぬところで発生します。100パーセント防止することは不可能であるため、障害の影響を最小限にするために取り入れるのが監視です。
awsでは専用のオプションサービスであるAmazon CloudWatchが用意されています。専用のツールであるため、安心して利用できます。