猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

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

f:id:yoshiki_utakata:20210505093946p:plain

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

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

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

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

github.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

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