MongoDBのレプリケーションドキュメントとMySQLのクラスターページを読みましたが、データベースに接続するようにWebアプリを構成する方法がわかりません。
私のアプリには接続情報、データベースホスト、ユーザー名、パスワードなどがありますが、マルチサーバー機能がある場合でも、サーバーへの負荷を分散する固定IPを持つ大きなマスターが必要ですか?次に、単一障害点を防ぐにはどうすればよいですか?その問題に対する一般的なアプローチはありますか?
MongoDBのレプリカセットなどの機能は、自動フェイルオーバーとリカバリを可能にするように設計されています。これらは、適切に構成されている場合、データベースレベルでの単一障害点を回避するのに役立ちます。負荷を分散するために別個の「ビッグマスター」は必要ありません。それがレプリカセットが提供するものの要点です。アプリケーションはデータベースドライバーを使用して接続し、通常、個々のレプリカのステータスを認識する必要はありません。MongoDBでの重要な書き込みの場合、最小数のレプリカへの書き込みを確認する必要がある「安全な」コミットをドライバーに要求できます。
サーバーの障害から包括的に隔離するには、ディスク、マシン、またはネットワーク機器の物理的な障害などの他の要因を考慮し、適切な冗長性を備えたプロビジョニングを行う必要があります。たとえば、レプリカセットを複数のサーバーまたはインスタンスに分散させる必要があります。これらのインスタンスがすべて同じ物理コロケーション施設内にある場合でも、単一障害点は、コロケーション施設が電力またはネットワークを失う可能性が低い(ただし可能性がある)ケースである可能性があります。