No.48


【AWS】S3のバケットをコピーする

AWSでS3のバケットをコピーしたい

 開発時にS3に環境ごとのバケットを作成している時、特定の環境のバケットを他の環境にコピーしたくなる時があるだろう。

 例えば、リリース前のECサイトで商品画像を先に仮バケットに準備しておき、リリース時にそのファイルをリリース環境にコピーする、などありがちな状況だと思う。

 以前はSFTPを使ってバケット→ローカル→バケットとかやっていたのだが、簡単にコマンド一発で実行できることを知ったのでメモ。

 …常識?


AWS CLI を使う

 AWS CLI の sync コマンドを使えば一発だった。S3はなんかバケットに直接アクセスすると異常に遅い事もあり、断然こちらがお薦めだ。

aws s3 sync s3://コピー元のバケット名 s3://コピー先のバケット名

 なお、実行にはS3へのアクセス権限を持つIAMユーザーが必要。aws configureでaccesskeyなどを登録しておくこと。