MySQLは単独でインストールされることになっていますか


20

「私たちのMySQLサーバーマシンが失敗しました」などの声明をよく耳にします。これは、1台のマシンをMySQLサーバー専用にしているような印象を与えます(OSのみをインストールし、MySQLのみをインストールします)。システム管理者ではなく開発者として、MySQLはWebサーバーとPHPとともにLAMPスタックの一部としてインストールされることに慣れています。

誰かが私に説明できますか:

  • MySQLを別のサーバーにインストールする意味は何ですか?ランプスタック全体と追加のサーバーも追加できる場合、リソースの無駄のように聞こえます。
  • データベースが別のマシンにある場合、使用する必要があるアプリはどのように接続しますか?

回答:


30

アプリケーションプラットフォームとデータベースがリソースを奪い合うとき、それは通常、専用のデータベースサーバーの準備ができていることの最初の兆候です。

次に、高可用性:データベースクラスター(通常は負荷分散されたWeb /アプリケーションサーバークラスター)をセットアップします。

また、各サーバー(たとえば、LAN上のデータベースサーバーを備えたDMZ化されたWebサーバー)のネットワークアクセスに異なるポリシーを設定できるため、別のサーバーへの移行においてセキュリティが大きな役割を果たします。

データベースサーバーへのアクセスは、ネットワーク経由です。つまり、通常、データベースホストに「localhost」を指定する場合、データベースサーバーのホスト/ IPアドレスを指定することになります。注:通常、データベースサーバーの構成を変更して、接続を許可するか、ループバックインターフェイス以外のインターフェイスでのリッスンを有効にする必要があります。


また、専用マシンを使用すると、ディスク構成を適切に調整できます。データがRAID 6上にある場合、Webサーバーは非常に満足しています。データベースサーバーはRAID 1を好む
サイモンリヒター

12

別のデータベースサーバーは、優れたスケーラブルな設計の一部にすぎません。トラフィックがそれほど高くなく、単一のサーバーで十分であれば、これは問題になりません。

しかし、忙しいサービスでは、サービスを互いに分離することは良いことです。誰かがWebサーバーをDDoSし、すべてのリソースを消費させても、データベースサーバーをいじめることはありません。共有環境では、複数のWebサーバーがデータベースサーバーを使用している可能性が高いため、データベースサーバーに50の異なるWebサイトのデータが含まれる場合、DDoSによりダウンするのは1つのWebサイトのみですべてを停止するよりも優れています。

また、sysadminの観点からは、「mysql-01.yourcompany.com」や「webserver-01.yourcompany.com」などの適切な名前の専用サーバーがあるかどうかがより明確です。アラートを受け取ると、少なくとも「OK、データベースに問題があります」という意味で、何が起こっているかをすぐに確認します。複数のDNS名が単一のサーバーを指すこともあるので、これは弱い議論であることを知っています。

アプリケーションは、ネットワーク経由で問題なくリモートデータベースサーバーに接続します。Aieeeeeee!Webブラウザーはどのようにリモートサーバーに接続しますか?魔法です!えーと...もっと深刻なのは、 'localhost'の代わりに$ programming_language_of_your_choiceにサーバーアドレスを入力するだけで、設定は完了です。


2
Janneのコメントre:sysadminの観点に加えて...パフォーマンスの問題がある場合、またはアプリケーションをデバッグする必要がある場合、Webサーバーとデータベースサーバーが別々のマシン上にある場合、非常に簡単です。
-HTTP500


3

LAMPはアプリケーションスタックですが、すべて同じホストにインストールする必要はありません。他の人がパフォーマンス、セキュリティ、またはスケーラビリティの目的で指摘しているように、これらは同じホストにインストールされないことがよくあります。また、アーキテクチャのある部分に最適なハードウェアが別の部分には適さない場合もあります。

たとえば、データベースはすべてストレージ管理に関するものです。ディスクから情報をすばやく取得できるほど、リクエスターに情報を取得できるようになります。ディスクサブシステムをWebサーバーなどの他のアプリケーションスタックメンバーと共有している場合、ディスクドライブの読み取り/書き込みHUDの共有リソースで発生する競合により、実際にパフォーマンスが低下する可能性があります。また、特定のホスト上のWebサーバーとデータベースサーバー間でRAMを分割すると、最も効率的な方法で実行するための十分なリソースプールが提供されず、ディスクにアクセスすることなくRAMに多くの情報をキャッシュできます画像、ページ、またはクエリ結果セット。

管理上、効率も向上します。MySQLを一般的なバックエンドとして活用するオープンソースアプリケーションで企業を運営している場合を想像してください。各アプリでデータベースサーバーを急増させたいですか?これは、DBAの悪夢である可能性があります。「OK、このアプリケーションを使用するアプリケーションはどれですか?」複数のバージョン、ハードウェア/ソフトウェアの複数の構成、複数のデータ保持戦略があります。また、管理スキルも非常に広範になります。代わりに、インスタンスをロール用に最適化された1つの物理ハードウェアに結合し、サーバーとそのデータを管理するための専用リソースを割り当てます。


2

MySQLクエリは非常に多くのリソースを消費する可能性があるため、LAMPサーバーの速度が低下する可能性があります。

大規模で複雑な、リソースを大量に使用するWebサイトを実行している場合、データベースを別の専用サーバーに移動することを検討するのが賢明です。そのようにして、2つのサーバーがあります。1つはWeb専用で、もう1つはデータベースの処理専用です。これにより、リソースが解放され、Webサイトとデータベースの両方のクエリが高速化される可能性があります。

Webサーバーは、localhostデータベースクエリを作成する代わりに、データベースサーバーのアドレスに接続するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.