まず、現在携帯電話からこれを入力しているため、短くて簡潔な文章になっていることをお許しください。
全体的に、Web ベースのアプリケーションをホストするための複数の専用マシンを設定する方法の詳細を調べようとしています。現在、このニーズを直接必要としているわけではありませんが、すぐに必要になると予想されており、すべての初期設定で、将来の拡張性が大きな混乱ではなく、ある程度スムーズな処理であることを確認したいと思っています。
私の主な懸念はデータベースです。私たちは MySQL を使用しており、それが単一のマシン環境で完全な LAMP スタックとして使用されているのを見たことがあります。しかし、それが拡大するにつれて、それを複数のマシンにまたがるにはどうすればいいのか疑問に思っています。物理的なストレージ レベルだけでなく、アプリへのアクセス性についてもです。最初に思いついたのは、データベースが構造のみをミラーリングし、データはミラーリングしない 2 台以上のマシンです。ただし、その場合、マシン 1 のデータがアプリから必要になる可能性があり、マシン 2 以降のデータも必要になるため、データの可用性に問題が生じると予想されますが、データは本質的に動的であるため、必要な一致が見つかるまですべての DB をクエリする必要があり、処理が過剰に思えます。それでは、マシンが次のマシンに波及して、それらの間に 1 つの巨大なデータセットを作成することは可能ですか?
全体的に、前述したように、ストレージの制約とボトルネックの問題に対処し、負荷をバランスさせることができる方法でそれらを管理したいと考えています。
他にどこで情報を探せばいいのか本当にわかりません。検索しても関連するものは何も見つかりません。おそらく、正しいものを探していないだけだと思います。そのため、出発点/終点として、ここでのアドバイスをいただければ幸いです。
答え1
すべてのトラフィックを受け入れる HAProxy ゲートウェイを使用できます。これにより、複数の物理サーバーまたは仮想サーバーをホストできます。基本的に、各リクエストは HAProxy ゲートウェイ マシンを通過し、高可用性クラスター内の X 個のサーバーの 1 つに送信されます。各サーバーには WWW データがあり、個別のデータベース サーバーを持つことができます。MySQL データベース サーバーは、管理対象サーバーを含むクラスターで複製または構成できます。