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
これでずっと待っていると、コピーが完了します。