適用対象:Azure SQL Managed Instance
この記事では、Azure Portal、PowerShell または Azure CLI を使用して Azure SQL Managed Instance 用インスタンス プールを作成する方法および、PowerShell または Azure CLI を使用してプール間でインスタンスを移動する方法について説明します。
インスタンス プールを使用すると、共有リソースを持つ複数の SQL マネージド インスタンスを 1 つの仮想マシンにデプロイできます。これは、より小規模でコンピューティング負荷の少ないワークロードを大規模な SQL Managed Instance に統合することなく、複数の SQL Server インスタンスを移行するための便利でコスト効率の高いインフラストラクチャを提供します。
前提条件
SQL マネージド インスタンス プールを作成するには、次が必要です。
- 適切なサイズのサブネット範囲が設定されている既存の仮想ネットワーク。
- 最新バージョンの PowerShell 向け Az.SQL モジュールまたは、Azure CLI の最新バージョン。
- SQL マネージド インスタンスとプールのプロパティを確認しました。
サブネット サイズの考慮事項
SQL マネージド インスタンス プールを使用する場合は、サブネットのサイズを慎重に計画してください。 サブネットのサイズ設定ガイドラインについては、「 Azure SQL Managed Instance に必要なサブネット サイズと範囲の決定 」を参照してください。
複数の General Purpose インスタンスを含む 1 つのインスタンス プールで必要な IP アドレスの数を計算する場合は、次の式を使用します。
2 * (5 + (3 * # of MIs)) + 5
# of MIs は、プロビジョニングする予定の可能性のあるインスタンスの最大数を指します。 プール内のインスタンス最大数は 40 です。
インスタンス プールを作成する
SQL マネージド インスタンス プールは、Azure portal、PowerShell、または Azure CLI を使用して作成できます。 以下、具体例に沿って説明します。
- 現在利用できるのは、Standard シリーズ (Gen5) または Premium シリーズのハードウェアの General Purpose サービス レベルのみです。
- プール名に使用できるのは、小文字、数字、ハイフンのみで、先頭をハイフンにすることはできません。
- Azure ハイブリッド特典は、インスタンス プール レベルで適用されます。 プールの作成時にライセンスの種類を設定し、プールの作成後にライセンスの種類を更新できます。
重要
インスタンス プールのデプロイは、長期操作であり、最大 4.5 時間かかります。
Azure portal で SQL マネージド インスタンス プールを作成するには、次の手順に従います。
aka.ms/azuresqlhub の Azure SQL ハブに移動します。 Azure SQL Managed Instance のウィンドウで、[オプションの表示] を選択します。
Azure SQL Managed Instance のオプション ウィンドウで、[インスタンス プールの作成] を選択します。
[ Azure SQL Managed Instance プールの作成] ページで、次の手順を実行します。
- [基本] タブでプロジェクトとインスタンスの詳細を指定します。
- [コンピューティング + ストレージ] の [インスタンス プールを構成] を使用して [コンピューティングとストレージ] ページを開き、プールで使用するサービス レベル、コンピューティング ハードウェア、SQL Server ライセンスを選択します。 [適用] を選択してコンピューティング設定を保存し、[Azure SQL Managed インスタンス プールの作成] ページに戻ります。
- 既存の仮想ネットワークを選択するか、[ネットワーク] タブで新しい仮想ネットワークを構成します。
- (オプション) [追加設定] タブで、プールの既定以外のメンテナンス期間を構成します。
- [確認と作成] タブで構成を確認し、[作成] を選択してインスタンス プールを作成します。
プールのデプロイは [通知] から監視できます。
SQL マネージド インスタンス プールが作成されたら、Azure portal を使用してプールに 新しいインスタンスを作成 するか、PowerShell または Azure CLI を使用して 既存のインスタンスをプールに移動 できます。
プール内に新しいインスタンスを作成する
プールが作成されたら、Azure portal、PowerShell、または Azure CLI を使用して、プール内に新しい SQL マネージド インスタンスを作成できます。
以下、具体例に沿って説明します。
- 新しい SQL マネージド インスタンスのライセンスの種類を指定し、プールのライセンスの種類と一致する必要があります。
Azure portal を使用してプール内に新しい SQL マネージド インスタンスを作成するには、次の手順に従います。
aka.ms/azuresqlhub の Azure SQL ハブに移動します。
Azure SQL Managed Instance のウィンドウで、[オプションの表示] を選択します。
Azure SQL Managed Instance のオプション ウィンドウで、[SQL Managed Instance の作成] を選択します。
[Azure SQL Managed Instance を作成] ページの [基本] タブで、以下を実行します。
- 既存のインスタンス プールを含むリソース グループを選択します。
- [Managed Instance の詳細] の [インスタンス プールに所属する?] で [はい] を選択し、インスタンス プール内で新しいインスタンスを作成します。
- [インスタンス プール] ドロップダウン リストでプールを選択します。
ドロップダウン リストからインスタンス プールを選択すると、インスタンスのコンピューティング コストが 0 に変わります。これは、コンピューティングがプールのコストに含まれているためです。
[Azure SQL Managed Instance を作成] ページで残りの詳細を入力し、プール内にインスタンスを作成します。 詳細については、「 クイック スタート: Azure SQL Managed Instance を作成する」を参照してください。
[確認と作成] を選択して新しいインスタンスの設定を見直したら、[作成] を選択して選択したプール内にインスタンスをデプロイします。
既存のインスタンスを移動する
次の場合は、PowerShell または Azure CLI を使用して、既存の SQL マネージド インスタンスをプールとの間で移動できます。
- プールと同じリソース グループにあります。
- プールと同じ仮想ネットワークとサブネットにあります。
- これは、インスタンス プールのリソース制限に適合します。
既存のインスタンスがプールに移動されると、プール レベルの設定がインスタンス レベルの設定よりも優先されます。 たとえば、インスタンスは、プール レベルで設定されたライセンスの種類とメンテナンス期間を継承します。 インスタンスがプールから移動すると、そのインスタンスはプールから継承した設定を保持します。 唯一の例外は、インスタンスがインスタンス プールから削除されたときに既定で "LicenseIncluded" に戻るライセンスの種類で、インスタンスがプールから移動された後、Azure ハイブリッド特典とハイブリッド フェールオーバー権限の特典を手動で構成する必要があります。
現在、Azure Portal を使用したプール内の既存のインスタンスの移動はサポートされていません。
PowerShell を使用して SQL マネージド インスタンスをプールに移動するには、 Set-AzSqlInstance を使用するときにプール名を指定します。
$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName
インスタンスをプールから移動するには、空のプール名を指定します。
$instance01 | Set-AzSqlInstance -InstancePoolName ''
プールでインスタンスに接続する
プライベート エンドポイントまたはパブリック エンドポイントを使用して、プール内の SQL マネージド インスタンスに接続することを選択できます。 プライベート エンドポイントを使用するには、 Azure SQL Managed Instance の Azure Private Link を使用する必要があります。
パブリック エンドポイントのプールでインスタンスに接続するには、エンドポイントを有効化した後、ネットワーク セキュリティ グループでパブリック エンドポイント トラフィックを許可します。
データベースを作成する
プール内での SQL マネージド インスタンスのデータベースの作成は、単一インスタンスのデータベースの作成と同じです。 Azure Portal、PowerShell または Azure CLI を使用すると新しいデータベースを作成できます。
Azure Portal を使用して既存の SQL Managed Instance 向けに新しいデータベースを作成するには、次の手順を実行します。
- Azure Portal で、[SQL Managed Instance] に移動します。
- [概要] ペインのコマンド バーで [+ 新しいデータベース] を選択して、[Azure SQL Managed Database を作成] ページを開きます。
- 新しいデータベースの詳細を入力します。
- [確認と作成] を選択して新しいデータベース構成を見直したら、[作成] を選択してデータベースをデプロイします。
プールの使用状況を取得する
Azure Portal、PowerShell または Azure CLI を使用すると、プールのリソースがリソースを使用する方法を決定できます。
プール内のイタリアのリストを取得するには、Azure Portal を使用して、[インスタンス プール] ページを確認します。 プール名を選択して、[概要] ページのプール内のインスタンスを表示します。
インスタンス プールを更新する
Azure Portal、PowerShell、または Azure CLI を使用すると、既存のインスタンス プールの設定を更新できます。
Azure Portal の [インスタンス プール] ページにある [設定] で [コンピューティングとストレージ] ペインを使用して、プールのライセンスの種類、仮想コア サイズ、ハードウェアの種類を更新します。
Azure Portal の [インスタンス プール] ページにある [設定] の [メンテナンス] ペインを使用して、プールのメンテナンス期間を更新します。
プールされたインスタンスを更新する
プール リソースの制限を超えていない場合は、PowerShell または Azure CLI を使用して、プール内のインスタンスのリソース構成を変更できます。
プール内のインスタンスのリソース パラメーターを変更するには、Set-AzSqlInstance を使用します。
次のサンプルでは、仮想コアを 8 に更新し、Instance1 のストレージ サイズを 512 GB に変更します。
$instancePoolParams = @{
VCore = 8
StorageSizeInGB = 512
InstancePoolName = $instancePoolName
}
$instance1name | Set-AzSqlInstance @instancePoolParams
インスタンス プールを削除する
プール内のすべてのインスタンスが削除されたか、プールから移動されたら、PowerShell または Azure CLI を使用してインスタンス プールを削除できます。
インスタンス プールを削除するには、Remove-AzSqlInstancePool を使用します。
次のサンプル スクリプトは、空のインスタンス プールを削除します。
$params = @{
ResourceGroupName = "<resource group name>"
Name = "<instance pool name>"
}
Remove-AzSqlInstancePool @params
インスタンス プールの操作
次の表は、使用可能なインスタンス プール操作を示しています。
| コマンド | Azure portal | PowerShell | Azure CLI |
|---|---|---|---|
| インスタンス プールを作成する | あり | あり | あり |
| プールのプロパティの更新する | あり | あり | あり |
| プールの使用とプロパティを確認する | あり | あり | あり |
| インスタンス プールを削除する | あり | あり | あり |
| プール内で新しい Managed Instance を作成する | あり | あり | あり |
| Managed Instance をプールに移動する | いいえ | あり | あり |
| Managed Instance をプールから削除する | あり | あり | あり |
| Managed Instance をプールから移動する | いいえ | あり | あり |
| プール内のインスタンスでデータベースを作成する | あり | あり | あり |
| SQL Managed Instance からデータベースを削除する | あり | あり | あり |
Powershell を使用するには、最新バージョンの PowerShell Core をインストールし、指示に従って Azure PowerShell モジュールをインストールします。
使用可能な PowerShell コマンド
| コマンドレット | 説明 |
|---|---|
| New-AzSqlInstancePool | インスタンス プールを作成します。 |
| Get-AzSqlInstancePool | インスタンス プールに関する情報を返します。 |
| Set-AzSqlInstancePool | インスタンス プールのプロパティを設定します。 |
| Remove-AzSqlInstancePool | インスタンス プールを削除します。 |
| Get-AzSqlInstancePoolUsage | インスタンス プールの使用状況に関する情報を返します。 |
プール内のインスタンスと単一インスタンスの両方に関連する操作では、標準のマネージド インスタンス コマンドを使用しますが、プール内のインスタンスでこれらのコマンドを使用する場合は、"インスタンス プール名" プロパティを設定する必要があります。
制限事項
プール内の SQL マネージド インスタンスには、次の制限があります。
- プール名に使用できるのは、小文字、数字、ハイフンのみで、先頭をハイフンにすることはできません。
- プール内のすべてのインスタンスは、同じライセンス モデルを使用します。 プールのライセンス モデルとは異なるインスタンスのライセンス モデルを指定すると、プールのライセンス モデルが使用されます。 インスタンスがプールから移動すると、完全な有料ライセンス (
LicenseType= 'LicenseIncluded') に自動的に切り替わります。 ライセンス モデルを変更するには、Azure ハイブリッド特典またはハイブリッド フェールオーバー権限の特典を手動でアクティブ化します。 - プールされたインスタンスは、同じサブネットとリソース グループに属している必要があります。 プール間でのインスタンスの移動は、プールのサブネット内か、同じリソース グループ内でのみ可能です。
- 別のサブネットへのインスタンス プールの移動はサポートされていません。
- General Purpose サービス レベルのみを使用できます。 次世代の General Purpose と Business Critical のサービス レベルは使用できません。
- Standard シリーズ (Gen5) または Premium シリーズのハードウェアのみがサポートされています。 Premium シリーズのメモリ最適化ハードウェアはサポートされていません。
- プール内のインスタンス最大数は 40 です。
- インスタンス プールは、プール内のすべてのインスタンスが削除されるか、プールから移動された後にのみ削除できます。
- Azure Portal を使用して、プール内外にインスタンスを移動することはできません。 PowerShell または Azure CLI を使用してください。
- プール内のインスタンスでは、次の SQL Managed Instance 機能はサポートされていません。
- フェールオーバー グループ。 フェールオーバー権限は、プール内のインスタンスでは使用できません。
- インスタンスを停止して開始します。
- ゾーン冗長。
サポート リクエスト
Azure portal で SQL マネージド インスタンス プールのサポート要求を作成および管理します。
Azure Portal で新しいサポート要求を作成するには、次の手順を実行します。
Azure Portal で、[新規サポート要求] ページを開きます。
[新規サポート要求] で、次の情報を入力します。
-
[問題の種類] には
Technicalを選択します。 - ドロップダウン リストで適切なサブスクリプションを選択します。
-
[サービスの種類] には
SQL Managed Instanceを選択します。 - [リソース] で、SQL Managed Instance がある場合は名前を指定します。または、プール内にインスタンスをデプロイできない場合は [一般的な質問] を選択します。
-
[概要] に
instance poolsと入力します。 -
[問題の種類] には
Create, Scale, Stop, Start, or Delete Resourcesを選択します。 -
[問題のサブタイプ] には
Instance Poolsを選択します。
-
[問題の種類] には
サポート要求を [作成] できるようになるまで、後続のページで [次へ] を選択します。
インスタンス プールの有無にかかわらず、より大きな SQL Managed Instance のデプロイを作成するには、より大きなリージョン クォータを取得することが必要な場合があります。 詳細については、「 クォータの引き上げを要求する」を参照してください。 インスタンス プールのデプロイ ロジックによって "プール レベルでの" 仮想コアの合計消費量がご利用のクォータと比較され、そのクォータをさらに増やすことなく新しいリソースの作成を許可するかどうかが決定されることにご注意ください。