BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【AWS】CloudWatchにログを出力できるAWSサービス

こんにちは!
BFT名古屋支店の、佐野です。

環境を構築している時、監視をどうしようかと気になることもあるでしょう。
特にトラブルが起きた際には、何があったかを知るためにはログが重要となると思います。

AWSには、環境下で構築されているサービスを監視できる「CloudWatch」があります。
これを利用することで運用中のインスタンスなどが異常値を示したときにアラートを出させたり、ログの取得を行なうことができます。

今回からこの「CloudWatch」に関する、特に各AWSサービスのログをCloudWatchに出力する方法について、数回に分けてお送ります。
第一回目は全体的なさわりとして、CloudWatchにログを出力できるAWSサービスについて述べていきます。


はじめに

今回ご紹介するのは、筆者がCloudWatchでログを出力したことのあるAWSサービスとなります。
ここで紹介する以外にもCloudWatchでログ出力を行なえるAWSサービスは多くありますが、そちらは割愛させて頂きます。

それを踏まえて、ここで紹介したものについては第二回以降でCloudWatchへのログ出力方法を解説する予定です。


CloudWatchにログを出力できるAWSサービス

  • Amazon Elastic Compute Cloud (EC2)

システムログ(Windows)や/var/log/messagesログ(Linux)をはじめとして、OS上のあらゆるログをCloudWatch上に出力することが可能です。
ただしログをCloudWatchに出力するには、対象となるインスタンスにCloudWatchエージェントの導入が必要となります。
特にCloudWatchエージェントの導入については今後の記事で解説します。

Lambda関数で処理された全てのリクエストのログがCloudWatch上に出力されます。
以下のポリシーを持ったIAMロールを対象のLambda関数に付与していれば、実行の際にログが自動的にCloudWatchに出力されます。

 ● AWSLambdaBasicExecutionRole
 ● AWSLambdaVPCAccessExecutionRole

このポリシーを持った一般的なLambda関数の作成については、今後の記事で解説します。

SQL監査ログ(MySQL)、DBインスタンスの監査ログ(PostgreSQL)がCloudWatchに出力できます。
ただしAmazon Auroraの場合、MySQLにおいては「高度な監査の有効化」、PostgreSQLにおいてもログ発行の為の設定が必要となります。
特にAurora ServerlessのCloudWatchログ出力の方法については、今後の記事で解説します。

VPCのフローログをCloudWatchに発行することが可能です。
ただしフローログは手動でのみ作成・発行することができ、自動的に取得・出力されることはありません。
またフローログの発行はCloudWatchだけでなくS3にも行なうことができます。

フローログをCloudWatchに発行する方法については、今後の記事で解説します。

リクエストの実行やAPIへのアクセスログをCloudWatchに出力することが可能です。
ただしCloudWatchにログを出力するためには、API Gateway全体に「CloudWatchへログを書き込む」権限が必要となります。
またAPIそれぞれにログの有効化設定をしていないと、ログを出力することができません。

API GatewayおよびAPIからCloudWatchにログを出力する詳細な方法については、今後の記事で解説します。
 

先に述べた通り、この他にもいくつかCloudWatchにログを出力できるAWSサービスは存在します。
(Elastic Container Service、Fargate、Neptuneなど)
しかしよく利用されやすく、CloudWatchにログを出力できるサービスは以上の通りとなります。


最後に

今回はざらっと触れた通りになりますが、次回以降は今回挙げたものに関してより詳しい解説をしたいと思います。