Azure SQL Database のライセンスフリー スタンバイ レプリカを構成する
適用対象: Azure SQL データベース
この記事では、Azure SQL Database の使用時にセカンダリ ディザスター リカバリー (DR) データベースをスタンバイに指定することで、ライセンス コストを節約する方法について説明します。
概要
セカンダリ データベース レプリカがディザスター リカバリーにのみ使用され、ワークロードが実行されていない場合や、それに接続するアプリケーションがない場合は、データベースをスタンバイ レプリカとして指定することで、ライセンス コストを節約できます。 セカンダリ データベースがスタンバイ インスタンスとして指定されている場合、Microsoft は、製品ライセンス条項のフェールオーバー権利特典に基づき、プライマリ データベースにライセンスされた仮想コア数を追加料金なしで提供します。 セカンダリ データベースで使われるコンピューティングとストレージに対しては、引き続き課金されます。
新しいアクティブ geo レプリケーション レプリケーションを構成するときに、レプリカをスタンバイとして指定、あるいは既存のレプリカをスタンバイ に変換できます。
アクティブ geo レプリケーションでは 4 つのセカンダリ レプリカの追加がサポートされていますが、スタンバイ用に指定できるセカンダリ データベース レプリカは 1 つだけです。 フェールオーバー グループは、プライマリ データベースごとに 1 つのセカンダリ データベース レプリカをサポートし、読み取り可能またはスタンバイにすることができます。
計画中または計画されていないフェールオーバー中は、スタンバイ レプリカが新しいプライマリになって通常の仮想コア ライセンス コストの発生が開始し、元のプライマリが新しいスタンバイ のセカンダリになって仮想コア ライセンス コストの発生が停止します。
費用便益
データベース レプリカをスタンバイとして指定すると、スタンバイ レプリカで使われる仮想コアの SQL Server ライセンス コストに対する Microsoft からの課金はありません。 ただし、データベースは 1 時間全体に対して課金されるため、1 時間の途中で状態が変更された場合でも、1 時間全体のライセンス コストを請求されることがあります。
従量課金制モデルを利用するお客様と、Azure ハイブリッド特典モデルを利用するお客様では、特典の適用方法が異なります。 従量課金制のお客様の場合、仮想コアはその請求書で割引されます。 スタンバイ レプリカの Azure ハイブリッド特典を使用するお客様の場合、セカンダリ レプリカで使用する仮想コア数がそのライセンス プールに戻されます。
たとえば、従量課金制のお客様であって、セカンダリ データベースに 16 個の仮想コアが割り当てられている場合、セカンダリ データベースをスタンバイ専用として指定すると、請求書に 16 個の仮想コアの割引が表示されます。
別の例としては、16 個の Azure ハイブリッド特典ライセンスがあり、16 個の仮想コアを持つ 1 つのデータベースをデプロイした場合、セカンダリ データベースをスタンバイとして指定した後、他の Azure SQL デプロイで使用するために 16 個の仮想コアがライセンス プールに戻されます。
機能
次の表では、スタンバイ セカンダリ データベース レプリカの機能について説明します。
機能 | 説明 |
---|---|
読み取りワークロードの制限 | データベースをスタンバイとして指定した後、セカンダリ データベースで実行できる読み取りワークロードの数は制限されます (動的管理ビュー (DMV)、バックアップ、データベース コンソール コマンド (DBCC) クエリなど)。 |
計画されたフェールオーバー | 復旧訓練、データベースの異なるリージョンへの再配置、データベースのプライマリへの復帰など、計画されたすべてのフェールオーバー シナリオは、スタンバイ レプリカでサポートされます。 セカンダリがプライマリに切り替わると、読み取りクエリと書き込みクエリに対応できます。 新しいセカンダリ (元のプライマリ) はスタンバイ レプリカになり、読み取りワークロードに使用すべきではありません。 |
計画外のフェールオーバー | 計画外のフェールオーバー中にセカンダリがプライマリ ロールに切り替わると、読み取りクエリと書き込みクエリに対応できます。 停止していた機能が復旧して元のプライマリが再接続されると、それが新たなセカンダリ スタンバイ レプリカになるため、読み取りワークロードには使わないでください。 |
バックアップと復元 | スタンバイ レプリカと読み取り可能なセカンダリ データベース レプリカで、バックアップと復元の動作は同じです。 |
監視 | 読み取り可能なセカンダリ レプリカでサポートされるすべての監視操作は、スタンバイ レプリカによってサポートされます。 |
スタンバイ データベース レプリカは、ディザスター リカバリーにのみ使用する必要があります。 スタンバイ データベースで許可されるアクティビティは次のとおりです。
- checkDB のようなメンテナンス操作の実行
- 監視アプリケーションの接続
- ディザスター リカバリーの訓練を実施する
制限事項
次の表に、サポート対象のデプロイ メソッドとサポート非対象のデプロイ メソッドを示します。
デプロイメント モデル | コンピューティング レベル | サービス レベル | サポート対象のスタンバイ レプリカ | ハードウェア |
---|---|---|---|---|
単一データベース | プロビジョニング済み | 汎用 | はい | Standard シリーズ (Gen5)、FSv2 シリーズ、DC シリーズ |
単一データベース | プロビジョニング済み | Business Critical | はい | Standard シリーズ (Gen5)、DC シリーズ |
単一データベース | プロビジョニング済み | Hyperscale | 該当なし | 該当なし |
単一データベース | サーバーレス | すべて | いいえ | N/A |
エラスティック プール | すべて | すべて | いいえ | N/A |
スタンバイ データベースの使用には、次の制限があります。
- スタンバイ用に指定できるセカンダリ データベース レプリカは 1 つだけです。
- サーバーレス コンピューティング レベルはサポートされていません。 プライマリ データベースまたはセカンダリ データベースがサーバーレス コンピューティング レベルにある場合、スタンバイ レプリカを有効にすることはできません。
- DTU 購入モデルはサポートされていません。 仮想コア購入モデルのみを使用して、データベースのスタンバイ レプリカを有効にすることができます。
- Hyperscale サービス レベルはサポートされていません。 スタンバイに指定できるのは、General Purpose サービス レベルと Business Critical サービス レベルのデータベースのみです。
- フェールオーバー グループを使用する場合、スタンバイ権限はフェールオーバー グループ レベルではなくデータベース レベルで割り当てられ、フェールオーバー グループ内のデータベースごとに個別に割り当てる必要があります。
- レプリカがセカンダリ レプリカのセカンダリ レプリカである場合、スタンバイのセカンダリ レプリカの指定はサポートされません (既知のプロセスはチェーンされています)。
前提条件
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
- サポートされているハードウェアで実行されている General Purpose サービス レベルまたは Business Critical サービス レベルのプライマリ プロビジョニングされた仮想コア Azure SQL Database。 クイックスタートを確認して使用を開始してください。
スタンバイ用に新しいレプリカを構成する
Azure portal、PowerShell、Azure CLI、または REST API を使用して新しいアクティブ geo レプリケーション リレーションシップを構成するときに、スタンバイのレプリカを指定できます。
新しいアクティブ geo レプリケーションリレーションシップを作成し、Azure portal でセカンダリ データベースをスタンバイ用に指定するには、次の手順に従います。
Azure portal のSQL データベース リソースに移動します。
リソース メニューから [データ管理] の下にある [レプリカ] を選択し、[+ レプリカの作成] を選択して [SQL Database - geo レプリカの作成] ページを開きます。
[SQL Database - geo レプリカの作成] ページで、[レプリカの構成] の [レプリカの種類] で [スタンバイ レプリカ] を選択します。 チェック ボックスをオンにして、スタンバイにレプリカを使用することを確認します。
新しいスタンバイ データベースの新規または既存のサーバーを指定し、[確認と作成] を使用して、データベースとサーバーの詳細の最終的な検証を行います。
[作成] を使用して設定を確認し、新しいスタンバイ データベース レプリカを作成します。
Note
フェールオーバー グループの作成時にデータベースをスタンバイに指定したり、Azure portal で既存のフェールオーバー グループにデータベースを追加したりすることもできます。
既存のレプリカを変換する
Azure portal または [レプリケーション リンク - REST API の更新] コマンドを使用して、既存のレプリカを通常の geo レプリカからスタンバイ レプリカに、またはスタンバイ レプリカを通常の geo レプリカに変換できます。
Azure portal で既存のレプリカを変換するには、次の手順に従います。
- Azure portal の SQL Database リソースに移動します。
- [データ管理] で [レプリカ] を選択します。
- レプリカの省略記号 (...) を選択し、次の操作を行います。
- 通常のレプリカをスタンバイ レプリカに変換するには、[スタンバイに変換] を選択します。 [スタンバイ レプリカに変換] ポップアップ ウィンドウで、[...を確認しました] の横にあるチェック ボックスをオンにして、[はい] を選択して変更を保存し、レプリカを変換します。
- スタンバイ レプリカを通常の geo レプリカに変換するには、[geo に変換] を選択します。 [geo レプリカに変換] ポップアップ ウィンドウで、[...を確認しました] の横にあるチェック ボックスをオンにして、[はい] を選択して変更を保存し、レプリカを変換します。
[REST API レプリケーション リンク - 更新] コマンドを使用して既存のレプリカを変換するには、 linkType
をスタンバイ レプリカ用の STANDBY
として指定するか、既存のスタンバイ レプリカを通常の geo レプリカに変換するために GEO
に指定します。
ライセンスの権利を表示する
Azure portal、PowerShell、Azure CLI、または REST API を使用して、既存のデータベースのライセンス権利を確認することができます。
Azure portal を使用して既存のデータベースのライセンス権利をチェックするには、次の手順に従います。
Azure portal で SQL データベースに移動します。
[概要] ページで、[Essentials] の [レプリカ タイプ] をチェックします。 値
Standby
は、データベースがスタンバイ レプリカであることを示し、このデータベースの SQL ライセンス コストには課金されてません。
スタンバイ レプリカの削除
データベースがスタンバイとして指定された後は、スタンバイ プロパティを削除することはできません。 スタンバイ レプリカを削除するには、アクティブ geo レプリケーションリレーションシップを終了するためにレプリケーションを停止する必要があります。 レプリケーションが停止すると、データベースはスタンドアロンになり、ライセンス コストの発生が開始されます。
Azure Portal、PowerShell、Azure CLI、または REST API を使用して、geo レプリケーションを停止することができます。
Azure portal で geo レプリケーションを終了してスタンバイ レプリカを削除するには、次の手順に従います。
- Azure portal で SQL データベースに移動します。
- [データ管理] で [レプリカ] を選択します。
- スタンバイ レプリカの省略記号 (...) を選択し、ポップアップ メニューから [レプリケーションの停止] を選択します。 これによりレプリケーションが停止されるため、セカンダリ データベースはスタンバイ用に指定されるのではなくスタンドアロンになり、ライセンス コストが発生します。
よく寄せられる質問 (FAQ)
価格にどのような影響がありますか?
セカンダリ データベース レプリカは、データとバックアップの SQL ライセンス、コンピューティング、ストレージに対して課金されます。 スタンバイ用のデータベース レプリカを指定した場合、セカンダリ レプリカで使用される仮想コアのライセンス コストには課金されませんが、コンピューティングとストレージに対しては引き続き課金されます。
スタンバイ レプリカのおおよその節約額はどれくらいですか?
ライセンス コストが含まれていない場合、スタンバイ レプリカは完全に読み取り可能なセカンダリ レプリカと比較して 35% から 40% まで節約できますが、節約度合いはリージョンによって異なります。 正確な価格を得る場合は、Azure 料金計算ツールを使用し、**[ディザスター リカバリー] ドロップダウン リストで [スタンバイ レプリカ] を選択します。
スタンバイ レプリカでライセンスフリーになる仮想コアの数はいくつですか?
プライマリ データベースが使用する仮想コアの数と同じです。 geo レプリケーションのパフォーマンスを最適化するには、プライマリ データベースと同じ数の仮想コアを使用してセカンダリ レプリカを構成することをお勧めします。
スタンバイ レプリカを使用するには、アクティブな ソフトウェア アシュアランス を持つ SQL Server ライセンスが必要ですか?
いいえ。 スタンバイ レプリカではライセンス コストが発生しないため、アクティブなソフトウェア アシュアランスを備えたアクティブな SQL Server ライセンスは必要ありません。
スタンバイ レプリカを使用するにはどうすればよいですか?
スタンバイ レプリカはディザスター リカバリー (DR) のみを目的としており、アクティブな読み取りワークロードは使用できません。 許容できるワークロードは、監視、動的管理ビュー (DMV)、CheckDB の実行などのメンテナンスのみです。
コストを節約するために、既存の読み取り可能なセカンダリ レプリカをスタンバイ レプリカに更新できますか?
はい。Azure portal の [レプリカ] ウィンドウで可能です。 省略記号 (...) を選択し、レプリカを変換するオプションを選択します。
スタンバイ レプリカのAzure ハイブリッド特典を有効にできますか?
スタンバイのレプリカを指定すると、Azure ハイブリッド特典からの割引が置き換えられるため、Azure portal を使用してレプリカのライセンス モデルを変更することはできません。 ただし、フェールオーバー時にスタンバイ レプリカでAzure ハイブリッド特典を使用する場合は、Set-AzSqlDatabase PowerShell または az sql db update Azure CLI コマンドを使用して、スタンバイ レプリカがフェールオーバー後にプライマリになったときに使用するようにライセンスのタイプを
BasePrice
(Azure Hybrid Benefit) に更新します。フェールオーバー中のスタンバイ レプリカの状態はどうなりますか?
計画中または計画されていないフェールオーバー中に、スタンバイ レプリカは通常のライセンス コストを発生する新しいプライマリになり、元のプライマリは新しいスタンバイ セカンダリになり、仮想コア ライセンス コストの発生を停止します。 ただし、インスタンスは 1 時間全体に対して課金されるため、1 時間の途中で状態が変更された場合でも、新しいセカンダリに対する1 時間全体のライセンス コストを請求されることがあります。 元のプライマリ (フェールオーバー後にスタンバイになる) がAzure ハイブリッド特典を使用していた場合、スタンバイ ライセンス割引はデータベースで使用されるAzure ハイブリッド特典をオーバーライドします。
プライマリまたはセカンダリを高い仮想コア サイズにスケールアップするとどうなりますか?
スケールアップするときは、まずセカンダリをスケールアップしてから、プライマリをスケールアップすることをお勧めします。 セカンダリ レプリカの仮想コア数は移行期間中のプライマリよりも多くなりますが、スタンバイ レプリカの利点は引き続き適用されます。 切り替え期間をできるだけ最小限にしてください。
プライマリまたはセカンダリを低い仮想コア サイズにスケールダウンするとどうなりますか?
スケールダウンするときは、最初にプライマリをスケールダウンしてからセカンダリをスケールダウンすることをお勧めします。 セカンダリ レプリカの仮想コア数は移行期間中のプライマリよりも多くなりますが、スタンバイ レプリカの利点は引き続き適用されます。 切り替え期間をできるだけ最小限にしてください。
プライマリ レプリカとスタンバイ レプリカの間の geo レプリケーション関係を削除するとどうなりますか?
geo レプリケーションが削除されると、スタンバイ データベースは通常のスタンドアロン データベースになり、ライセンス コストの発生が開始されます。
スタンバイ レプリカの予約容量の利点は得られますか?
はい。 予約容量の価格は、スタンバイ レプリカと完全に互換性があります。
新しいフェールオーバー グループを作成するとき、または新しいフェールオーバー グループにデータベースを追加するときに、スタンバイのレプリカを指定できますか?
はい。ただし、新しいフェールオーバー グループを作成する場合、または Azure portal で既存のフェールオーバー グループにデータベースを追加する場合のみです。 PowerShell と Azure CLI は現在使用できません。