読み取りレプリカを構成する
企業は、データベースの読み取り専用レプリカを使用して、パフォーマンスをグローバルにスケーリングできます。 レプリカは、顧客がグローバルに分散していて、数百万のユーザーがデータにアクセスしようとするような組織で役に立ちます。 配置後は、それらでリージョンのディザスター リカバリーに対処することもできます。
あなたの会社は、世界的に有名な自転車の販売会社に成長しています。 CIO は、世界中のユーザーのためにオンライン ショップの応答性を向上させるようにあなたの部門に要請しました。 パフォーマンスを向上させるための迅速で簡単な方法は、データベースの読み取り専用レプリカを各地域に配置することであることをあなたは知っています。
このユニットでは、Azure Database for MySQL/PostgreSQL に格納されているデータの読み取り専用レプリカを作成して管理することがいかに簡単であるかを説明します。
読み取りレプリケーションを使用する方法
読み取りレプリケーションを使用して、Azure Database for MySQL/PostgreSQL の 1 つのインスタンス ("マスター" と呼ばれます) から最大 5 つのレプリカにデータをコピーします。 レプリケーションを使用して、読み取り負荷の高いワークロードをサーバー間で負荷分散します。 レプリケーションは一方向のみで、各レプリカは読み取り専用です。 レプリケーションは非同期に動作するため、マスター上でデータが変更されてから各レプリカにそれが表示される時点までの間に遅延が発生します。
レプリカは、マスターとは異なるリージョンに配置できます。 レプリカを使用して、それを必要とするクライアントの近くにデータを配置すると、クエリの待機時間が短縮されます。 リージョン間レプリケーションでは、リージョンのディザスター リカバリーを処理するメカニズムも提供されます。
注意
リージョン間レプリケーションは、Basic パフォーマンス レベルでは使用できません。
各レプリカは、正当な独自の Azure Database for MySQL/PostgreSQL のインスタンスですが、読み取り専用として構成されます。 マスター サーバーへの接続が失われた場合、またはマスター サーバーが削除された場合、各レプリカは独立した読み取り/書き込みサーバーになります。 この場合、レプリカは相互に同期されなくなるため、それらで保持されているデータが異なる内容となっていく可能性があります。
注意
Azure Database for MySQL を使用している場合、読み取りレプリカは、General Purpose と Memory Optimized 価格レベルでのみ使用できます。 また、読み取りレプリカを Azure Database for PostgreSQL フレキシブル サーバー で使用することはできません。
レプリカの作成
サーバーにレプリカを追加する最も簡単な方法は、Azure portal のサーバーの [レプリケーション] ページを使用することです。 このページで、[レプリカの追加] を選択します。
サーバーの名前と場所を入力するように求められます。 それ以外のレプリカの詳細情報 (価格レベルを含む) は、マスターで使用されている情報と同じに設定されます。 レプリカが作成されたら、そのサーバーのすべての設定を修正できます (価格レベルの調整など)。 ただし、レプリケートされるデータの受信と格納に関連するワークロードを処理するために十分なリソースが各レプリカで使用可能であることを確認してください。
Note
General Purpose または Memory Optimized 価格レベルを使用している場合は、レプリケーションのサポートを有効にする必要もあります。 これを行うには、[レプリケーション] ページで [レプリケーションのサポートを有効にする] を選択します。 続行する前に、サーバーが再起動されます。
レプリカを追加すると、[レプリケーション] ページに表示されます。 マスターのサイズとデータベースのデータ量によっては、各レプリカのデプロイと同期にかなりの時間がかかることがあります。
レプリカを再構成してサイズを変更するには、[レプリケーション] ページでそれを選択します。
Azure CLI を使用する場合は、az mysql/postgres server replica create
コマンドを使用してレプリカを作成します。
az postgres server replica create \
--name northwindreplica3 \
--resource-group northwindrg \
--source-server northwind101
レプリカの削除
レプリカを削除するには、[レプリケーション] ページでレプリカを選択し、[レプリケーションの停止] を選択します。 レプリカ サーバーはマスターから切断され、代わりに読み取り/書き込みサーバーに変換されます。 レプリカは削除されず、使用されるリソースに対して引き続き課金されます。 レプリカを削除する必要がある場合は、代わりに [レプリカの削除] コマンドを使用します。
Azure CLI には、レプリケーションを停止し、レプリカを読み取り/書き込みサーバーに変換するための az mysql/postgres server replica stop
コマンドが用意されています。 次に、az mysql/postgres server delete
コマンドを使用してレプリカを削除し、そのリソースを解放します。