アマゾン ウェブ サービス アプリケーションの設計方法を理解しようとしています。
EBS から実行されているインスタンスがあります。私の知る限り、MySQL データベースを保存できるように EBS ドライブをマウントする必要があります。
後でスケールアップしたい場合は、どうすればよいですか? サーバー インスタンスを追加できることは理解していますが、データベースにどのようにアクセスするのでしょうか? 私の理解では、EBS ボリュームは 1 つのサーバー インスタンスにしか接続できません。
アマゾン ウェブ サービス アプリケーションの設計方法を理解しようとしています。
EBS から実行されているインスタンスがあります。私の知る限り、MySQL データベースを保存できるように EBS ドライブをマウントする必要があります。
後でスケールアップしたい場合は、どうすればよいですか? サーバー インスタンスを追加できることは理解していますが、データベースにどのようにアクセスするのでしょうか? 私の理解では、EBS ボリュームは 1 つのサーバー インスタンスにしか接続できません。
MySQL インスタンスで EBS を使用した経験がないため、この特定のセットアップについて話すことはできませんが、このタイプのスケーリングは通常、特定のインスタンスをマスター データベース サーバーとして専用にすることによって実現されます。マスター DB IP を使用して接続している追加の Web サーバーをスピンアップするときはいつでも。データベースがボトルネックになった時点で、ボックスの 1 つ (または専用のボックス) でスレーブ DB インスタンスをスピンアップします。その後、スレーブ インスタンスへの書き込みもできるように、マスターからスレーブへの方向または循環レプリケーションのいずれかでレプリケーションを構成できます。
従来のマスターからスレーブへのレプリケーションを選択した場合は、書き込みがマスター DB インスタンスでのみ実行されるようにする必要があります。
Zeus やその他の接続ロード バランサーなどをセットアップして、単一のデータベース IP に接続するだけで済み、読み取り接続をサーバーのプールにラウンド ロビンでルーティングできます。それ以外の場合は、接続を自分で管理する必要がありますが、これは簡単なことではありません。幸運を。
EBSでバックアップされたインスタンスでMySQLクラスタリングを試すことができます。私はここに投稿された、より多くの要件を持つ同様のクエリを持っています。
AWS には、これ専用の完全な製品であるRDSがあります。
最もまれで最も特殊な状況を除いて、独自の EBS/EC2/MySQL インフラストラクチャを作成して調整するよりも、RDS を使用した方がよい場合があります。
RDS はまた、あなたの質問に直接答えます。クエリ スレーブとして使用する読み取り専用データベースの作成を直接可能にします。RDS は、バックアップ、アップグレード、およびあらゆる種類のフェイルオーバー インフラストラクチャも実行します。
EBS では、ディスクを複数の EC2 インスタンスに接続する方法がないため、そのアプローチを使用して障害クラスターを構築することはできません。代わりに、何らかのタイプのレプリケーション ツールまたはバックアップ ツールが必要になります。
EBS ボリュームの容量は、スナップショット -> 新しいボリュームの起動テクニックを使用してスケールアップできます。代わりに、EBS ストライピング (RAID 0) を使用してストレージ容量をスケールアウトできます。
AWS では、同じ EBS ボリュームを 2 つの EC2 インスタンスに同時にマウントすることはできないため、アプリケーションをスケーリングするときは、レプリケーションまたはクラスタリングを介して MySQL DB をスケールアウトまたはスケールアップする必要があります。AWS RDS は MySQL の非常に優れたオプションです。アプリケーションの読み取りが集中している場合は、RDS 読み取りレプリカも使用してスケールアウトできます。書き込みスケーリングが必要な場合は、機能パーティションまたは MySQL シャードを調べることができます。