すのふら

すのふら

日々の備忘録

Amazon CloudWatchについて勉強

AWS 認定ソリューションアーキテクト – アソシエイトを受けるため、改めてAmazon Web Service(AWS)の勉強をする。

今回もこの本を一読したうえで機能単位で勉強していく。

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書

徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書


Amazon CloudWatchについて

AWS上で稼働する様々なシステムやAWSリソース情報を収集・監視・可視化するサービス。
具体的にはCPU使用率が高くなったらAuto Scalingを起動してインスタンスを増やすなどができる。
AWSサービスに閉じるので、AWSサービス外の場合はZabbixなどで監視するのが良い。


CloudWatch上で取得・監視する項目をメトリクスという。
メトリクスには大きく分けて2種類存在する。

  • 標準メトリクス
  • カスタムメトリクス


標準メトリクス

AWSが提供しているデフォルトのメトリクス。主に以下4つ。

  1. CPU使用率
  2. インスタンスストアボリューム(EC2に接続される揮発性のストレージ)からの(指定された期間での)読み取り回数
  3. インスタンスストアボリュームから読み取られたバイト数
  4. 全てのネットワークインターフェースから受信されたバイト数


カスタムメトリクス

標準メトリクス以外のメトリクスを独自に定義する。
よく使われそうなメモリ使用量やディスク使用率は標準に存在していないので、カスタムメトリクスで定義する必要がある。


監視間隔と収集データの保持期間

無料課金の基本モニタリングと、追加料金が必要な詳細モニタリングが存在する。
大きな違いは、EC2を監視する間隔。

  • 基本モニタリング:5分間隔
  • 詳細モニタリング:1秒間隔

dev.classmethod.jp

ただし、EBSやELB、RDSは無料でも1分間隔が使えたりとまちまち。

収集データの保持期間はともに最大15ヶ月。


CloudWatchのアクション系機能

CloudWatchで監視している項目で何かが起きたときアクションする機能は大きく分けて2つ存在する。

  • CloudWatchアラーム
  • CloudWatch Events

この二つの大きな違いは監視対象

CloudWatchはメトリクスだが、CloudWatch Eventsは状態変化などのイベント。

つまり、リソースを監視するのは同じだがトリガーとなるものが「ある閾値を超過するか」、「ある状態に変化した」で異なる。

awsjp.com


CloudWatchアラーム

「CloudWatch」で監視している項目がある一定の値になった場合に、アラームとアクションを起動することができる。

事前に指定した閾値を超えた場合に「SNSでメール通知」「AutoScaling連携」「インスタンスの動作(停止、再起動など)」が可能。


CloudWatch Events

「CloudWatch Events」で設定しているあるイベントをトリガーにアクションを実行する機能。

EC2のインスタンス状態変化をトリガーに、主に、「Lambda関数の実行」や「SNSでメール通知」、「Kinesisストリーム」、「SQSキュー」などが可能。
スポットインスタンスが強制停止の状態に変化した場合、Lambdaで新しいスポットインスタンスを起動するなどが可能。


監視関連サービス


CloudTrail

AWSアカウント上で利用された操作(APIコール)をログとして記憶するサービス。

AWSアカウントを取得した時点で有効化し、過去90日間のサービスに対する操作を表示する。
デフォルトで有効になっている。


VPCフローログ

VPC内のネットワークインターフェース間で行き来する通信の内容をキャプチャするサービス。


CloudTrailとVPCフローログの違い

f:id:snofra:20190530181727p:plain


CloudTrail ログファイルを複数のリージョンから受け取る

複数のリージョンのログファイルを、1 つのアカウントの 1 つの S3 バケットに配信するように CloudTrail を設定できます。たとえば、S3 バケットと CloudWatch Logs ロググループにログファイルを配信するよう設定された証跡が、米国西部 (オレゴン) リージョン にあるとします。この証跡をすべてのリージョンに適用すると、CloudTrail はその他すべてのリージョンに新しい証跡を作成します。
CloudTrail ログファイルを複数のリージョンから受け取る - AWS CloudTrail


CloudWatch Logs

CloudTrailやVPCフローログなどのAWS上のログを統合的に収集するサービス。
エージェントをインストールすることでAWS上のログだけではなく、LinuxなどのサーバーOSのログも収集することが可能。

CloudWatch Logs上のログの中からあるキーワードをフィルタし、存在する場合はCloudWatchアラームでSNSでメール通知を行うこともできる。