Mastodon

輪転機を回せ

unipstの書いたものをまとめています。

MastodonのストレージをConohaオブジェクトストレージからDigetalOcean Spacesに移行する

はじめに

マストドンサーバ「私信」のメディアストレージにConohaのオブジェクトストレージを利用していました。
が、管理画面でファイルを確認できないなどがあり、変更しようかな。などと考えていました。*1

Digitai Ocean Spacesとは

DigitalOceanのAWS S3 互換で利用できるオブジェクトストレージです。
www.digitalocean.com

5ドル/月で250 GB、1TBの転送量、アップロード規制なし と、十分ですし、Conohaちゃんより安いですね。

移行方法

今回は、rcloneという、オブジェクトストレージやクラウドストレージでrsyncが出来るものを利用しました。
このあたりを参考にして、Spacesにコピーしていきます。

qiita.com

www2.hiroyuki.com

www.digitalocean.com

実作業は手元のPCの方がサーバより性能良いので、Windows Subsystem for Linuxで作業しました。
ちゃんと測っていないのですが、20GBを9時間ぐらい?で転送できた気がします。

体調悪いときに寝られなくて作業をしていたのでちゃんと覚えていないし工程もてきとー…
ちゃんとやるなら前もってサーバを停止するべきですが、そんな感じなのでちゃんと確認せず切り替えたので、いくつかコピーできていないものがありました…計画大切…

ワンポイントアドバイス

  • CDN
    Spacesは標準でCDNが利用できます(ただし、転送量のカウント対象です。
    が、MastodonCDNのURLにするには.env.productionでの設定時にS3_CLOUDFRONT_HOST=media.cdn.mydomain.comなどでCDN利用時のホスト名を指定してあげないといけません。
    yuruyuru.life

  • 転送量の確認方法はなさそう
    転送量が超過していないか、は転送量超過の課金がされていないかで確認しないといけないっぽい?*2 www.digitalocean.com

  • 速度
    Conohaちゃんより遅いけど、悪くない速度。

    f:id:unipstx:20190503220204p:plain
    ダウンロード速度比較

  • IPv6のサポートはない
    そもそもConohaオブジェクトストレージもIPv4ですが…*3 www.digitalocean.com

追記

Conohaのメディア削除

データの移行も終わり、もういいかなと思ったので、Conohaオブジェクトストレージを解約しようとしましたが…

f:id:unipstx:20190505181758p:plain

オブジェクトストレージは削除できませんので、利用容量を0GBに設定していただくことで、解約できます。
https://support.conoha.jp/vps/faq/vps-q/service-q/?show=2310

とのことで…

rclone で削除していきます。
--dry-runでテストをしてから
rclone --dry-run delete [設定]:[バケット]

本番で消す
rclone -vv delete [設定]:[バケット]

削除できたら、Conohaのコントロールパネルで、オブジェクトストレージを0円にして終了です。
今までありがとうございました。

nginx でリバースプロキシして、キャッシュさせる

シンガポールはやはり遠く、ユーザのアイコンや絵文字の表示がちょっと遅く感じたので、Conohaの時に使っていた設定を復活させます。
私信は人数が少ないのでまあなんとかなるはず。

Nginxの設定

location /multimedia/ {
        proxy_pass  https://[DigitalOcean SpacesのURL]/;
        proxy_buffering off;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Host $proxy_host;
        tcp_nodelay on;
    }

.env.productionの設定

S3_CLOUDFRONT_HOST=si.pmpm.pw/multimedia  
(上でnginxで設定したディレクトリになるように…)

proxy_cache_pathに関しては、最近のMastodonの設定に入っているので、そちらを調整します。
昔のバージョンのころから nginx の設定を変更していない場合はキャッシュ設定が入っていないという状況もあるかと思うので注意。

気持ち早くなった… f:id:unipstx:20190505182731p:plain

*1:でも、利用容量のグラフやリクエスト数などをWebから確認できるなどは便利

*2:このあたりAPIでなんとかするとかあるんですかね?

*3:私信ではnginxの設定でメディアもリバースプロキシにしていたのでIPv6オンリーで利用が出来ていた。