PleromaのメディアをAmazon S3からCloudflare R2に移行した

2024-03-22T11:00:58.195Z

はじめに

タイトル通りです。設定をして移行しました。
移行作業みたいなのはおひとりさま運用をしてから一度もやっていないので体験しておいたほうが良いかな程度です。現状S3は毎月1円請求が来るだけですが、R2にしたら無料枠で収まるなと思ったのもあります。

移行手順

Cloudflare R2のbucketを作成

Backet nameを指定する程度でいいんじゃないですかね。

Backetの設定

Settings > Public access > Custom Domains にドメインを設定します。

今回はベータ機能のIncremental migrationを使ってみます。
s3:Get*s3:List*の権限のキーを作って設定します。

BacketのAPI Token作成

R2 Overviewの右側にあるManage R2 API Tokensから新しく作成します。
Incremental migrationで使うTokenもあると思います。

Pleromaの設定

old admin UIの Settings > Upload を開きます。設定項目は以下の5つです。

  • Pleroma.Upload Base URL
    • R2 BucketのCustom Domainsで設定したもの
      例: https://example.com
  • S3 Access key
    • R2 BucketのAccess Key ID
  • S3 Secret access ke
    • R2 BucketのSecret Access Key
  • S3 Host
    • R2 BucketのS3 APIのホスト名
      例: hogehoge.r2.cloudflarestorage.com
  • S3 Region
    • R2ではautoを指定すればよい
  • Pleroma.Uploaders.S3 Backet
    • R2 Bucket名を指定する

既存のメディアのDNSをR2に向ける

S3 BucketへのパブリックアクセスをしていたドメインをR2 Bucketへ向けます。
Custom Domainsに追加する形で問題なかったです。
この設定をするとIncremental migrationが行われるようになります。

Cloudflareのキャッシュ設定をする

Cloudflare Websites > sitename > Caching > Cashe Rules から Hostname指定で Edge TTLやBrowser TTLをいい感じに設定します。

感想

おひとりさまなので雑にやりましたが、利用者がいる場合にも稼働させたまま移行できそうな機能そろってるんだなと学びがありました。
Incremental migrationを使ったらAWSからの1円の請求無くせないことに気づきました。

Miyulab