どうも、iron千葉(((( ;°Д°))))です。
AWSでは、手っ取り早く監視ができるCloudWatchというマネージドサービスがあります。
オンプレの場合、可用性・ディスク容量等を考慮して監視サーバを導入する必要がります。
これに比べ、AWSで監視を行う場合、例えばEC2を作ったらメトリックス(CPU使用率など)が自動で取得されます。
AWSで監視を行うには、
- SNSのトピックを作る
- CloudWatchより、メトリックスを選択し閾値を設定する
のみで、とてもスマートに監視を開始できます。そして、閾値を超えた場合メールが飛んできます
オンプレでの苦労はなんだったのか!
ただし、制限事項もあります。
CloudWatchのデータは2週間保存。それ以前のデータは破棄されるのでご注意ください。それ以前のデータが欲しい場合は、こちらを参照して取得する必要があります。
また、デフォルトで取得できる項目が決まっており、それ以上の情報が欲しい場合は、自分でスクリプトを書いてデータをCloudWatchに飛ばす必要があります。
これをカスタムメトリックスと言います。
本日は、CloudWatchにてデフォルトで取得されるもの、カスタムメトリックスが必要な項目についてまとめます。
対象はEC2,RDS,ELB等、よく使うであろうサービスに絞ってまとめます。
EC2
取得可能な項目
- CPU使用率
- CPUクレジット消費数・残数(t2系のインスタンスのバーストできるクレジット)
- ディスクのread・writeのI/O数、バイト数
- ネットワークのイン・アウトの使用バイト数
- システムチェック(AWSホスト側のネットワーク、ハード等の状態と、EC2インスタンスステータスチェック状態)
- ログ監視
カスタムメトリックスが必要な項目
- ディスク使用率
- メモリ使用率
- swap使用率
- ping監視
- プロセス監視
- ポート監視
- web監視
EBS
取得可能な項目
- ディスクのread・writeのI/O数、バイト数
- read・writeにかかった秒数の合計(例:5分間に1秒のリクエストを700こなした場合、値は700となる)
- read・writeをしなかった秒数(idle)
- read・writeのキューの数(負荷などで、書き込み・読み込み待ちになったキュー数)
- IOPS時の、上限に対する利用パーセンテージ
- 消費されたIOPS数
※EC2で取得できる項目とかぶる箇所がある
カスタムメトリックスが必要な項目
- ディスクの使用率はEC2側でカスタムメトリックスで取得が必要
ELB
取得可能な項目
- バックエンドの正常・異常なホスト数(ヘルスチェック成功?失敗?)
- バックエンドへのリクエスト数
- バックエンドへのリクエストのレイテンシ
- ELBが返した、4XX、5XXのエラーコード数
- バックエンドが返した、2XX、3XX、4XX、5XX
- バックエンドとの接続失敗した数
- バックエンドへの保留中のリクエスト、キューが一杯のため拒否したリクエスト
取得できないもの
- ELBを通過したネットワークの容量
- ELBのCPU
- ELBのメモリ
→そもそもELBは、自動でスケールするため不要な項目
RDS
取得可能な項目
- リードレプリカ利用時の、マスター側で専有しているバイナリログの容量(バイト)
- CPU使用率
- CPUクレジット消費数・残数(t2系のインスタンスのバーストできるクレジット)
- データベースへの接続数
- read・writeのキューの数(負荷などで、書き込み・読み込み待ちになったキュー数)
- 利用可能なメモリ容量(EC2では取得できないがRDSでは取得可能)
- 利用可能なストレージ容量(EC2では取得できないがRDSでは取得可能)
- MySQL、マルチAZ利用時のレプリケーションラグの秒数
- RDSのswap総容量
- 秒間あたりの書き込み操作数、読み込み操作数
- 1回の書き込みにかかる平均秒数、1回の読み込みにかかる平均秒数
- 1回の書き込みにかかる平均バイト数、1回の読み込みにかかる平均バイト数
- 受信時のネットワークトラフィック(バイト/秒)、送信時のネットワークトラフィック(バイト/秒)
カスタムメトリックスが必要な項目
- マネージドサービスなのでカスタムメトリックスを利用できない
- ただし、ログはマネジメントコンソールから確認できる(ログ監視は工夫が必要)
- RDS障害時はCloudWatchでの監視以外にイベント通知を利用しての監視が可能。様々なイベントの通知を受信できます。
S3
- メトリクスなし
- アクセスログは有効にすることで取得できるので、アクセスに関しては自前でログを解析する必要あり
本日は以上です。