Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  EC2 を使用した MySQL データベースの配備

16.4.3 EC2 を使用した MySQL データベースの配備

EC2 インスタンスの稼働時間と可用性を保証することはできませんが、EC2 環境に MySQL を配備するときは、EC2 インスタンスに作業を簡単に配布できる方法を使用してください。これにはいくつかの方法があります。シャーディング技術 (複数のサーバーにアプリケーションを分割して、データセットとユーザーの特定のブロックを異なるサーバーに割り当てる) を使用することが、これを効果的に行う方法です。一般的なルールとして、インスタンスをより大きなマシンにアップグレードするよりも、より多くの EC2 インスタンスを作成してより多くのユーザーをサポートする方が簡単です。

EC2 アーキテクチャーは、EC2 インスタンスを長期間の高可用性ソリューションとしてではなく、一時的なキャッシュベースソリューションとして扱うときに最適に機能します。複数のマシンを使用することに加えて、memcached などのほかのサービスの利点を活用してアプリケーションに追加のキャッシュを提供することは MySQL サーバー上の負荷を低減し、書き込みに集中するのに役立ちます。EC2 内の大および特大インスタンスでは、使用可能な RAM がデータのために大きなメモリーキャッシュを提供できます。

独自のハードウェアで使用するほとんどのタイプのスケールアウトトポロジは EC2 環境内で使用および適用できます。ただし、すでに説明した制限とアドバイスを使用して、潜在的な障害によってデータが失われないようにしてください。また、各 EC2 インスタンスの相対能力が非常に低いため、シャーディングを使用するようにアプリケーションを変更したり、EC2 インスタンスを追加してアプリケーションのパフォーマンスを改善したりできるようにしてください。

たとえば、次に示す典型的なスケールアウト環境を見てください。ここでは、単一マスターが 1 つ以上のスレーブ (この例では 3 つ) に複製され、Web サーバーが各レプリケーションスレーブ上で動作しています。

典型的な標準スケールアウト構造

この構造は、マスター用に 1 つの EC2 インスタンス、Web および MySQL スレーブサーバーごとに 1 つのインスタンスを使用することで、EC2 環境に完全に再現できます。

注記

EC2 環境内では、EC2 インスタンスが使用する内部 (プライベート) IP アドレスは一定です。インスタンス間で通信するときは、常にこれらの内部アドレスと名前を使用します。パブリック IP アドレスを使用するのは、外部と通信する場合 (たとえば、アプリケーションを公開する場合) だけです。

データベースの信頼性を確保するには、アクティブなバックアップおよびストレージの割り当てるレプリケーションスレーブを 1 つ以上 Amazon S3 施設に追加します。次のトポロジでこれの例を見ることができます。

EC2 を使用してバックアップする典型的な標準スケールアウト構造

EC2 インスタンスで memcached を使用すると、パフォーマンスが向上するはずです。大および特大インスタンスには、非常に多くの RAM があります。アプリケーションで memcached を使用するには、データベースから情報をロードするときに、まず項目がキャッシュ内に存在するかどうかを確認します。探しているデータがキャッシュ内に存在する場合は、それを使用します。そうでない場合は、データベースからデータを再ロードしてキャッシュに移入します。

シャーディング は、該当するグループに応じて一意のデータセットを提供するために、個々のマシンまたはマシングループに割り当てることでデータベース全体のデータを分割します。たとえば、名字が文字 A - D で終わるすべてのユーザーを単一サーバーに置きます。ユーザーがアプリケーションに接続して名字が既知の場合は、クエリーを該当する MySQL サーバーにリダイレクトできます。

EC2 でシャーディングを使用する場合、Web サーバーと MySQL サーバーを個別の EC2 インスタンスに分けてから、シャーディング決定ロジックをアプリケーションに適用します。データアクセスにどの MySQL サーバーを使用すべきかを知っていると、クエリーを該当するサーバーに分配してください。次の図でこれの例を見ることができます。

負荷分散のために EC2 でシャーディングを使用する
警告

シャーディングと EC2 を使用する場合、インスタンスの障害の潜在性がアプリケーションに影響しないようにしてください。特定のシャードに MySQL サーバーを提供する EC2 インスタンスが失敗した場合、そのシャード上のすべてのデータは使用できなくなります。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.