Don
2021 年 3 月 6 日午前 7:57
1
こんにちは、
現在の状況に少し混乱しています。アップロード用に BackBlaze B2 バケット(画像+アセット)を BunnyCDN と組み合わせて使用しています。B2 Cloud Storage は「トーンストーン(tombstone)」をサポートしていないため、未使用の画像やスクリプトが多数存在しています。そこで、これらのアップロードデータを Digital Ocean Spaces に移行し、BunnyCDN の設定はそのままに、オリジン URL のみ DO に変更したいと考えています。
B2 Cloud Storage の設定には、この素晴らしいガイドを使用しました。同様に DO 版への移行も検討しています。
This topic covers how to configure some common S3 compatible Object Storage providers (S3 clones). See Set up file and image uploads to S3 for more details about Amazon AWS S3 configuration, which is officially supported and used internally by Discourse for our hosting services.
Provider
Service Name
Works with Discourse?
Amazon AWS
S3
Yes
Digital Ocean
Spaces
Yes
Linode
Object Storage
Yes
Google Cloud
Storage
Yes
Scaleway
Object Storage
Yes
Vultr
Obj…
移行のベストプラクティスは何でしょうか?アップロードデータは約 10GB です。B2 にはスナップショット機能がありますが、非常に遅いです。コンソールコマンド rake uploads:migrate_from_s3 は、まず S3 からすべてをダウンロードし、その後ポストの再構築(rebake)を行う必要がありますが、画像処理のためこれも非常に時間がかかります。この処理後にすべてを DO Spaces にアップロードする、という流れで正しいでしょうか?
B2 Cloud Storage でスナップショットを作成した後、手動でコンピューターにダウンロードし、すべてを DO Spaces にアップロードした場合、どうなるでしょうか?その後、BunnyCDN のプルゾーンのオリジン URL を DO Spaces に変更し、app.yml ファイルを編集してビルドし直します。この方法でもポストの再構築は必要でしょうか?
もう一つ質問です。DO Spaces 上の未使用ファイルや画像はどうなるのでしょうか?システムがこれらのファイルを認識して削除してくれるのでしょうか?
ご支援ありがとうございます
pfaffman
(Jay Pfaffman)
2021 年 3 月 6 日午前 9:56
2
最も簡単な方法は、コンソールですべての S3 ファイルをバックアップ先にダウンロードする非表示設定を有効にすることです(ここで検索するか、ソースを確認してください)。その後、スペースに切り替え、バックアップを復元し、コンテナを再構築します。
画像をダウンロードする設定をオフにするのを忘れないでください。そうしないと、毎回バックアップ時にすべてのアップロードファイルをダウンロードして再アップロードしてしまいます。
この問題を何年も解決しようとしてきましたが、テストが失敗し続けています。おそらくエッジケースが原因だと思います。もし動作すれば教えてください。テストサイトに復元して試すことができます。
Don
2021 年 3 月 6 日午前 10:22
3
ありがとうございます! つまり、このプロセスは S3 のすべてのデータをバックアップするのですね。これをコンピュータにダウンロードした後に B2 Cloud Storage に保存すると、巨大なバックアップファイルが作成されます。復元する前に app.yml ファイルと CDN を DO Spaces を指すように変更し、ファイルを DO Spaces に復元するのでしょうか?
ただし、バックアップファイルを作成する際、app.yml には復元先の正しい場所である DO Spaces の情報が含まれている必要があります。あるいは、バックアップを作成した後に、その中の app.yml ファイルを編集することは可能でしょうか?
ああ、そうですよね。バックアップも B2 Cloud Storage 上にあることを忘れていました。単に別のバケットですね。
pfaffman
(Jay Pfaffman)
2021 年 3 月 6 日午前 10:44
4
なるほど。ローカルバックアップに変更するべきですね。
Don
2021 年 3 月 6 日午前 10:55
5
これを見つけたので、クラウドからクラウドへの移行を行い、CDN と app.yml ファイルだけを変更したらどうなるか考えています。実現可能でしょうか? もし可能なら、これがこのプロセスにとって最もシンプルで高速な解決策になるかもしれません。BackBlaze にも対応しています。
pfaffman
(Jay Pfaffman)
2021 年 3 月 6 日午前 11:36
6
それで問題ないと思います。CDNが同じであれば、データベースを触る必要はないでしょう。
Don
2021 年 3 月 6 日午後 12:14
7
はい、同じCDNで、プルゾーンのオリジンURLをDO Spacesに変更するだけです。
Don
2021 年 3 月 6 日午後 2:49
8
これを実現する別の方法を見つけました。明日、まず試してみます。
Don
2021 年 3 月 6 日午後 4:00
10
Don
2021 年 3 月 10 日午前 9:20
11
pfaffman
(Jay Pfaffman)
2021 年 3 月 10 日午前 11:33
12
Backblazeのエラーについて、もう少し詳しく教えていただけますか?私は主にバックアップ用途として推奨してきましたが。
Don
2021 年 3 月 10 日午後 12:00
13
JS ファイルのログから「url forbidden」の警告が多数発生していましたが、現在はログがクリーンになりました。以前は Composer が停止したり、同様のバグが発生したりしましたが、今はスムーズで高速に動作しています。
API キーの有効期限が切れても、彼らからは通知が来ませんでした。これが最大の課題の一つです。しかし、B2 パネルには「期限なし」と表示されているにもかかわらず、数ヶ月後には必ず期限が切れ、サイトが機能しなくなりました。B2 側にはダウンタイムや不安定な要素があるのではないかと思っています。というのも、画像のアップロードが機能しなくなることもあったためです。
プッシュ通知に問題があり、それが原因だった可能性もありますが、確証はありません。現在テスト中です。
私たちにとって、フォーラムも同じ場所にあるため、DigitalOcean Spaces フランクフルトへの移行は良い選択でした。これまで、より高速で安定しています。将来も良い状態が続くことを願っています。
dschaper
(Dan Schaper)
2021 年 3 月 10 日午後 6:41
14
Don:
昨夜、問題なく移行が完了しました!
素晴らしいですね!移行のためにどのような手順を踏まれたか、共有していただけますか?