【AWS CLI】download-db-log-file-portion使用時のログファイルのダウンロードエラーについて
はじめに
RDSのログファイルをAWS CLI download-db-log-file-portion
を使用してダウンロードする際に、以下エラーが発生することがあります。
実施コマンド
$ aws rds download-db-log-file-portion --db-instance-identifier ${DBインスタンス名} --log-file-name ${ログファイル名} > ${ログ保存先}.log
エラー内容
An error occurred (InvalidParameterValue) when calling the DownloadDBLogFilePortion operation: This file contains binary data and should be downloaded instead of viewed.
こちらの原因と回避策についてご紹介します。
原因
ログにマルチバイト文字やバイナリデータがある場合にダウンロードに失敗する既知の問題のようです。
回避方法
現時点ではAWS CLI
ではなくRDS Command Line
を使用することで回避することができます。
RDS REST API リファレンス | rds-download-db-logfile コマンド より
rds-download-db-logfile コマンドを使用して完全なログファイルをダウンロードすることもできます。AWS CLI では現在 rds-download-db-logfile コマンドがサポートされていないため、廃止予定の RDS CLI を使用して rds-download-db-logfile コマンドを実行する必要があります。RDS CLI の最新バージョンは http://s3.amazonaws.com/rds-downloads/RDSCli.zip の ZIP ファイルで入手できます。
rds-download-db-logfile
コマンドでダウンロードする
$ rds-download-db-logfile ${DBインスタンス名} --log-file-name ${ログファイル名} > ${ログ保存先}.log
まとめ
RDSのログファイルをAWS CLIを使用してダウンロードした際に発生するエラーについて原因と回避策をご紹介しました。AWS CLIでrds-download-db-logfile
がサポートされるまでは今回ご紹介しました方法で回避する必要がありますのでご注意ください。