高可用性/マイクロサービスアーキテクチャ

私は毎日平均18万人のユーザーがいる非常に活発なコミュニティを管理しており、これ以上垂直スケーリングすることはできません。水平スケーリングが必要です。「公式にサポートされている」ことについては気にしません。技術的に可能なことだけを気にします。

現在、公式のインストール手順でDockerでDiscourseを実行しているUbuntuインスタンスがあり、S3ストレージも使用しており、CDNがそれを配信しています。

現在、私が書いているNixOSのflakeに移行する予定です。詳細なリソース使用状況の調査を行ったところ、CPUは主にPostgresとUnicornワーカーによって制限されていることがわかりました(パフォーマンスを維持しながらCPU負荷を可能な限り軽減するように最適化しました。ワーカーは16です)。

また、メモリは主にPostgresとRedisによって制限されています。

可能であれば、これらすべてを3台のサーバーに分離したいと考えています。
Discourse Frontend(Unicorn付き)
Redisサーバー
Postgresサーバー

すでに別のサーバーでPostgresを搭載したDiscourseサーバーを正常に作成しましたが、Redisを別の場所に移動できるかどうか、またパフォーマンスの観点からそれが理にかなっているかどうかは不明です。

他にこのようにDiscourseを実行している人はいますか?

Redis は、役立つと思われる場合は別のサーバーで実行できます。たとえば、AWS Elasticache を AWS で使用するのは一般的であるため、パフォーマンスと帯域幅が十分にあると思われる場所に配置しても問題ありません。

「いいね!」 2