2013-08-01 7 views
7

私の会社は現在、VPSサーバー上で単一のLAMPベースのWebサイトを実行しているため、DBとWebサーバーは実際には同じボックスにあります。私たちのMySQL DBは私たちのApacheサーバーとは別にすべきですか?

私たちは新しいサイトを開発しています。新しいサイトは、同じ単一のサーバーでホストする予定です(つまり、サーバーAのfoo.comとbar.comのすべてが用意されています)。

しかし、トラフィックが増加し、回復力とスケーラビリティを向上させることが期待されています。別のDBサーバーを使用して負荷分散アーキテクチャを提案しました。

       Internet 
            ¦ 
           Load Balancer 
          /  \ 
         ¦ Server A ¦ ¦ Server B ¦ 
           \  /
           ¦ MySQL DB ¦ 

これは合理的なアプローチですか?それとも過剰に設計されていますか?私はすべてを1台のサーバーに保つのは危険だと感じています。この段階でロードバランシングを必要としないかもしれませんが、WebサーバーからDBを分割するのはまだ理にかなっていますか?

私はこれに似た質問をいくつか見てきましたが、Apache/MySQLのコンテキストに当てはまるかどうかはわかりません。私がWindowsサーバー環境で作業していた時、彼らは常に別々のDBサーバーを持っていました。

答えて

7

はい、データベースとWebサーバーを分割することをお勧めします。絶対に。

主な理由の1つは、各テクノロジ(Webサーバー、データベース)が物理リソースを競合するということです。たとえば、単一のサーバーにキャッシュを置くとします。これで、Webサーバー、キャッシング、データベースがすべてRAMと競合しています。周りを回るだけです。

さらに、異なるテクノロジは異なる比率でスケールされます。クラスター内に2-3台のデータベース・マシンと10台のWebサーバーが必要です。彼らは必要性が異なり、成長も異なります。成長に向かって今弾を噛むのは悪い考えではありません。

1台のMySQLサーバーについて神経質になっている限り、私は毎晩データベース全体をバックアップする仕事を設定することが必須と考えています。

また、本番マシンでは、ホットバックアップとして動作する別のMySQLボックスにデータをレプリケートしています。設定するのは難しくありませんが、別のマシンにかかります。

+0

私たちは、非常に重要なユーザー提出データがたくさんあるサイトでホットバックアップを使用します.2番目のレプリケートされたdbを持つだけでなく、30分ごとのバックアップも実行できますメインサイトのパフォーマンスに影響するance。 – TheJosh

4

私はryan1234に同意しません。

リソース使用量のパターンは、DBMSとWebサーバー間で大きく異なるはずです。

また、マシンの数を増やす予定がある場合は、サイトの停止をより強くする機会を奪うのはむしろ愚かです。

私の場合は、2つのボックス(データベースの同じ仮想ホストとマスターマスターの非同期レプリケーションの両方を実行する両方のmysqlを実行している両方のWebサーバーを使用しています)

はい、容量を管理するためにこれより多くのハードウェアを追加する必要がある場合は、DBMSを別の層に分割することをお勧めしますが、長時間かかるようです

関連する問題