@ducks が、IMDS 認証情報を取得する SDK のタイムアウトが非常に短く(1 秒、リトライなし)なっていることを特定しました。そのため、そのタイムアウトにヒットしている可能性があります。
しかし、それはあくまで推測です。
本番環境にコンソールで接続できる場合、対話的に実行できますか?例えば:
discourse(prod)> c = Aws::S3::Client.new(region: ENV['DISCOURSE_S3_REGION'])
=> #<Aws::S3::Client>
discourse(prod)> c.list_objects_v2(bucket: ENV['DISCOURSE_S3_BUCKET']).contents.count
=> 1000