CDNの設定についてヘルプが必要です

さて、ついに移行に踏み切り、アップロードの移行を行いました。初心者としての経験から、他の人々の参考になったり、フィードバックとして役立つかもしれない提案や疑問を共有します。S3 バケットの設定についてはよく文書化されていますが、CDN の設定についてはそれほど詳しくありません。例を挙げます:

  • 私のような非プログラマーでも、CDN の利用には 2 つのモードがあることに気づくまで少し時間がかかりました。一つはアップロード用のもう一つは、CSS やサイトデザインのビジュアルなどの「アセット」用のものであるようです。
  • どちらのタイプの CDN を設定する際にも、ドキュメントやガイダンスがあると役立つでしょう。プッシュ型かプル型か?バケットへのアクセス制限は?オブジェクトストレージのガイドでは、誰もがその設定方法を知っていると想定されているようです。
  • 私にとって少し混乱したのは、UI の管理設定と環境変数の重複です。両方とも可能ですが、後者が推奨されています。現在はアップロードに焦点を当てていますが、オブジェクトストレージのガイドにある環境変数の一部だけで十分だとわかりました(アセット用 CDN の設定方法(プッシュ型かプル型か)がわからなかったため、これを有効にしたくなかったのです)。
  • また、CDN のカスタムドメインを有効にする方法も明確ではありませんでした。CNAME は理解できましたが、SSL を有効にするにはどうすればよいのでしょうか?AWS CDN と連携させるために Let’s Encrypt の証明書を取得すべきでしょうか?
  • migrate_to_s3 スクリプトが失敗し、トレース付きで再実行するよう提案されました。数回繰り返し実行し、投稿を手動で再構築しました。最終的には「Done!」という楽しいメッセージで完了し、すべてのアップロードが CDN を介して読み込まれているようです。
  • 予想外だったのは、すべてのアップロードが Discourse サーバー上にも残っていることです。これは意図された動作でしょうか?移行とは、rake ジョブがローカルコピーも削除することを意味すると考えていました。それとも、後で不要ファイルのクリーンアッププロセスを通じて行われるのでしょうか?

移行に踏み切ってよかったです(決して臆病者ではありませんでした)。サイトは依然として正常に動作していますが、まだいくつかの未解決の問題があります:

  • バケットへのアクセス制限(有効/無効)
  • サーバー上に残っているアップロードを削除し、より小さなバックアップで作業できるようにする
  • CDN のカスタムドメイン用の SSL 証明書
  • アセット用 CDN のプッシュ(それともプル?)型の設定方法。これによりサイト速度がさらに向上するのでしょうか?

これらを環境変数として持つことの利点は、サイトの復元を行う前にもそれらが存在する点です。つまり、すべての S3 設定を YML ファイルに記述し、S3 にバックアップを保持している場合、サイトを復元するために必要なものは YML ファイルだけです。コンテナを再構築し、コマンドラインから復元コマンドを実行するだけで済みます。

環境変数を使用するもう一つの利点は、それらの設定が UX(ユーザーインターフェース)から隠されることです。そのため、ファイルシステムへのアクセス権を持たない管理者は、それらの設定を確認したり変更したりできません。ただし、これは場合によっては欠点にもなります。UX からそれらの設定を確認したり変更したりしたい場合にできないからです。:man_shrugging:

単にプルするだけです。特別なことは何もありません。