こんにちは。インサイトテクノロジーの松尾です!
本投稿では DownloadCompleteDBLogFile を用いて RDS からログをダウンロードする方法を紹介します!
はじめに
以前所属する会社のサイトで以下のような記事を書きました。
アクセスキーを明示的に指定せずに「ロールが設定された EC2 インスタンスで DownloadCompleteDBLogFile を用いて RDS からログをダウンロードする」ということを目的にして書きましたが、実はロールが設定されているEC2でなくても、~/.aws/credentials
が設定されている環境であれば、ローカル環境でも動作します。
今回のQiitaへの投稿を機にgithubにもソースをあげておいたので是非ご活用ください。
使い方
準備
gitからcloneしてきたあと以下の手順を行います。
※ちなみにpipでインストールしてるのはboto3
とrequests
のみなので、デフォルトで使える場合には本手順は不要です。
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
実行
引数として対象のインスタンスIDを指定して実行します。
python3 download_logs.py <INSTANCE_ID>
実行例)
実行すると以下のように1ファイルずつダウンロードを行います。
python3 download_rds_log_files.py test-aumy-2-11-4-with-audit-log
audit/audit.log.0.2024-03-22-17-09.0
audit/audit.log.0.2024-03-22-17-10.0
audit/audit.log.0.2024-03-22-17-12.0
audit/audit.log.0.2024-03-22-17-30.0
audit/audit.log.0.2024-03-22-17-35.0
...
おまけ:結合とソート
ここまでで実行できるのは個別のログファイルをダウンロードしただけなので、ファイルの結合とソートを必要に応じて行いましょう。
cat audit-audit.log.* > audit_log.txt
sort audit_log.txt > audit_log_sorted.txt
おわりに
本投稿では、DownloadCompleteDBLogFile を用いて RDS からログをダウンロードする方法をご紹介しました。
ここで紹介した方法は、ロールが設定されいてるEC2でも動作しますし、aws configure
でcredentials
が設定されているローカル環境でも動作します。DownloadCompleteDBLogFile
はご存知のようにawscli
には含まれていないものなので利用するには何かしらのコード対応が必要になってきます。本投稿が何かの参考になればと思います。