BackBlaze B2からDigital Ocean Spacesへの移行

こんにちは、

現在の状況に少し混乱しています。アップロード用に BackBlaze B2 バケット(画像+アセット)を BunnyCDN と組み合わせて使用しています。B2 Cloud Storage は「トーンストーン(tombstone)」をサポートしていないため、未使用の画像やスクリプトが多数存在しています。そこで、これらのアップロードデータを Digital Ocean Spaces に移行し、BunnyCDN の設定はそのままに、オリジン URL のみ DO に変更したいと考えています。

B2 Cloud Storage の設定には、この素晴らしいガイドを使用しました。同様に DO 版への移行も検討しています。


移行のベストプラクティスは何でしょうか?アップロードデータは約 10GB です。B2 にはスナップショット機能がありますが、非常に遅いです。コンソールコマンド rake uploads:migrate_from_s3 は、まず S3 からすべてをダウンロードし、その後ポストの再構築(rebake)を行う必要がありますが、画像処理のためこれも非常に時間がかかります。この処理後にすべてを DO Spaces にアップロードする、という流れで正しいでしょうか?

B2 Cloud Storage でスナップショットを作成した後、手動でコンピューターにダウンロードし、すべてを DO Spaces にアップロードした場合、どうなるでしょうか?その後、BunnyCDN のプルゾーンのオリジン URL を DO Spaces に変更し、app.yml ファイルを編集してビルドし直します。この方法でもポストの再構築は必要でしょうか?

もう一つ質問です。DO Spaces 上の未使用ファイルや画像はどうなるのでしょうか?システムがこれらのファイルを認識して削除してくれるのでしょうか?

ご支援ありがとうございます :slight_smile:

最も簡単な方法は、コンソールですべての S3 ファイルをバックアップ先にダウンロードする非表示設定を有効にすることです(ここで検索するか、ソースを確認してください)。その後、スペースに切り替え、バックアップを復元し、コンテナを再構築します。

画像をダウンロードする設定をオフにするのを忘れないでください。そうしないと、毎回バックアップ時にすべてのアップロードファイルをダウンロードして再アップロードしてしまいます。

この問題を何年も解決しようとしてきましたが、テストが失敗し続けています。おそらくエッジケースが原因だと思います。もし動作すれば教えてください。テストサイトに復元して試すことができます。

ありがとうございます! :slightly_smiling_face: つまり、このプロセスは S3 のすべてのデータをバックアップするのですね。これをコンピュータにダウンロードした後に B2 Cloud Storage に保存すると、巨大なバックアップファイルが作成されます。復元する前に app.yml ファイルと CDN を DO Spaces を指すように変更し、ファイルを DO Spaces に復元するのでしょうか?

ただし、バックアップファイルを作成する際、app.yml には復元先の正しい場所である DO Spaces の情報が含まれている必要があります。あるいは、バックアップを作成した後に、その中の app.yml ファイルを編集することは可能でしょうか? :slightly_smiling_face:

ああ、そうですよね。バックアップも B2 Cloud Storage 上にあることを忘れていました。単に別のバケットですね。

なるほど。ローカルバックアップに変更するべきですね。

これを見つけたので、クラウドからクラウドへの移行を行い、CDN と app.yml ファイルだけを変更したらどうなるか考えています。実現可能でしょうか?:slight_smile: もし可能なら、これがこのプロセスにとって最もシンプルで高速な解決策になるかもしれません。BackBlaze にも対応しています。

それで問題ないと思います。CDNが同じであれば、データベースを触る必要はないでしょう。

はい、同じCDNで、プルゾーンのオリジンURLをDO Spacesに変更するだけです。:slight_smile:

これを実現する別の方法を見つけました。明日、まず試してみます。

  1. 新しいパラメータを使用してサイトを再構築する
  2. aws s3 CLI を使用して、古いストレージから新しいストレージへファイルを移動する
  3. DbHelper.remap を使用して、古いストレージから新しいストレージへのパスを再マッピングする。

Falco さん、ありがとうございます!試してみます!:heart::slightly_smiling_face:

howto でリマッププロセスに関する情報を見つけました。

今は AWS S3 CLI の使い方を Google で検索中です。ステップバイステップのガイドが見つかることを願っています。ありがとうございました。:slightly_smiling_face:

昨夜、問題なく移行が完了しました!:slight_smile: Falco さん、ありがとう!:heart: DO Spaces は、以前 B2 Cloud Storage で発生していた多くのエラーを解消し、さらに高速になりました。みなさんのご支援に感謝します!:slight_smile:

Backblazeのエラーについて、もう少し詳しく教えていただけますか?私は主にバックアップ用途として推奨してきましたが。

JS ファイルのログから「url forbidden」の警告が多数発生していましたが、現在はログがクリーンになりました。以前は Composer が停止したり、同様のバグが発生したりしましたが、今はスムーズで高速に動作しています。

API キーの有効期限が切れても、彼らからは通知が来ませんでした。これが最大の課題の一つです。しかし、B2 パネルには「期限なし」と表示されているにもかかわらず、数ヶ月後には必ず期限が切れ、サイトが機能しなくなりました。B2 側にはダウンタイムや不安定な要素があるのではないかと思っています。というのも、画像のアップロードが機能しなくなることもあったためです。

プッシュ通知に問題があり、それが原因だった可能性もありますが、確証はありません。現在テスト中です。:slightly_smiling_face:

私たちにとって、フォーラムも同じ場所にあるため、DigitalOcean Spaces フランクフルトへの移行は良い選択でした。これまで、より高速で安定しています。将来も良い状態が続くことを願っています。:slightly_smiling_face:

素晴らしいですね!移行のためにどのような手順を踏まれたか、共有していただけますか?