こんにちは、皆さん。
Digital Ocean の Droplet に Discourse ボードを運用しています。
ディスク容量は 160GB(現在空き 45GB)です。サイトではアップロードファイルに多くの容量(40GB)を使用しています。アップロードデータを移動させる最適な方法は何か、ご提案をお願いします。S3 や Digital Ocean Spaces などはどうでしょうか?他に何かありますか?
よろしくお願いいたします。
Object Storage をアップロードに使用する(S3 およびクローン)をご覧ください。AWS の設定方法がわかれば、サポートが最も充実しており、最も信頼性が高いです。Spaces は過去にいくつかの技術的な問題が発生しましたが、現在は解決しているかもしれません。
先週、あるユーザーを Spaces と bunny.net へ移行させましたが、円滑に完了しました。
アップロードとバックアップ用にS3バケットを設定しました。問題なく動作しています。CDNは作成していませんが、これが問題になるでしょうか?何か提案はありますか?古いアップロードをrakeを使ってS3に移動させるべきでしょうか?
AWS で CloudFront を設定しました。問題なく動作しているようです。
今後数日間は確認します。
最後にやること:
Discourse ボードを停止 - DO でスナップショットを取得
yml ファイルを編集
再構築してテスト
その後
./launcher enter app
rake uploads:migrate_to_s3
rake posts:rebake
37 GB のアップロードと全投稿の再焼き直しにどのくらい時間がかかりますか?
所要時間は多くの要因に依存します。S3 は、サーバーから送信できる速度(若干のオーバーヘッドを除く)でアップロードを喜んで受け付けてくれるでしょう。1Gbit のリンクであれば、おそらく約 5 分程度です。
再焼成とそれに伴うジョブが、時間の大部分を占める可能性が高いです。所要時間は、インスタンス内の投稿数、投稿に含まれるコンテンツの量と種類、サーバーの CPU クロック速度によって大きく変動します。生成されるジョブの所要時間も、これらと同様の要素に加え、利用可能な CPU コア数によって左右されます。
S3 移行プロセスと再焼成に関する私の理解(間違っていたらご指摘ください)では、既存のアップロードファイルは、投稿との関連付けが解除された時点(再焼成がその投稿を処理した時点)以降のどこかで削除されるため、移行と再焼成の最中でも、アップロードが欠落することなくインスタンスを使い続けることができます。
1 コアしか利用できない仮想サーバーをお使いの場合、再焼成のためにコア数を増やした後に完了後にダウングレードすることを検討する価値があるかもしれません。1 コアのみでは処理に大幅な時間がかかり、その間 Discourse のパフォーマンスが著しく低下する可能性があります。
S3へのデータアップロード中は、おそらくボードを読み取り専用モードにします。