次の方法で共有


インスタンス プール (プレビュー) を作成する - Azure SQL Managed Instance

適用対象: Azure SQL Managed Instance

この記事では、Azure portal、PowerShell または Azure CLI を使用して Azure SQL Managed Instanceインスタンス プールを作成する方法および、PowerShell または Azure CLI を使用してプール間でインスタンスを移動する方法を説明します。

インスタンス プールを使用すると、共有リソースを持つ複数のインスタンスを 1 つの仮想マシンにデプロイできます。これにより、より小規模でコンピューティング負荷の少ないワークロードを大規模な SQL Managed Instance に統合することなく、複数の SQL Server インスタンスを移行するための便利でコスト効率の高いインフラストラクチャが提供されます。

Note

現在、Azure SQL Managed Instance 用インスタンス プールはプレビュー段階にあります。

前提条件

インスタンス プールを作成するには、次が必要です。

サブネット サイズの考慮事項

インスタンス プールを使用する場合は、サブネットのサイズを慎重に計画してください。 サブネットのサイズ設定ガイドラインについては、「必要なサブネット サイズと範囲の決定」を参照してください。

複数の General Purpose インスタンスを含む 1 つのインスタンス プールで必要な IP アドレスの数を計算する場合は、次の式を使用します。

2 * (5 + (3 * # of MIs)) + 5

# of MIs は、プロビジョニングする予定の可能性のあるインスタンスの最大数を指します。 プール内のインスタンスの最大数は 40 です。

インスタンス プールを作成する

インスタンス プールは、Azure portal、PowerShell、または Azure CLI を使用して作成できます。 次の点について検討してください。

  • 現在利用できるのは、Standard シリーズ (Gen5) またはプレミアム シリーズのハードウェアの General Purpose サービス レベルのみです。
  • プール名に使用できるのは、小文字、数字、ハイフンのみで、先頭をハイフンにすることはできません。
  • Azure ハイブリッド特典 は、インスタンス プール レベルで適用されます。 プールの作成時にライセンスの種類を設定し、プールの作成後にライセンスの種類を更新できます。

重要

インスタンス プールのデプロイは長期の操作であり、4.5 時間かかりる場合があります。

Azure Portal でインスタンス プールを作成するには、次の手順を実行します。

  1. Azure portalインスタンス プールを検索し、インスタンス プール サービスを選択して [インスタンス プール] ページを開きます。

    Azure portal でインスタンス プールを検索する操作のスクリーンショット。

  2. [インスタンス プール] ページで [+ 作成] を選択し、[Azure SQL Managed Instance プールの作成] ページを開きます。

    Azure portal の [インスタンス プール] ページで [+作成] が選択されていることを示すスクリーンショット。

  3. [Azure SQL Managed Instance プールの作成] で次のことを行います。

    1. [基本] タブで、プロジェクトとインスタンスの詳細を入力します。
    2. [コンピューティング + ストレージ][インスタンス プールの構成] を使用して [コンピューティング + ストレージ] ページを開き、プールで使用するサービス レベル、コンピューティング ハードウェア、SQL Server ライセンスを選択します。 [適用] を選択してコンピューティング設定を保存し、[Azure SQL Managed Instance プールの作成] ページに戻ります。
    3. 既存の仮想ネットワークを選択するか、[ネットワーク] タブで新しい仮想ネットワークを構成します。
    4. (省略可能) [追加設定] タブで、プールの既定以外のメンテナンス期間を構成します。
    5. [確認と作成] タブで構成を確認し、[作成] を選択してインスタンス プールを作成します。

    [インスタンス プールの構成] が選択された状態の、Azure portal の [Azure SQL Managed Instance プールの作成] ページのスクリーンショット。

  4. プールのデプロイは [通知] から監視できます。

インスタンス プールが作成されたら、Azure portal を使用してプールに新しいインスタンスを作成するか、PowerShell または Azure CLI を使用して既存のインスタンスをプールに移動します。

プール内に新しいインスタンスを作成する

プールが作成されたら、Azure portal、PowerShell または Azure CLI を使用して、プール内に新しいインスタンスを作成できます。

次の点について検討してください。

  • 新しいインスタンスのライセンスの種類を指定し、プールのライセンスの種類と一致させる必要があります。

Azure portal を使用してプール内に新しいインスタンスを作成するには、次の手順を実行します。

  1. Azure portal の [Azure SQL] ページに移動します。

  2. [Azure SQL] ページで [+ 作成] を選び、[SQL デプロイ オプションの選択] を開きます。

  3. [SQL マネージド インスタンス] タイルで、リソースの種類にはドロップダウンから [単一インスタンス] を選択し、[作成] を選択して [Azure SQL Managed Instance の作成] ページを開きます。

  4. [Azure SQL Managed Instance の作成] ページの [基本] タブで、以下を実行します。

    1. 既存のインスタンス プールを含むリソース グループを選択します。
    2. インスタンス プール内に新しいインスタンスを作成するには、[マネージド インスタンスの詳細][インスタンス プールに所属][はい] を選択します。
    3. [インスタンス プール] ドロップダウン リストからプールを選択します。

    [インスタンス プールに所属] が選択された状態の、Azure portal の [Azure SQL Managed Instance の作成] ページのスクリーンショット。

  5. [Azure SQL Managed Instance の作成] ページで残りの詳細を入力し、プール内にインスタンスを作成します。 詳細については、「Azure SQL Managed Instance の作成」を確認してください。

  6. [確認と作成] を選択して新しいインスタンスの設定をレビューしたら、[作成] を選択して選択したプール内にインスタンスをデプロイします。

既存のインスタンスを移動する

次の場合は、PowerShell または Azure CLI を使用して、プールとの間で既存のインスタンスを移動できます。

  • プールと同じリソース グループにあります。
  • プールと同じ仮想ネットワークとサブネット上にあります。
  • これは、インスタンス プールのリソース制限に適合します。

既存のインスタンスがプールに移動されると、プール レベルの設定がインスタンス レベルの設定よりも優先されます。 たとえば、インスタンスは、プール レベルで設定されたライセンスの種類とメンテナンス期間を継承します。 インスタンスがプールから移動されると、そのインスタンスはプールから継承した設定を保持します。 唯一の例外は、インスタンスがインスタンス プールから削除されたときに既定で "LicenseIncluded" に戻るライセンスの種類で、インスタンスがプールから移動された後、Azure ハイブリッド特典ハイブリッド フェールオーバー権限の特典を手動で構成する必要があります。

現在、Azure portal を使用したプール内の既存のインスタンスの移動はサポートされていません。

PowerShell でインスタンスをプールに移動するには、Set-AzSqlInstance を使用するときにプール名を指定します。

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

インスタンスをプールから移動するには、のプール名を指定します。

$instance01 | Set-AzSqlInstance -InstancePoolName ''

プール内のインスタンスに接続する

プライベート エンドポイントまたはパブリック エンドポイントを使用して、プール内のインスタンスに接続することができます。 プライベート エンドポイントを使用するには、Azure Private Link を使用する必要があります。

パブリック エンドポイント でプール内のインスタンスに接続するには、エンドポイントを有効化した後、ネットワーク セキュリティ グループでパブリック エンドポイント トラフィックを許可します。

データベースの作成

プール内のインスタンスのデータベースの作成は、単一インスタンスのデータベースの作成と同じです。 Azure Portal、PowerShell、または Azure CLI を使用して新しいデータベースを作成できます。

Azure portal を使用して既存の SQL マネージド インスタンスに新しいデータベースを作成するには、次の手順を実行します。

  1. Azure Portal で、[SQL Managed Instance] に移動します。
  2. [概要] ウィンドウで コマンド バーから [+ 新しいデータベース] を選んで、[Azure SQL マネージド データベースを作成する] ページを開きます。
  3. 新しいデータベースの詳細を指定します。
  4. [確認と作成] を選択して新しいデータベース構成をレビューしたら、[作成] を選択してデータベースをデプロイします。

プールの使用状況を取得する

PowerShell を使用して、プール内でリソースがどのように使用されているかを判断できます。

プール内のインスタンスの一覧を取得するには、Get-AzSqlInstance を使用します。

$instancePool | Get-AzSqlInstance

プール リソース配分状況を取得するには、Get-AzSqlInstancePoolUsage を使用します。

$instancePool| Get-AzSqlInstancePoolUsage

ExpandChildren パラメーターを追加して、プールとその内部のインスタンスの詳細な概要を取得できます。

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

インスタンス内のデータベースを一覧表示するには、Get-AzSqlInstanceDatabase を使用します。

$databaseParams = @{
    InstanceName = $instance01Name
    ResourceGroupName = $resourceGroupName
}

$databases = Get-AzSqlInstanceDatabase @databaseParams

Note

プールにデプロイされたインスタンスとインスタンス プールあたりのデータベースの制限をチェックするには、リソースの制限を確認します。

インスタンス プールを更新する

PowerShell または Azure CLI を使用して、既存のインスタンス プールの設定を更新できます。

PowerShell を使用して、インスタンス プールの制限を変更できます。

次のサンプル スクリプトでは、ライセンスの種類、仮想コアのサイズ、ハードウェアの種類を変更します。

ライセンスの種類を変更します。

$instancePoolParams = @{
    LicenseType = "BasePrice"
    VCores = 16
    ComputeGeneration = "Gen8"
}
$instancePool | Set-AzSqlInstancePool @instancePoolParams

使用可能なメンテナンス期間のスケジュールを決定することもできます。

$parameters = @{
    Location = $location
    MaintenanceScope = "SQLManagedInstance"
}
 
$configurations = Get-AzMaintenancePublicConfiguration @parameters
$maintenanceWindowOptions = $configurations | Where-Object { $_.Location -eq $location -and $_.MaintenanceScope -eq "SQLManagedInstance" }

その後、期間オプションを指定してメンテナンス期間を変更できます。例を次に示します。

$instancePoolParams = @{
    MaintenanceConfigurationId = $maintenanceWindowOptions[1].Id
}

$instancePool | Set-AzSqlInstancePool @instancePoolParams

プールされたインスタンスを更新する

プール リソースの制限を超えていない場合は、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

インスタンス プールの操作

次の表は、使用可能なインスタンス プール操作を示しています。

command Azure portal PowerShell Azure CLI
インスタンス プールを作成する はい イエス はい
プールのプロパティの更新する いいえ イエス はい
プールの使用とプロパティを確認する はい イエス はい
インスタンス プールを削除する はい イエス はい
プール内に新しいマネージド インスタンスを作成する はい イエス はい
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 インスタンス プールの使用状況に関する情報を返します。

プール内のインスタンスと単一インスタンスの両方に関連する操作では、標準のマネージド インスタンス コマンドを使用しますが、プール内のインスタンスでこれらのコマンドを使用する場合は、"インスタンス プール名" プロパティを設定する必要があります。

制限事項

パブリック プレビュー中、プール内のインスタンスには次の制限があります。

  • プール名に使用できるのは、小文字、数字、ハイフンのみで、先頭をハイフンにすることはできません。
  • プール内のすべてのインスタンスは、同じライセンス モデルを使用します。 プールのライセンス モデルとは異なるインスタンスのライセンス モデルを指定すると、プールのライセンス モデルが使用されます。 インスタンスがプールから移動されると、完全な有料ライセンス (LicenseType = 'LicenseIncluded') に自動的に切り替わります。 ライセンス モデルを変更するには、Azure ハイブリッド特典またはハイブリッド フェールオーバー権限の特典を手動でアクティブ化します。
  • プールされたインスタンスは、同じサブネットとリソース グループに属している必要があります。 プールとの間でのインスタンスの移動は、プールのサブネットと同じリソース グループ内でのみ可能です。
  • General Purpose サービス レベルのみが、Standard シリーズ (Gen5) またはプレミアム シリーズのハードウェアで使用できます。 Next-gen General Purpose、Business Critical サービス レベルとプレミアム シリーズのメモリ最適化ハードウェアは使用できません。
  • プール内のインスタンスの最大数は 40 です。
  • インスタンス プールは、プール内のすべてのインスタンスが削除されるか、プールから移動された後にのみ削除できます。
  • Azure portal で次のことを行うことはできません。
    • インスタンス プールを構成します。 PowerShell または Azure CLI を使用してください。
    • プール内外にインスタンスを移動します。 PowerShell または Azure CLI を使用してください。
  • インスタンスがプール内にある場合、次の SQL Managed Instance 機能はサポートされません。

サポート リクエスト

Azure portal でインスタンス プールのサポート要求を作成および管理します。

Azure portal で新しいサポート リクエストを作成するには、次の手順に従います。

  1. Azure portal で [新規サポート リクエスト] ページを開きます。

  2. [新規サポート リクエスト] に次の情報を入力します。

    1. [問題の種類] には Technical を選択します。
    2. ドロップダウン リストから適切なサブスクリプションを選択します。
    3. [サービスの種類] には SQL Managed Instance を選択します。
    4. [リソース] で、SQL Managed Instance が存在する場合は名前を指定します。または、プール内にインスタンスをデプロイできない場合は [一般的な質問] を選択します。
    5. [概要]instance pools と入力します。
    6. [問題の種類]Create, Scale, Stop, Start, or Delete Resources を選択します。
    7. [問題のサブタイプ]Instance Pools を選択します。

    Azure portal のインスタンス プール サポート リクエストのスクリーンショット。

  3. サポート リクエストを [作成] できるようになるまで、続きのページで [次へ] を選択します。

インスタンス プールの有無にかかわらず、より大きな SQL Managed Instance のデプロイを作成するには、より大きなリージョン クォータを取得することが必要な場合があります。 詳細については、「Azure SQL Database のクォータの増加を要求する」を参照してください。 インスタンス プールのデプロイ ロジックによって "プール レベルでの" 仮想コアの合計消費量がご利用のクォータと比較され、そのクォータをさらに増やすことなく新しいリソースの作成を許可するかどうかが決定されます。