インスタンス プールとは Azure SQL Managed Instance -
適用対象: Azure SQL Managed Instance
この記事では、Azure SQL Managed Instance のインスタンス プールのデプロイ オプションの概要について説明します。これにより、コスト削減のメリットが大幅に得られます。
インスタンス プールを使用すると、共有リソースを使用しながら複数のインスタンスをデプロイできます。これは、計算量が多くはない小規模なワークロードを大規模な SQL Managed Instance に統合することなく、SQL Server インスタンスから複数のデータベースを移行するための便利でコスト効率の高いインフラストラクチャを提供します。
開始するには、「インスタンス プールの作成」を確認してください。
概要
Azure SQL Managed Instance のインスタンス プールを使用すると、共有リソースを持つ複数のインスタンスを、仮想クラスター 内の 1 つの基になる仮想マシンにデプロイできます。
インスタンス プールには、次のような主な利点があります。
- インスタンス プール内でのみ使用できる 2 仮想コア インスタンスをホストする機能
- 予測可能で高速なインスタンスのデプロイ時間 (最大 5 分)。
- 複数の SQL Server インスタンスを移行するときのコスト削減インフラストラクチャ。
次の図は、仮想ネットワーク サブネットの仮想クラスターに複数の Managed Instance がデプロイされているインスタンス プールを示しています。
新機能
2024 年 11 月から、次の機能をご利用いただけます。
- Azure portal でのプールの作成、プール内でのインスタンスの作成、プールの構成設定の変更。
- PowerShell または Azure CLI を使用した、プールの構成設定 (コンピューティング サイズ、ライセンス、プロパティなど) の更新。
- Premium シリーズ ハードウェアのサポート。
- PowerShell または Azure CLI を使用した、プール内外へのインスタンスの移動。
- 予約容量の価格に関するインスタンス プールのサポート。
Architecture
インスタンス プールは、単一の Managed Instance と同様のアーキテクチャを備えています。 Azure 仮想ネットワーク内のデプロイ をサポートし、お客様に分離とセキュリティを提供するため、インスタンス プールでは 仮想クラスター にも依存しています。 仮想クラスターは、お客様の仮想ネットワーク サブネット内にデプロイされている分離された仮想マシンの専用セットを表します。 同じサブネット内のすべての単一インスタンスとインスタンス プールは、同じ仮想クラスターに属します。 プール内のインスタンスには、SQL Server プロセスとゲートウェイ コンポーネントに割り当てられたコンピューティング リソースがあり、予測可能なパフォーマンスが保証されます。 最初にプールがデプロイされた後は、既にプロビジョニングされているコンピューティング リソースに SQL プロセスが作成されるため、プール内のインスタンスに対する管理操作が高速になります。
仮想マシンのコンピューティング サイズは、プールに割り当てられた仮想コアの合計数に基づきます。これはプール内のインスタンス間で分散されます。 このアーキテクチャを使用すると、仮想マシンを複数のインスタンスに パーティション分割できます。この場合、2 個の仮想コアを含むサポート対象の任意のサイズに分割できます (インスタンス プール専用)。 たとえば、8 仮想コアのインスタンス プールをデプロイする場合は、2 つの 2 仮想コアと 1 つの 4 仮想コアのインスタンスをデプロイできます。 その後、SQL Server データベースをプール内のインスタンスに移行できます。 インスタンス プールはネイティブな仮想ネットワーク統合をサポートしているため、複数のインスタンス プールのほか、複数の単一インスタンスを同じサブネットにデプロイできます。
各インスタンスには基になるホスト仮想マシン上にある専用の仮想コアが付与されるため、インスタンス プールは高レベルの分離を実現します。 インスタンス プール デプロイ モデルと単一のマネージド インスタンスの主な違いは、インスタンス プールでは、同じ仮想マシン内に複数の SQL Server プロセスを作成できることです。これは、Windows ジョブ オブジェクトを使用して管理されるリソースです。 プロセス レベルの分離が不十分な場合は、インスタンス プールではなく単一インスタンスを使用することを検討してください。単一インスタンスには、仮想マシン ノード上の単一の SQL Server プロセスしかなく、これで VM レベルの分離が実現するためです。
次の図は、2 つのデプロイ モデル間の主なアーキテクチャの違いを示しています。
アプリケーションのシナリオ
インスタンス プールは次のような用途に適しています。
- インスタンスが 2 仮想コアまたは 4 仮想コアの 小規模な SQL Server インスタンスのグループ の同時移行。
- 迅速で予測可能なインスタンスの作成またはスケーリング が必要です。 たとえば、インスタンスレベルの機能を必要とするマルチテナント型の SaaS アプリケ―ション環境に新しいテナントをデプロイする場合です。
- "固定費" または "使用制限" があることが重要です。 たとえば、固定サイズ (またはほとんどサイズが変化しない) の共有の開発/テストまたはデモ環境を実行していて、必要に応じてマネージド インスタンスを定期的にデプロイする場合です。
インスタンス プールは、複数の SQL Server インスタンスの移行に特に適しています。すべての移行要件に従って共有コンピューティング リソースを事前プロビジョニングすると、移行後の総保有コストが削減されるためです。 たとえば、4 つの小規模なオンプレミス SQL Server インスタンスを Azure SQL Managed Instance に移行するシナリオを考えます。 インスタンス プールがない場合は、それぞれ 4 つ以上の仮想コアを持つ 4 つの個別の単一 SQL Managed Instance をプロビジョニングし、すべて独自の専用リソースを使用します。 インスタンス プールを使用すると、2 つの仮想コアを持つすべてのインスタンスをプールにデプロイでき、プールでリソースを共有できるため、このコストを削減できます。
インスタンスとプールのプロパティ
次のプロパティは、プール内のすべてのインスタンスのプール レベルで構成されます。
- ハードウェア層
- Azure ハイブリッド特典などの SQL Server ライセンス
- メンテナンス期間
さらに、以下を検討してください。
- プール内に作成された Managed Instance では、単一の Managed Instanceで利用可能な同じ互換性レベルと機能がサポートされます。
- オプションの機能、または特定の値 (インスタンスレベルの照合順序、タイム ゾーン、データ トラフィックのパブリック エンドポイント、フェールオーバー グループなど) を選択する必要がある機能は、インスタンス レベルで構成され、プール内のインスタンスごとに異なる場合があります。
- プールにデプロイされたインスタンスは同じ仮想マシンを共有するため、セキュリティ リスクが高い機能を無効にするか、これらの機能 (CLR 統合、ネイティブなバックアップと復元、データベース メールなど) へのアクセス許可を厳格に制御することを検討してください。
- プールに追加する前または後に Microsoft Entra 認証を使用するように SQL Managed Instance を構成できます。
- プールにデプロイされたすべてのマネージド インスタンスには、個別の SQL Server エージェントがあります。
リソース制限
プールにインスタンスをデプロイする場合、プールされた各インスタンスには制限があり、プール全体で使用されるリソースには制限があります。
次の表では、プールされたインスタンスとプールの両方の制限について詳しく説明します。
プールの制限 | プールされたインスタンスの制限 | |
---|---|---|
サービス レベル | 汎用 | 汎用 |
ハードウェア層 | Standard シリーズ (Gen5) Premium シリーズ |
Standard シリーズ (Gen5) Premium シリーズ |
仮想コアの数1 | 8-16-24-32-40-64-80 | 2-4-8-16-24-32-40-64-80 |
最大ストレージ容量 | 32 TB2 | - 2 個の仮想コアの場合は 640 GB - 4 個の仮想コアの場合は 2 TB - 8個の仮想コアの場合は 8 TB - 16 以上の仮想コアの場合は 16 TB |
最大データベース数 | 500 | - 2 個の仮想コアの場合は 50 - 4 以上の仮想コアの場合は 100 |
最大インスタンス数 | 40 | 該当なし |
1 プールされたインスタンスの仮想コア オプションは、インスタンス プール内の使用可能な仮想コアの数によって異なります。
2 プールのストレージ上限は、プール内のすべてのインスタンスのストレージの合計によって決まります。
その他すべてのインスタンス レベルの制限については、「リソース制限」を確認してください。
パフォーマンスに関する考慮事項
プール内の Managed Instance には専用の仮想コアと RAM がありますが、ローカル ディスク (tempdb
のため) とネットワーク リソースを共有します。 可能性は低いですが、プール内の複数のインスタンスでリソース消費量が同時に増加すると、"ノイジー ネイバー" (うるさい隣人) の影響を受ける可能性があります。
この動作が発生している場合は、プールのサイズを大きくするか、消費量の多いリソースをプール外の単一インスタンスとして再デプロイすることを検討してください。
インスタンス プールの課金
インスタンス プールを使用すると、コンピューティングとストレージを個別にスケーリングできます。 次の料金を支払います。
- プールに割り当てられたコンピューティング (仮想コア単位)
- ギガバイト単位で測定されたすべてのインスタンスに関連付けられているストレージ (最初の 32 GB は、すべてのインスタンスに対して無料です)。
プールの仮想コア価格は、そのプールにデプロイされているインスタンスの数に関係なく課金されます。 プール内の個々のインスタンスに対して、異なる価格オプションを設定することはできません。 プール内のすべてのインスタンスは、同じライセンス モデルを使用する必要があります。 プールのライセンス モデルは、プールの作成後に変更できます。
コンピューティング価格 (仮想コア単位) は、SQL Server ライセンス価格を全額支払っているかどうかによって異なります。 次の 2 つの価格オプションが使用できます。
- ライセンス込み: SQL Server ライセンスの料金が含まれます。
- Azure ハイブリッド特典: SQL Server 向けの Azure ハイブリッド特典 を含む割引価格。 お客様は、ソフトウェア アシュアランス付きの既存の SQL Server ライセンスを使用してこの価格を選択することができます。
インスタンス プールの価格の詳細については、SQL Managed Instance の価格のページで "インスタンス プール" のセクションを参照してください。
Note
開発テスト特典の対象となるサブスクリプション でインスタンス プールを作成すると、Azure SQL Managed Instance で最大 55% の割引料金が自動的に受けられます。
予約容量価格
予約容量を使用すると、リソースの価格を事前に決められた期間予約するときに大幅な割引が得られるため、コンピューティング コストを節約できます。 インスタンス プールに予約容量を割り当てることができるようになりました。これにより、最もコスト効率に優れた方法で複数のインスタンスを実行できます。
制限事項
詳細については、インスタンス プールの制限事項 を確認してください。