S3からフォルダをまとめてダウンロードする方法

S3からフォルダをまとめてダウンロードする

 
  • コンソールを使用した場合、フォルダごとファイルを一括でダウンロードすることができません。今回はコンソールではなく、CLIやツールを使った方法でフォルダをまとめてダウンロードする方法を紹介します。
  • S3にアクセスするツールは多くの種類がありますが、公式ツールおよびポピュラーなツールを使った説明となります。

CLIを使ってダウンロードする

exportされたLogsのフォルダをS3からダウンロード

  • aws cli を使用することで、フォルダを一括でダウンロードすることができます。
  • 例えば、CloudWatch Logs にELBやCloudFrontのアクセスログを出力している場合、非常に多くのフォルダ、ファイルが生成されます。下記はフォルダごとダウンロードする場合のコマンド例です。

$ aws s3 cp s3://<BUCKET_NAME>/<AAA>/<BBB>/exportedlogs ./apigw_logs --recursive --profile <profile_name> 
 

exportされたファイルをまとめて展開

  • CloudWatch Logsからexportされたファイルはgz圧縮されています。せっかくですから、Linux環境より、findとxargsをパイプしてまとめて展開します。

$ find . -name '000000.gz' | xargs -n1 gunzip
 

ツールを使ってダウンロードする

Cyberduckを使って、Amazon S3に接続する

  • 私はscp/sftpクライアントにCyberduckを使用しています。次は、Cyberduckを使ってS3に接続して、フォルダをダウンロードする方法を紹介します。
  • Cyberduckを起動します。「新規接続」で、Amazon S3に接続します。接続先に「Amazon S3」、ポートに「443」を選択します。
  • 次に「アクセスキーID」と「パスワード」にIAMのアクセスキーIDとシークレットキーを入力して、「接続」を押します。

S3バケットからフォルダごとダウンロード

  • S3に接続後、AWSアカウントに作成されているバケットがリストされます。バケットを選択します。
  • 次にバケット内のフォルダが表示されます。右クリックして、フォルダごとダウンロードします。
 

参考情報

  • aws cli のインストール方法およびIAMのアクセスキーIDとシークレットキーの取得方法は、下記の記事を参照ください。

AWS, S3

Posted by takaaki