RDS のログエクスポートを低頻度アクセス用のログクラスに出力させてみる #AWSreInvent

2023.12.12

こんにちは、森田です。

先日のアップデートで、Cloudwatch Logs に低頻度アクセス用のログクラス Amazon CloudWatch Logs Infrequent Access(以降、Logs IA)が追加されました。

弊社の以下のブログでも紹介していますので、詳しくは以下をご参考ください。

Cloudwatch Logs にログの出力を行っているサービスはいくつもありますが、本ブログでは、RDSのログエクスポート先のロググループに Logs IA を使用する方法を紹介します。

RDS のログエクスポート

RDS や Aurora では、追加設定で、データベースで発行したログを Amazon CloudWatch Logs にエクスポートすることができます。

この機能を利用することで、CloudWatch を使用してアラームを作成したりメトリクスを表示できるなどの拡張性を得ることが可能です。

一方で、CloudWatch Logs のエクスポートを行うと追加でコストが発生します。

特に一般ログや監査ログを取得していると、非常に多くの取り込みを行うことになるため、Logs IA を使用することで、コスト削減を行うことが可能です。

ただし、Logs IA では、従来のロググループで行えていた機能(メトリクスフィルター、S3へのエクスポート機能など)が使えないのでご注意ください。

やってみる

ロググループの作成

まずは、ロググループの作成を行います。

RDSでは、以下のロググループに出力が行われます。

 /aws/rds/instance/instance_name/log_type

Amazon CloudWatch Logs へのデータベースログの発行

今回はインスタンス名をdatabase-cwlogs-test、エラーログのみを出力させるため、以下のようにロググループの作成を行います。

/aws/rds/instance/database-cwlogs-test/error

ログクラスをInfrequent Accessに指定を行い、作成を完了させます。

RDS作成

RDSインスタンスの作成を行います。

この際には、先ほど決めたインスタンス名を設定するようにします。

追加設定の項目にある、ログのエクスポート設定も行い、RDSインスタンスの作成を完了させます。

ログの確認

RDSインスタンスを作成後、しばらくすると、CloudWatch Logs のロググループでログの確認を行うことが可能です。

最後に

今回は、RDSインスタンスのログ出力先のロググループを Logs IA にしてみました。

事前の設定が必要となるため、CFnやCLIを事前に準備しておくと、もっと簡単に設定できると思います。

また、この Logs IA は、従来利用できていた機能が利用できなくなるため、採用する際には十分に検討を行うようにしましょう!

参考