一部の種類のデプロイメント、特にリッチダイナミックアプリケーションが大規模なデータベースに依存している場合、データベースサーバーをアプリケーションサーバーから分離すると、アプリケーションを拡張して、はるかに大規模なユーザーベースに対応できるようになります。 MySQLのみで使用される別のサーバーを指定すると、アプリケーションのWebサーバーがコンテンツをより効率的に提供できるようになり、データベースサーバーがより迅速に応答できるようになります。
その結果、これらのデータベースサーバーは、トラフィック負荷の高い展開をより効果的にサポートできます。これにより、WordPressやDrupalなどの一般的なパッケージから、Ruby on RailsやDjangoで記述されたカスタムアプリケーションまで、さまざまなアプリケーションでより高いパフォーマンスを実現できる可能性があります。
前提条件
このガイドでは、2つのLinodeを使用します。両方のサーバーを同時に実行する必要があるため、これは既存のLinodeアカウントに2番目の構成プロファイルを単にデプロイすることとは異なることに注意してください。両方のLinodeのコンピューティングインスタンスの設定と保護のガイドに従っていることを前提としています。
- Webサーバーを実行しているLinodeの場合、以降、アプリケーションサーバーには、Apache(またはお好みのWebサーバー)がすでにインストールされている必要があります。新規インストールについては、ディストリビューションのLAMPガイドに従ってください。 LAMPガイドにはMySQLが含まれていますが、インストールする必要はありません。
- 専用のMySQLLinodeにはMySQLがインストールされている必要があります。ディストリビューションのMySQLデータベースサーバーインストールガイドに従ってください。専用のMySQLサーバーにApacheをインストールする必要はないことに注意してください。
また、各LinodeのプライベートIPアドレスのエイリアスを構成する必要があります。これについては、Linux静的IP構成ガイドに従ってください。 両方のLinodeが同じデータセンターにある必要があることに注意することが重要です プライベートネットワーキングが機能するため。これにより、サーバーは、毎月の帯域幅割り当てに対してトラフィックをカウントせずに通信できるようになります。プライベートIPアドレスを設定した後、両方のLinodeを再起動する必要があります。
/ etc/hostsを編集
後で追跡できるように、マシンごとにホスト名を作成する必要があります。これにより、サーバーのIPアドレスを変更する必要がある状況に陥った場合でも、作業を節約できます。 /etc/hosts
を編集します プライベートを含めるファイル 各LinodeのIPアドレス。 /etc/hosts
の例からの次の抜粋を使用してください 例としてのファイル:
- ファイル:/ etc / hosts
192.168.192.168
を忘れずに置き換えてください および192.168.192.169
実際のプライベートIPアドレスを使用します。
この手順はオプションですが、hosts
を構成します エントリを使用すると、アプリケーション構成を特定のIPアドレスにハードコーディングする必要がなくなります。 IPアドレスを変更する必要がある場合は、アプリケーションサーバーとデータベースサーバーを代替サーバーにすばやく移行できます。
MySQLサーバーの構成
次のステップは、/etc/mysql/my.cnf
を変更することです。 MySQLサーバー上のファイルを使用して、プライベートIPアドレスをリッスンします。お気に入りのエディターを使用して、/etc/mysql/my.cnf
を開きます。 ファイルを作成し、MySQLデータベースのホスト名を挿入します。この例では、MySQLデータベースのホスト名はmysql
です。 。 bind-address
を見つけます 行:
- ファイル:/ etc / mysql / my.cnf
または、プライベートIPアドレスを使用することもできます。ファイルを保存し、次のコマンドを実行してMySQLデーモンを再起動します。
/etc/init.d/mysql restart
データベースアクセスの許可
専用データベースサーバーで、アクセス権を持つデータベースのユーザー名とパスワードを作成する必要があります。これは、MySQLプロンプトを介して可能です。次のコマンドを発行します:
mysql -u root -p
これにより、MySQLコマンドラインが提供されます。 app
に置き換えて、次のコマンドを発行します アプリケーションサーバーを実行しているLinodeのホスト名と、「PASSWORD」の代わりに強力なパスワードを使用:
CREATE DATABASE webapplications;
GRANT ALL ON webapplications.* TO [email protected]'app' IDENTIFIED BY 'PASSWORD';
この段階で、アプリケーションはリモートデータベースに正常にアクセスでき、データベースサーバーの使用を開始する準備が整います。
データベースサーバーの使用
この時点から、すべてが構成され、データベースサーバーがWebサーバーからの接続を受け入れる準備が整います。これで、問題なくアプリケーションをMySQLサーバーに向けることができるはずです。リモートMySQLサーバーで動作するようにWebアプリケーションを設定するときは、リモートシステムへの権限を持つユーザーを作成する必要があることを覚えておくことが重要です(上記のとおり)。
別のデータベースサーバーでMySQLを使用することは、ローカルデータベースサーバーを実行することと非常に似ています。通常、アプリケーションでは「データベースホスト名」を指定する必要があり、従来、ローカルマシンで実行されているデータベースサーバーのホスト名はlocalhost
です。 。データベースサーバーとアプリケーションサーバーを分離する場合は、上記のように、アプリケーションでホスト名を指定する必要があります。
たとえば、inWordPressデータベース設定はwp-config.php
に含まれています ファイルであり、ホスト名は次の形式で指定されます:
- ファイル:wp -config.php
ホスト名の設定方法はアプリケーションによって異なることに注意してください。さらに、/etc/hosts
で構成されているホスト名を使用するのではなく、データベースサーバーの特定のIPアドレスに置き換えることができます。 上記。
MySQL固有のクエリおよび関連するヘルプについてはexternalMySQLWebサイトを参照することも検討してください。
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- Webアプリケーションガイド
- Webアプリケーションフレームワーク
- データベース管理システム