rclone を使って AWS S3 から Wasabi にファイルを移行

AWS S3 から他サービスへのオブジェクトストレージにデータを移行する

今回、私は AWS S3 を脱却して、料金の安い Wasabi に移行しようと思います。

すでに AWS S3 に多数のファイルが入っているので、データを移行する必要がありますが、 AWS CLI だと異なるサービスのストレージ間でコピーができません。

そこで、データを移行するためのツール rclone を使って、データ移行を行います。

https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgithub.com%2Frclone%2Frclonegithub.com

参考ページ

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

これでずっと待っていると、コピーが完了します。