Amazon CloudWatch Logsとは?
AWSが運用を行うログ管理のマネージドサービスで、ログ収集、蓄積、フィルター、可視化、アクション、出力というログ管理の一連の機能を備えるサービスが「Amazon CloudWatch Logs(以下、CloudWatch Logs)」です。
マネージドサービスのため、オンプレミスと違い監視サーバ用のリソースを用意したり管理したりする必要がなく、管理負担が少ない。また、ログ取得対象は、EC2は勿論、AWSの操作ログ(CloudTrail)、ネットワークログ(VPC Flow Logs)、DNSクエリーログ(Route53)のログを取得することが出来る。RDSのような一部のPaasのログもカスタムメトリクスを取得可能です。
CloudWatch Logs構成パターン
CloudWatch Logsの構成パターン例を紹介します。
サービス | 構成パターン | システム概要 |
CloudWatch Logs | EC2ログ管理 | EC2インスタンスのログから不正なログインに対してアラートを送信するシステム |
RDSログ管理 | PaasであるRDSインスタンスにおいてCPU負荷が閾値を越場ときにプロセス情報をS3に保存するシステム |
CloudWatch Logs機能別解説
CloudWatch Logsについて「収集・蓄積」「フィルター・可視化」「アクション・出力」という機能ごとに説明します。
機能 | 説明 |
収集・蓄積 | CloudWatch Logsを使うには対象のEC2にエージェントを導入します。エージェントがEC2内部のOS・ミドルウェア・アプリケーションの任意のログを取り出し、CloudWatchのストレージに保存されます。このストレージはS3ベースで容量制限はありません。5GBまでは無料だがそれ以上になると課金が発生します。1GBあたり80円/月くらいであるがログ次第では課金額が増えるので圧縮や自動削除の仕組みが重要です。
また、ログの保存期間は設定でき設定期間が過ぎると自動削除されます。なお、ログはS3へバッチでエクスポートも可能です。料金としてはあまり変わらないですが、Kinesis StreamやLambdaなどによるデータ配信が可能です。 |
フィルター・可視化 | CloudWatch Logsのストレージに保存されるログは、メトリクスフィルターとカスタムメトリクス(ユーザ独自定義メトリクス)を使うことで可視化が可能です。
具体的なメトリクスフィルターの作成手順としては、マネジメントコンソールやAWSコマンドラインインタフェースで作成します。メトリクスフィルターでは語句や値の条件を指定します。ログの収集イベントのたびにメトリクスフィルターが動作し、条件にヒットするデータがあるとカスタムメトリクスとしてカウントします。例えば、メトリクスフィルターの指定条件を「ERROR」という単語にすればエラー発生回数がCloudWatchのカスタムメトリクスとして記録されます。 |
アクション・出力 | CloudWatch Alarmsを使いメール送信やAutoScaling、EC2インスタンス起動/停止を実行できます。
具体的な設定方法は、CloudWatch Alarmsの設定画面でカスタムメトリクスの閾値とアラームアクション(メール送信、AutoScalingなど)を設定します。例えば、ログに5分あたり「ERROR」が10回以上出力された場合は、AutoScalingを実行する設定が可能です。 |
ひと言コメント
CloudWatch Logsをうまく活用すれば監視は勿論、運用自動化環境が一からプログラミングするより容易に構築できます。
CloudWatch Logsでは、EC2インスタンスだけでなくRDBのPaaSであるRDSやAuroraのログも取得できます。今後はさらにサーバレス化と運用自動化の流れが加速することが予想されます。その時のシステムの一部と欠かせないCloudWatchを把握しておきましょう。