[アップデート]Amazon RDS for SQL Server から Amazon CloudWatch Logs へログ出力可能になりました

数日前に Amazon RDS for SQL Server から Amazon CloudWatch Logs へログ出力可能になりました。

https://aws.amazon.com/jp/about-aws/whats-new/2019/11/now-publish-log-files-amazon-rds-sql-server-amazon-cloudwatch/ より

Amazon RDS for SQL Server データベースから CloudWatch Logs へログを出力できるようになりました。サポートされているログには、エージェントログとエラーログの両方が含まれています。CloudWatch にこれらのログを出力することでエラーやアクティビティを継続的に把握することができます。たとえば、お客様は、頻繁に起こる再始動について CloudWatch Alarms を設定することができます。この情報はエラーログに保存されています。同様に、お客様は、SQL エージェントのジョブに関連してSQL Server Agent ログに記録されたエラーまたは警告についてのアラームを作成できます。 CloudWatch Logs では、データベースのログを耐久性に優れた方法でアーカイブできます。CloudWatch Logs がどの程度の期間、ログを保持するかを示す保持期間を指定できます。さらに、CloudWatch Logs を使用することにより、複数のログに対し、アドホック検索を実行できます。この性能はトラブルシューティングやログ分析などに特に有用です。

実際に設定方法や出力されるログがどんなものかを確認してみたいと思います。

やってみた

対象の RDS の設定を変更します。変更から追加設定をクリックします。

ログのエクスポートからエージェントログエラーログにチェックします。IAMロールはRDS Service Linked Roleを使用するため、別途指定するは必要ありません。

ちなみに、SQL Server Express Editionだと CloudWatch Logs に出力するログタイプはエラーログのみでした。以下のエディションだとエージェントログを選択できます。

  • SQL Server Web Edition
  • SQL Server Standard Edition
  • SQL Server Enterprise Edition

設定が反映されると、以下のCloudWatch Logsのロググループが作成されます。

  • /aws/rds/instance/DB 識別子/agent
  • /aws/rds/instance/DB 識別子/error

ロググループ配下に RDS のノードごとにログストリームが出力されます。agent、error共にログストリーム名は同じでした。

エージェントログのサンプル

エラーログのサンプル

おわりに

簡単に設定変更でき、すぐにログを出力することができました。 あとは、メトリクスフィルターを作成して特定の文字列が出力されたらアラームを発報したり、CloudWatch Logs Insights で分析したりできます。

今年は CloudWatch に関するアップデートが続々と登場し、できることが増え続けて凄いと思います。 re:Inventでは、どのような新機能の発表があるか楽しみですね!

本エントリがどなたかのお役に立てれば幸いです。