Discourse のこの扱いに問題があると思います。アップロードを S3 に移動し、DISCOURSE_S3_CDN_URL 環境変数を設定すると、Discourse はアセットも S3 から取得しようとしてしまいます。動作させるためにはアップロードとアセットの両方を S3 + Cloudfront に移動する必要がありましたが、アップロードのみを S3 に配置したいだけなので、本来は不要であるはずです。
参考になるかどうか、このスレッドを確認してみてください。
Discourse のこの扱いに問題があると思います。アップロードを S3 に移動し、DISCOURSE_S3_CDN_URL 環境変数を設定すると、Discourse はアセットも S3 から取得しようとしてしまいます。動作させるためにはアップロードとアセットの両方を S3 + Cloudfront に移動する必要がありましたが、アップロードのみを S3 に配置したいだけなので、本来は不要であるはずです。
参考になるかどうか、このスレッドを確認してみてください。