Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mstdn-maud-io を支えるストレージの話 / tokaidolug-yokohama...

hota
May 18, 2019

mstdn-maud-io を支えるストレージの話 / tokaidolug-yokohama-201905

横浜で喋ったやつです。
https://tokaidolug.connpass.com/event/128671/

発表内で補われた行間については後日ブログ記事として公開される予定です。
→しました https://diary.akane.blue/2019/06/05/move-media-to-object-storage/

補足: p.17 招待リンク経由のクレジットですが、5/16から30日間50ドルになったようです https://www.digitalocean.com/docs/platform/release-notes/#may-2019

hota

May 18, 2019
Tweet

More Decks by hota

Other Decks in Programming

Transcript

  1. 選定 Amazon S3 通信料の見通しが立たず Wasabi 遠いのがネック ConoHa オブジェクトストレージ 価格が惜しい Spaces

    on DigitalOcean 比較的安い割にCDN完備(含東京)がえらい 太平洋渡るよりは近い 16 16
  2. アップロード量を可能な限り減らす 基本: tootctl media remove リモートメディアのキャッシュを消す --days=N も有効活用 docker: $

    docker-compose run --rm web bundle exec bin/tootctl media remove non-docker: $ RAILS_ENV=production bundle exec bin/tootctl media remove 20 20
  3. $ docker-compose run --rm web bundle exec bin/tootctl media remove

    --days=1 >Removed 321752 media attachments (approx. 87.6GB) >Removed 321752 media attachments (approx. 87.6GB) (X-Files Theme BGM) 21 21
  4. 応用: find コマンドを活用する リンクのプレビューカード用の画像のうち、指定した 日数より更新日時が古いものを削除 $ find public/system/preview_cards/ -mtime +7

    -type f -delete 念の為 -delete つけずにテストはしようね うちはこいつも40GBくらいありました todo: 再取得どうなってるのか調べようね… 22 22
  5. メディアの転送準備 rsync っぽくクラウドストレージを扱える rclone を使う rclone config によるセットアップが非常に簡単 最終的にこう [spaces]

    type = s3 provider = DigitalOcean env_auth = false access_key_id = ******************** secret_access_key = ****************************** endpoint = sgp1.digitaloceanspaces.com acl = public-read 23 23
  6. 切替作業 .env.production の必要事項を埋めれば終わり # S3 (optional) S3_ENABLED=true S3_BUCKET=media-mstdn-maud-io AWS_ACCESS_KEY_ID=********** AWS_SECRET_ACCESS_KEY=**********

    # S3_REGION= S3_PROTOCOL=https S3_ENDPOINT=https://sgp1.digitaloceanspaces.com S3_ALIAS_HOST=media-mstdn.maud.io 書いたら docker-compose up -d とかでよし 27 27
  7. FAQ なぜ media-mstdn.maud.io ? media.mstdn.maud.io でよかったのでは? CloudflareのEdge Certificatesが maud.io と

    *.maud.io だけだったんけど、ここで media.maud.io を使うのはもったいなく感じたから 結局いくらアップロードした? 84GBくらい。 35 35