AWS S3 から他サービスへのオブジェクトストレージにデータを移行する
今回、私は AWS S3 を脱却して、料金の安い Wasabi に移行しようと思います。
すでに AWS S3 に多数のファイルが入っているので、データを移行する必要がありますが、 AWS CLI だと異なるサービスのストレージ間でコピーができません。
そこで、データを移行するためのツール rclone を使って、データ移行を行います。
参考ページ
DigitalOcean の以下のページを参考に進めます。
How To Migrate from Amazon S3 to DigitalOcean Spaces with rclone | DigitalOcean
DigitalOcean は AWS のようなインフラを提供している会社で、↑の記事は、 DigitalOcean Spaces というオブジェクトストレージに、AWS S3 からファイルをコピーする、という内容になっています。
rclone のインストール
インストール方法は、 https://rclone.org/install/ に書いてあります。 Mac の場合 brew install rclone
するだけです。
$ rclone --version rclone v1.55.1 - os/type: darwin - os/arch: amd64 - go/version: go1.16.3 - go/linking: dynamic - go/tags: none
rclone の設定
rclone configure コマンドで、 rclone の設定ができるので、コピー元とコピー先の S3 の設定を行います。
最終的な ~/.config/rclone/rclone.conf
は以下のようになりました。 access_key_id と secret_access_key の生成方法はここでは省略します。
[lgtmoon_s3_prod] type = s3 provider = AWS env_auth = false access_key_id = XXXXX secret_access_key = XXXXXXXXXX location_constraint = ap-northeast-1 acl = public-read [lgtmoon_wasabi_prod] type = s3 provider = Wasabi env_auth = false access_key_id = XXXXX secret_access_key = XXXXXXXXXX endpoint = s3.ap-northeast-1-ntt.wasabisys.com location_constraint = ap-northeast-1 acl = public-read
ファイルのコピー
では
- lgtmoon_s3_prod (AWS S3)の
image.lgtmoon.dev
バケットから - lgtmoon_wasabi_prod (Wasabi)の
image.lgtmoon.dev
バケットに
ファイルをコピーします。
rclone sync lgtmoon_s3_prod:image.lgtmoon.dev lgtmoon_wasabi_prod:image.lgtmoon.dev
これでずっと待っていると、コピーが完了します。