S3からフォルダをまとめてダウンロードする方法
S3からフォルダをまとめてダウンロードする
- コンソールを使用した場合、フォルダごとファイルを一括でダウンロードすることができません。今回はコンソールではなく、CLIやツールを使った方法でフォルダをまとめてダウンロードする方法を紹介します。
- S3にアクセスするツールは多くの種類がありますが、公式ツールおよびポピュラーなツールを使った説明となります。
CLIを使ってダウンロードする
exportされたLogsのフォルダをS3からダウンロード
- aws cli を使用することで、フォルダを一括でダウンロードすることができます。
- 例えば、CloudWatch Logs にELBやCloudFrontのアクセスログを出力している場合、非常に多くのフォルダ、ファイルが生成されます。下記はフォルダごとダウンロードする場合のコマンド例です。
aws s3 cp s3://<BUCKET_NAME>/<AAA>/<BBB>/<Folder> ./<コピー後のFolder> --recursive
$ 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
$ 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とシークレットキーの取得方法は、下記の記事を参照ください。