RDS / Aurora のログファイルを分割せず一括で取得する方法を教えてください

RDS / Aurora のログファイルを分割せず一括で取得する方法を教えてください

RDS / Aurora のログファイルを DownloadDBLogFilePortion API の 1MB 制限なく一括取得できる REST エンドポイント downloadCompleteLogFile の紹介と、Python での実行を試してみました。
2026.07.31

困っている内容

RDS / Aurora のログファイルを DownloadDBLogFilePortion API で取得しているが、1 回の呼び出しで最大 1MB しか取得できないため、大容量のログ取得に苦労している。

https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html

ログファイルを分割せず一括で取得する方法はないか知りたい。

どう対応すればいいの?

REST エンドポイント downloadCompleteLogFile を利用することで、ログファイルを分割せず一括でストリーム取得できます。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/DownloadCompleteDBLogFile.html

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/DownloadCompleteDBLogFile.html
※本ブログ執筆時点では、各 AWS SDK には対応するメソッドが実装されていないものの、正式な機能のため利用上問題ありません。

downloadCompleteLogFile を利用するには、SigV4 署名付きの HTTPS GET リクエストを実装する必要があります。

試してみた

Kiro で Python(boto3)で実行するためのコードを生成し、実行してみました。

【コード例】

import boto3
from botocore.auth import SigV4Auth
from botocore.awsrequest import AWSRequest
import requests

region = "ap-northeast-1"
db_instance = "your-db-instance"
log_file = "error/postgresql.log.2026-07-31-08"

session = boto3.Session(region_name=region)
credentials = session.get_credentials().get_frozen_credentials()

url = f"https://rds.{region}.amazonaws.com/v13/downloadCompleteLogFile/{db_instance}/{log_file}"

request = AWSRequest(method="GET", url=url)
SigV4Auth(credentials, "rds", region).add_auth(request)

response = requests.get(url, headers=dict(request.headers))
print(response.text)

【実行結果】

Status: 200
2026-07-31 08:47:02 UTC::@:[1334]:LOG:  starting PostgreSQL 18.3 on aarch64-unknown-linux-gnu, compiled by aarch64-unknown-linux-gnu-gcc (GCC) 12.4.0, 64-bit
2026-07-31 08:47:02 UTC::@:[1334]:LOG:  listening on IPv4 address "0.0.0.0", port 5432
2026-07-31 08:47:02 UTC::@:[1334]:LOG:  listening on IPv6 address "::", port 5432
2026-07-31 08:47:03 UTC::@:[1338]:LOG:  database system was shut down at 2026-02-23 21:13:44 UTC
2026-07-31 08:47:03 UTC::@:[1334]:LOG:  database system is ready to accept connections
...

量が多いため全ては本ブログに記載できませんが、正しくログ内容を一括で取得できることを確認しました。

参考資料

https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/DownloadCompleteDBLogFile.html

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/DownloadCompleteDBLogFile.html


AWSテクニカルサポートノートについて

過去にクラスメソッドのAWS総合支援サービスで頂いたお問合せの中から、通常のAWS利用時でも有益になりうる情報をテクニカルサポートチームがTIPSとしてご紹介しています。技術サポートは、無料でご提供しております。詳細は下記ボタンからご覧ください。

クラスメソッドのAWSサポートの詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事