philh
2025 年 12 月 10 日午前 3:15
1
@Falco これはまだ事実ですか? AWSの使用に関する最近の問題について読んだように思いますが、トピックが見つかりません。
関連するトピックをガイドとして使用して、AWS S3の使用で多くの問題が発生しています。
バックアップは期待どおりに機能していますが、CloudfrontをCDNとして使用するか、DISCOURSE_USE_S3やDISCOURSE_S3_BUCKETのコメントを外すと、永久にローディングアイコンが表示され続けます。
アップロードバケットやCloudfrontディストリビューションに何か誤った設定があるのではないかと疑っていますが、間違いを見つけることができませんでした。アップロードとバックアップの両方のバケットはディストリビューションの背後にあり、バックアップは正常に機能しているので???
discourse-cdn.repealobbba.org CNAME —> amazonassigned.cloudfront.net
DISCOURSE_CDN_URL: https://discourse-cdn.repealobbba.org
## S3 storage config
# DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: ACCESS_KEY_ID
DISCOURSE_S3_SECRET_ACCESS_KEY: SECRET_ACCESS_KEY
DISCOURSE_S3_CDN_URL: amazonassigned.cloudfront.net or
# DISCOURSE_S3_BUCKET: repeal-obbba-discuss-uploads
DISCOURSE_S3_BACKUP_BUCKET: repeal-obbba-discuss-backups
DISCOURSE_BACKUP_LOCATION: s3
さらに 、configにこれを追加すると
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
FAILED TO BOOTSTRAPエラーが発生します
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:upload_assets failed with return #<Process::Status: pid 8484 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec failed with the params {"cd"=>"$home", "cmd"=>["sudo -E -u discourse bundle exec rake s3:upload_assets", "sudo -E -u discourse bundle exec rake s3:expire_missing_assets"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
いつものように… 何かご意見やご提案があれば幸いです。
pfaffman
(Jay Pfaffman)
2025 年 12 月 10 日午後 12:35
2
S3 にアセットをアップロードするためのスタンザを追加する必要があります。
ああ。間違っていました、あなたがやっていますね。
それはバケットの設定に何か問題があることを示唆しています。
バケットを設定するための JSON を生成するトピックが以前あったと思いますが、まだ存在するかどうかはわかりません。
「いいね!」 1
philh
2025 年 12 月 10 日午後 10:22
3
同意します。
バックアップバケットではバケットポリシーは使用されていませんでしたが、アップロードバケットにポリシーを追加したことでブートストラップの失敗が解消されました。
ポリシーのJSONは、CloudFront > Distributions > ご利用のディストリビューション > Originの編集 で確認できます。
残念ながら、永続的な点滅アイコンは解消されません。
オブジェクト所有権とACLを調整しても結果は変わりません。
現在の設定です。推奨設定だと思いますが、もしかしたら勘違いしているかもしれません。
pfaffman
(Jay Pfaffman)
2025 年 12 月 11 日午前 2:48
4
設定を変更した後、アセットをアップロードするためにrantタスクを実行する必要があります。
また、開発者コンソールを開いて、ファイルがアクセスしようとしているものがバケットに存在するか、またはCDNに問題がないかを確認できます。
「いいね!」 1
philh
2025 年 12 月 11 日午前 3:51
5
継続していただきありがとうございます…
はい、rakeタスクは実行しましたが、何も変わりません。
./launcher enter app
rake posts:rebake
rake uploads:migrate_to_s3
rake posts:rebake_uncooked_posts
スロバーは残っています。
rake uploads:migrate_to_s3 はエラーを返します
Migrating uploads to S3 for 'default'...
Some uploads were not migrated to the new scheme. Running the migration, this may take a while...
rake aborted!
FileStore::ToS3MigrationError: Some uploads could not be migrated to the new scheme. You need to fix this manually. (FileStore::ToS3MigrationError)
/var/www/discourse/lib/file_store/to_s3_migration.rb:156:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:59:in `migrate'
/var/www/discourse/lib/tasks/uploads.rake:126:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:106:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:36:in `each_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:104:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:100:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => uploads:migrate_to_s3
少なくとも1つのCDNチェッカーでは、discourse-cdn.repealobbba.org → Amazon CloudFront と表示されています
そしてコンソールでは、画像とjsファイルが引き続きCDNから呼び出されていることが示されています
pfaffman
(Jay Pfaffman)
2025 年 12 月 11 日午前 10:30
6
アセットはCDNから呼び出されていますが、そこにありますか?もしなければ、バケットにありますか?バケットからアクセス可能ですか?
おそらく、アップロードが別のバケットにあるか、アセットが期待される場所にないようにしているものがあると思われます。その場合は、記載されているように手動で修正する必要があります。コンソールにアクセスして、アップロードレコードのどこにあるかを確認する必要があります。
アップロードアセットタスクは機能しているように見えますか?他のアセットが読み込まれていないため、点滅表示が実行され続けています。
「いいね!」 2
philh
2025 年 12 月 11 日午後 7:00
7
はい、ファイルはアセットとしてバケット内にあります。
アクセス可能: https://repeal-obbba-discuss-uploads.s3.us-east-1.amazonaws.com/assets/logo-815195ae.png
バケットはアップロードとバックアップの2つだけです。バックアップは正常に動作しています。
rake s3:upload_assets はエラーを返しました:
rake aborted!
Aws::S3::Errors::AccessControlListNotSupported: The bucket does not allow ACLs (Aws::S3::Errors::AccessControlListNotSupported)
ACLを有効に切り替えて、再度 s3:upload_assets 編集: uploads:migrate_to_s3 を実行しましたが…
FileStore::ToS3MigrationError: 一部のアップロードを新しいスキームに移行できませんでした。手動で修正する必要があります。(FileStore::ToS3MigrationError)
??? 手動で修正する必要があります。(FileStore::ToS3MigrationError)
pfaffman
(Jay Pfaffman)
2025 年 12 月 11 日午後 7:05
8
バケットを修正し、アセットをアップロードできるようになったため、サイトは動作するはずです。移行しないアップロードを処理するのは、別の(複雑な)問題です。
提供しようとしているアセットの1つは次のとおりです。
https://discourse-cdn.repealobbba.org/assets/start-discourse-6f03a463.br.js
証明書が壊れているため、それが問題です。証明書はありますが、URLと一致していません。
以前提案したように、ブラウザの開発者ツールのネットワークタブを見て、これを確認してください。
「いいね!」 1
philh
2025 年 12 月 11 日午後 7:14
9
上記からの編集
ACLを有効にして、s3:upload_assets 編集: uploads:migrate_to_s3 を再度実行しました
s3:upload_assets は現在、問題なく完了します
ネットワークエラーが見られます。証明書はAWSの問題でしょうか?
この度はご協力いただき、重ねてお礼申し上げます!!
pfaffman
(Jay Pfaffman)
2025 年 12 月 11 日午後 7:21
10
はい。証明書がホスト名と一致していません。*.cloudfront.netと一致しています。
これは機能します: https://repeal-obbba-discuss-uploads.s3.us-east-1.amazonaws.com/assets/logo-815195ae.png
これは機能しません: https://discourse-cdn.repealobbba.org/assets/start-discourse-6f03a463.br.js
これは機能します: https://repeal-obbba-discuss-uploads.s3.us-east-1.amazonaws.com/assets/start-discourse-6f03a463.br.js
したがって、S3 CDNをhttps://repeal-obbba-discuss-uploads.s3.us-east-1.amazonaws.comに変更する必要があります。ああ、それはバケットアドレスのようですね。理想的ではないかもしれませんが、機能するでしょう。
「いいね!」 1
philh
2025 年 12 月 11 日午後 7:52
11
pfaffman:
So you need to change your s3 CDN to https://repeal-obbba-discuss-uploads.s3.us-east-1.amazonaws.com – oh, I guess that’s the bucket address, so that wouldn’t be ideal, but it would work.
「so that wouldn’t be ideal」(それは理想的ではないでしょう)という表現にはあまり乗り気ではありませんね
AWSの代替ドメイン名(Alternate domain names)を解決策として検討しています。
私だけかもしれませんが、@Discourse が内部的に使用する CDN を追加するのは、@pfaffman のような方々の親切なサポートを必要とするほど難しくあるべきではないと思います。
@Falco や @sam 、そして @team (teamはメンションできません)も意見を述べてくれるでしょうか??
Falco
(Falco)
2025 年 12 月 11 日午後 9:21
12
はい、私たちがホストしているすべてのサイトはS3とCloudFrontの組み合わせを使用しています。今ご覧になっているこのサイトも同様です。
「いいね!」 2
philh
2025 年 12 月 11 日午後 9:39
13
ご確認ありがとうございます!これを確認した後、DISCOURSE_S3_CDN_URL を amazonassigned.cloudfront.net に戻すように再調整しました。これにより、証明書と URL の問題が解消されることを期待しています。
再構築し、ドキュメントで言及されているすべての rake コマンドを再度実行しました。
rake posts:rebake
rake uploads:migrate_to_s3 はまだ FileStore::ToS3MigrationError を生成します
rake posts:rebake_uncooked_posts
rake s3:upload_assets
rake s3:expire_missing_assets
サイトを読み込ませるには、まだうまくいきません。
何か提案はありますか?
philh
2025 年 12 月 12 日午後 5:44
15
@chapoi さん、このスレッドをサポートのために分割していただけますでしょうか。
おそらく、より見やすくするために @JammyDodger さんが「インストール」セクションに移動したのかもしれませんが、フォーラムは何ヶ月も問題なく稼働していました。
いずれにせよ、ご配慮ありがとうございます!
Moin
2025 年 12 月 12 日午後 5:46
16
philh:
フォーラムは数ヶ月間問題なく稼働していましたが。
インストールはフォーラムのセットアップだけではありません
Getting Discourse up and running, keeping it going, updating, and any other general sysadmin maintenance.
「いいね!」 1
philh
2025 年 12 月 12 日午後 8:20
18
上記で述べたように、代替ドメインのヘルプを追加してください。
サイトは読み込まれますが、スタイルシートがなく…
Repeal the One Big Beautiful Bill Act - Information, discussion, stories, impact AND accountability.
バケットの中を見ると、stylesheets/ フォルダが見当たりません
s3:upload_assets が不完全なようです。
そして、CORS の問題がありますか?
philh
2025 年 12 月 14 日午前 9:06
19
BBS(掲示板システム)のことがあるため、ドキュメントの誤解を招く、紛らわしい、または情報量が多すぎる部分をいくつか理解した後、前進しています。
BBSの私たちのような人々のために、これを点滅する赤色で表示すると、「2つのCloudfrontディストリビューションが必要 」であることが伝わりやすくなります。
そして、どのようにするかについての指示も必要です
S3関連のトピックをいくつか更新・統合していただけると非常にありがたいです。AWS S3 CDNとバックアップに関する現在のデータを含むマスターとなるトピックが1つあると素晴らしいと思います。
次に進みます…
現在、2つのCloudfrontディストリビューションがありますが、次の問題があります。
すべてのrakeコマンドはエラーなく実行され、
これによりブートストラップの失敗はもう発生しません。
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
CDNチェッカーは、より望ましい結果のように見えます
全体として前進していますが、Discourseインフラストラクチャチームからのいくつかのヒントが非常に役立ちます。
philh
2025 年 12 月 20 日午後 8:11
20
ふう!かなりの時間と、非常に親切なAmazonのエンジニアとの電話での数時間(2回の通話で8時間)を費やしましたが、ようやく理解できたと思います。RepealOBBBAサイトではすべてが順調に動作しており、私のプロセスは他のサイトにも再現可能です。
書き留めるかもしれませんが、今のところいくつかのメモです。
DISCOURSE_CDN_URL(AWS S3を使用している場合)とDISCOURSE_S3_CDN_URLは、それぞれ独自のCloudfrontディストリビューションを必要とします。
DISCOURSE_CDN_URLはバケットを使用しません。
DISCOURSE_CDN_URLは非AWS CDNにすることができます。Bunny.netはうまく機能します。(S3サポート付きのBunny Storageが2026年第1四半期にリリースされる予定だと聞きました)
DISCOURSE_CDN_URLとDISCOURSE_S3_CDN_URLのCDNは、適切なDNS設定によりブランド化されたURLにすることができます。
DISCOURSE_S3_CDN_URLはアップロードバケットを必要とします。
アップロードバケットはACLを有効にし、「Everyone (public access)」を「Read」に設定する必要があり、バケットのポリシーを設定する必要があります。
バックアップバケットはACLやポリシーを必要としません。
編集
S3で「すべてのアップロードにCDN URLを使用する」のチェックボックスをオンにする:画像だけでなく、S3にアップロードされたすべてのファイルにCDN URLを使用します。これを有効にしないと、私の場合、常に失敗しました。
上記のことを読んで、「ふむ、フィル、当たり前じゃないか」と思う人が多いでしょうが…私のBBSの頭はすぐには理解できませんでした。
「いいね!」 1