Azure Database for MySQL での読み取りワークロードのスケールアウト

3月 4, 2019 に投稿済み

Program Manager, Azure OSS Databases

読み取り負荷が高く、スケールアウトを検討中のワークロードがある場合は、すべての Azure Database for MySQL ユーザー向けに一般提供が開始された読み取りレプリカを使用できます。読み取りレプリカを使用すると、簡単に単一データベース サーバーを超えて水平方向にスケールアウトできます。これは、書き込みよりも読み取り操作が多くなる傾向がある、BI レポートや Web アプリなどのワークロードに便利です。

この機能では、1 つの Azure Database for MySQL サーバー ("マスター" サーバー) のデータを同じリージョン内の最大 5 つの Azure Database for MySQL サーバー ("読み取りレプリカ" サーバー) に非同期で連続的にレプリケートできます。好みに応じて、読み取り負荷の高いワークロードをレプリカ サーバー間で分散できます。レプリカ サーバーは、マスターでのデータ変更からレプリケートされた書き込みを除いて読み取り専用です。

読み取りレプリカでサポートされる内容

レプリカ サーバーは、ワークロードのニーズに基づいて作成したり削除したりできます。1 つのマスター サーバーは、同じ Azure リージョン内で最大 5 つのレプリカ サーバーをサポートできます。いずれかのレプリカ サーバーへのレプリケーションを停止すると、そのレプリカ サーバーはスタンドアロンの読み取り/書き込みサーバーになります。

レプリカ サーバーは、Azure portal および Azure CLI を使用して簡単に管理することができます。

Azure portal を使用する場合:

Azure portal の [レプリケーション] タブを使用したレプリカ サーバーの管理。

Azure Monitor の "レプリケーションのラグ (秒単位)" メトリックを使用したレプリケーションの追跡:

Azure Monitor を使用したレプリケーションの追跡

Azure CLI を使用する場合:

az mysql server replica create -n mydemoreplica1 -g myresourcegroup -s mydemomaster

ワークロードのスケーリングに読み取りレプリカを活用しているお客様やパートナーが使用しているアプリケーション パターンを、いくつか以下に示します。

BI レポート

さまざまなデータ ソースのデータが数分ごとに処理され、マスター サーバーに読み込まれます。マスター サーバーは読み込みおよび処理専用であり、パフォーマンスを確実に予測できるよう、レポートや分析用として BI ユーザーに直接公開されることはありません。レポート作成ワークロードは、高いユーザー コンカレンシーを低遅延で管理できるように、複数の読み取りレプリカにスケールアウトされます。

スケールアウトに使用される読み取りレプリカでさまざまなデータ ソースを処理します。

マイクロサービス

このアーキテクチャ パターンでは、アプリケーションが複数のマイクロサービスに分割され、データ変更 API がマスター サーバーに接続される一方、レポート API は読み取りレプリカに接続されます。データ変更 API にはプレフィックス "Set-" が付加され、レポート API にはプレフィックス "Get-" が付加されます。ロード バランサーを使用して、API プレフィックスに基づいてルーティングが行われます。

Web サービスを使用して、読み取り/書き込みデータの変更を負荷分散します。

次の手順