SQL Managed Instance について調べる

完了

多くの組織は最初に IaaS サービスを使用して Azure に移行しますが、PaaS (サービスとしてのインフラストラクチャ) サービスを使用することで、さらなる利点が得られます。 また、SQL Server がサービスによって実行されるため、そのインストールや修正を行う必要がなくなります。 整合性チェックとバックアップも管理サービスの一部です。これには、PaaS サービスの一部であるセキュリティおよびパフォーマンス ツールが含まれます。

Azure SQL Managed Instance は、オンプレミスのエコシステムとほぼ 100% 互換性のある完全に機能する SQL Server インスタンスです。 これには、SQL Agent、tempdb へのアクセス、データベース間クエリ、共通言語ランタイム (CLR) などの機能が含まれます。 このサービスでは、Azure SQL Database と同じインフラストラクチャを使用していて、自動バックアップ、自動パッチ適用、組み込みの高可用性など、PaaS サービスの恩恵をすべて受けられます。

Azure SQL Managed Instance の機能

Azure SQL Managed Instance では、オンプレミスのバックアップからの復元が可能で、既存のアプリケーションを簡単な方法で移行できます。 単一データベース構造を中心として設計された Azure SQL Database と異なり、SQL Managed Instance では SQL Server インスタンス全体が提供されます。最大 100 個のデータベースを利用可能で、システム データベースにアクセスできます。 SQL Managed Instance では、データベース間クエリ、共通言語ランタイム (CLR) など、Azure SQL Database で利用できないその他の機能を使用できます。また、msdb システム データベースと一緒に、SQL Agent の使用が可能です。

オプション

Azure SQL Managed Instance を作成する際に利用できるサービス レベルは、Business Critical と General Purpose の 2 つで、Azure SQL Database の仮想コア モデル (マネージド インスタンスは仮想コア モデルを使用して購入されます) と同じです。 2 つのレベルには最小限の機能の違いがあります。主な 2 つは、Business Critical にはインメモリ OLTP が備わっており、読み取り可能なセカンダリがあることです。これらはどちらも General Purpose レベルでは利用できません。 どちらのレベルでも同じ水準の可用性が得られ、ストレージとコンピューティングを独立して構成できます。

リンク機能は、SQL Server インスタンスから Azure SQL Managed Instance にデータベースをレプリケートするハイブリッド機能を提供します。 リンク機能では、Always On 可用性グループのテクノロジで利用できる分散型可用性グループの概念を使用して、データをレプリケートします。 トランザクション ログ レコードは、分散型可用性グループの一部としてレプリケートされます。

プライマリ インスタンスのトランザクション ログ レコードは、セカンダリ インスタンスにレプリケートされるまで切り捨てることはできません。 定期的なトランザクション ログ バックアップにより、プライマリ インスタンスの領域が不足するリスクが軽減されます。

リンク機能はハイブリッド ディザスター リカバリー ソリューションとしても使用できます。このソリューションでは、任意の場所にホストされている SQL Server データベースを、SQL Managed Instance で実行されているデータベースにフェールオーバーできます。 同様に、リンク機能を使用して、読み取り専用のセカンダリ データベースを SQL Database SQL Managed Instance に提供して、集中的な読み取り専用操作をオフロードできます。

Azure SQL Managed Instance のリンク機能を構成する方法の詳細については、リンク機能の環境の準備 (Azure SQL Managed Instance) に関するページを参照してください。

インスタンス プール (プレビュー)

インスタンス プールは、比較的小規模な SQL Server インスタンスをクラウドに移行するための費用対効果に優れた手段です。 Azure に移行する場合、より小さなデータベースを大規模なマネージド インスタンスに統合する代わりに、ガバナンスとセキュリティの計画を追加する必要があります。インスタンス プールを使用すると、移行リソースと要件の合計に基づいてリソースを事前にプロビジョニングできます。

インスタンス プール機能を使用すると、最大 5 分の高速なデプロイ時間が提供されます。これは、デプロイ期間が重要なシナリオに適したオプションです。 また、プール内のすべてのインスタンスは同じ仮想マシンを共有し、IP 割り当ての合計はデプロイされたインスタンスの数に依存しません。

SQL Managed Instance のインスタンス プールをデプロイする方法については、「インスタンス プールに Azure SQL Managed Instance をデプロイする」を参照してください。

高可用性

Azure SQL Managed Instance は PaaS サービスに支えられているため、製品に高可用性が組み込まれています。 スタンドアロンの SQL Managed Instance は、1 年あたり最長で 52.60 分のダウンタイムを保証する、99.99% のサービス レベル アグリーメント (SLA) を提供します。 アーキテクチャは General Purpose の Azure SQL Database と同じで、ストレージ レプリケーションを使用して可用性を実現します (Business Critical では複数のレプリカを使用)。

バックアップ

Azure SQL Managed Instance では、自動バックアップも自動的に構成されます。 Azure SQL Managed Instance と Azure SQL Database の主な違いの 1 つは、MI を使用するとデータベースのコピーのみのバックアップを手動で作成できるという点です。 ローカル ストレージへのアクセスは許可されないため、URL にバックアップする必要があります。 長期保有 (LTR) を構成して、最長で 10 年間 geo 冗長 Azure BLOB ストレージに自動バックアップを保有することもできます。

データベースのバックアップは Azure SQL Database と同じスケジュールで行われます。 これらのスケジュールは調整できません。

  • 完全 - 週に 1 回
  • 差分 - 12 時間ごと
  • トランザクション ログ - トランザクション ログの使用に応じて 5 から 10 分ごと

Azure SQL マネージド インスタンスへのデータベースの復元も、Azure SQL Database でのプロセスと同様です。 使用できるもの:

  • Azure portal
  • PowerShell
  • Azure CLI

ただし、復元時にはいくつかの制限があります。 あるインスタンスから別のインスタンスに復元するためには、両方のインスタンスが同一の Azure サブスクリプション、および同一の Azure リージョン内に存在する必要があります。 さらに、マネージド インスタンス全体の復元はできず、復元できるのは、その SQL Managed Instance 内の個別のデータベースのみです。

Azure SQL Database と同様に、既存のデータベースの上に復元することはできません。 バックアップから既存のデータベースを復元する前に、それをドロップするか、名前を変更する必要があります。 SQL Managed Instance はフル機能の SQL Server インスタンスであるため、Azure SQL Database では不可能な RESTORE コマンドを実行できます。 ただし、PaaS サービスであるため、次のようないくつかの制限があります。

  • URL エンドポイントから復元する必要があります。 ローカル ドライブへのアクセス権はありません。
  • (データベースの指定に加えて) 次のオプションを使用できます。
    • FILELISTONLY
    • HEADERONLY
    • LABELONLY
    • VERIFYONLY
  • 複数のログ ファイルが含まれているバックアップ ファイルは復元できません
  • 複数のバックアップ セットが含まれているバックアップ ファイルは復元できません
  • インメモリまたは FILESTREAM が含まれているバックアップは復元できません

既定では、マネージド インスタンス内のデータベースは、Transparent Data Encryption (TDE) を使用して Microsoft マネージド キーによって暗号化されます。 ユーザーによって開始されるコピーのみのバックアップを作成するには、特定のデータベースの TDE を無効にする必要があります。 データベースが暗号化されても、それを復元できますが、データベースの暗号化に使用された証明書または非対称キーへのアクセス権を持っている必要があります。 これらの 2 つのアイテムのうち、いずれかがないと、データベースを SQL Managed Instance に復元することはできません。

障害復旧

Azure SQL Managed Instance には、ディザスター リカバリーを実装するための手段として自動フェールオーバー グループが用意されています。 この機能では、特定のデータベースだけでなく、マネージド インスタンス全体、およびその中に含まれているすべてのデータベースを保護します。 このプロセスでは、Azure SQL Managed Instance からセカンダリにデータが非同期的にレプリケートされます。ただし現在、これはプライマリ コピーのペア Azure リージョンに制限されており、可能なレプリカは 1 つのみです。

Azure SQL Database とほぼ同様に、自動フェールオーバー グループでは読み取り/書き込みおよび読み取り専用のリスナー エンドポイントが提供されます。これにより、接続文字列の管理が容易になります。 フェールオーバーがある場合、アプリケーションの接続文字列が自動的に適切なインスタンスにルーティングされます。 これらのエンドポイントは、Azure SQL Database とほぼ同じですが、わずかに異なる形式 (<fog-name>.zone_id.database.windows.net whereas Azure SQL Database is in the <fog-name>.secondary.database.windows.net 形式) に従っています。

プライマリおよびセカンダリの各マネージド インスタンスは、同じ DNS ゾーン内に配置される必要があります。 この配置により、同じフェールオーバー グループ内の 2 つのインスタンスのいずれかとの間で、クライアント接続認証に同一のマルチドメイン証明書を使用できるようになります。 Azure portal、PowerShell、Azure CLI などのさまざまな方法を通じて "DNS ゾーン パートナー" を指定できます。

Azure SQL Managed Instance の新機能については、「Azure SQL Managed Instance の新機能」を参照してください。