CloudWatch
多くのAWSサービスはCloudWatchによる監視に対応しており、対応しているAWSサービスから情報(監視対象のパフォーマンス項目、例えばCPU使用率など)が収集される。
ちゃんとした言葉で表すと「AWSリソースの状態(メトリクス)を定期的に取得するもの」である。
AWSが標準で定義しているメトリクスについては以下に記載されている。これらはCloudWatchでデフォルトでログ収集が可能。ここにないものも独自に定義することが可能。(カスタムメトリクスと呼ぶ)
標準メトリクスにメモリ使用率は含まれていない。(※2022年7月時点)
CloudWatch Logs
ひたすらログ収集を行うもの。独自のエージェントをインストールする必要がある。
特定の文字列を検出するといったことが可能。例えば「ERROR」や「WARN」といったログが一定期間内に3回以上検出されたときにアラームを動作させるといったことが想定される。
CloudWatch Events
収集された情報をもとにトリガーを設定し、何らかのアクションを実行するもの。
例えば、
・Webサーバー用のEC2インスタンスのCPU使用率が80%を上回ったとき
・定期実行するLambda関数が一定期間に3回異常エラーを出した時
CloudTrail
AWSに関する操作ログを自動的に取得するサービス。具体的にはログインなどのユーザーアクティビティとAPI操作を指す。「誰が」「いつ」「どのような操作をしたか」といった監査ログを残しておくことで、重大な障害やインシデントが起きてしまった時に分析をすることができる。
イメージとしては飛行機のフライトレコーダーと同じ。墜落してしまった時に事故原因の分析に利用されるやつ。
デフォルトでは管理イベントの取得のみが有効となっており、過去90日分のログをコンソール上で確認可能。設定を変えればデータイベントについても確認可能となる。
管理イベント:マネジメントコンソールへのログイン、EC2インスタンスの作成、S3バケットの作成など
データイベント:S3バケット上のデータ操作、Lambda関数の実行など
画像引用:Wikipediaより
CloudTrailとCloudWatch Logsとの連携
CloudTrailだけでも各ユーザの操作を追跡することができて意味があることではある。ただ、事後検証に役立つツールとしてだけではなく、できれば事前に異常を検知してほしいものである。
そこでCloudWatch Logsと連携をしてやることで、とあるユーザが不正な操作をしている場合に(「WARN」のログがやたら発生している等)にアラートを出したりすることが可能となる。
参考