Azure Arc 対応 SQL Managed Instance を使用してマネージド データベース サービスをデプロイする

完了

Azure Arc 対応 SQL Managed Instanceは、任意のインフラストラクチャにデプロイできる SQL Server エンジンを利用する Azure SQL サービスです。

Azure SQL との比較

Azure SQL は、Azure インフラストラクチャにデプロイされるデータベース サービスのファミリです。

Azure 仮想マシンにおける SQL Server

この Azure SQL デプロイ オプションを使用すると、選択したバージョンの完全にライセンスされた SQL Server 製品を、Windows または Linux 上で実行できます。 ユーザーはゲスト仮想マシン内のすべてを管理し、Microsoft はインフラストラクチャを管理します。 このオプションは、サービスとしてのインフラストラクチャ (IaaS) と呼ばれています。

Azure SQL Managed Instance

この Azure SQL デプロイ オプションを使用すると、プレインストールされたバージョンレスの SQL Server インスタンスが、完全な管理サービスとして提供されます。 ユーザーは、SQL Server エンジン インスタンスのほぼ 100% の機能にアクセスできます。 インスタンスをホストするために必要なプラットフォームとインフラストラクチャのすべての側面が、Microsoft によって管理されます。 このオプションは、サービスとしてのプラットフォーム (PaaS) の例です。

Azure SQL Database

この Azure SQL デプロイ オプションでは、プレインストールされたバージョンレスの SQL Server を利用する組み込みの SQL Server データベースが、完全な管理サービスとして提供されます。 データベースはユーザーが管理しますが、基になる SQL インスタンス、プラットフォーム、インフラストラクチャは Microsoft によって管理されます。 このオプションも、サービスとしてのプラットフォーム (PaaS) の例です。

Azure Arc 対応 SQL Managed Instance

Azure Arc 対応 SQL Managed Instance は、Azure SQL Managed Instance に似ています。 同様の機能と管理機能を備えています。 Azure Arc 対応 SQL Managed Instance の目的は、Azure と同じサービスとしてのプラットフォーム (PaaS) 機能とエクスペリエンスを提供しながら、お客様が Kubernetes プラットフォームを使用してインフラストラクチャを選択して管理できるようにすることです。

機能の比較

Azure Arc 対応 SQL Managed Instance の機能を理解するには、そのコア機能、デプロイ オプション、Azure との統合を調べることが重要です。

コア機能

Azure Arc 対応 SQL Managed Instance は SQL Server エンジンが基になっているので、SQL Server および Azure SQL Managed Instance とほぼ 100% 互換性のあるコア インスタンス機能が提供されます。 インスタンスには、互換性のある T-SQL 言語インターフェイスと、セキュリティ、パフォーマンス、可用性のすべての機能が含まれています。 Azure Arc 対応 SQL Managed Instance の機能について詳しくは、Microsoft のドキュメントをご覧ください。

Azure SQL Managed Instance と同様に、Azure Arc 対応 SQL Managed Instance をデプロイすると、プレインストールされたバージョンレスの SQL Server を利用できるようになります。 Azure Arc 対応 SQL Managed Instance では、Microsoft Container Registry (MCR) のコンテナー イメージが使用されます。

Azure SQL Managed Instance では、ゲートウェイ サーバーを使用して、基になる接続の詳細からアプリケーションが抽象化されます。 また、Azure Arc 対応 SQL Managed Instance では、Kubernetes LoadBalancer または NodePort サービスを使用して接続の抽象化も提供されます。

サービス階層

Azure SQL Managed Instance と同様に、サービス レベルと呼ばれる 2 つのデプロイ オプションを使用して、Azure Arc 対応 SQL Managed Instance をデプロイできます。

  • General Purpose - 名前が示すように、このサービス レベルはほとんどのワークロード用です。 このサービス レベルには、コアやメモリなどのリソースに制限がありますが、Kubernetes と共有ストレージによる組み込みの基本的な高可用性が用意されています。 General Purpose レベルのインスタンスは、SQL Server Standard Edition でサポートされている機能に対応します。

  • Business Critical - このサービス レベルは、最高のパフォーマンスと最高レベルの可用性を必要とするワークロード向けに設計されています。 このサービス レベルにはメモリやコアに関する制限はなく、可用性グループを使用して高可用性と読み取りスケールアウトが提供されます。Business Critical レベルのインスタンスは、SQL Server Enterprise Edition でサポートされている機能に対応します。

どちらのサービス レベルもコア単位で請求されますが、Azure ハイブリッド特典ライセンスと開発者オプションを無料で使用する機能も含まれます。 現在、Business Critical サービス レベルはプレビュー段階にあるので、使用料金は発生しません。 サービス レベルについて詳しくは、Microsoft のドキュメントをご覧ください。

Azure の統合

Azure SQL Managed Instance をデプロイするときに、課金、使用状況、メトリック、ログを Azure と統合できます。 さらに、ポータルなどの Azure インターフェイスを使用して、Azure SQL Managed Instance をデプロイおよび構成できます。

Azure Arc 対応 SQL Managed Instance の Azure との統合は、使用する接続モードによって異なります。

Azure との統合は、直接接続モードでは、Azure Arc エージェントと Azure Arc データ コントローラーによって自動的に処理されます。 デプロイと構成には、Azure portal などの Azure インターフェイスを使用できます。

間接接続モードを使用する場合は、課金のために最小限のデータを Azure に送信する必要があります。 必要に応じて、メトリックやログなどのデータをエクスポートできます。 Azure portal によるデプロイと構成は、間接接続モードではサポートされていません。 ただし、Azure CLI や kubectl などのインターフェイスを、デプロイと構成に使用できます。

管理機能の比較

Azure Arc 対応 SQL Managed Instance はマネージドサービスなので、管理機能を Azure SQL Managed Instance と比較するのに便利です。 次のセクションでは、バージョンレス エンジン、デプロイと構成、監視、高可用性、ディザスター リカバリー、移行機能を比較します。

バージョンレス

Azure SQL Managed Instance を使用する利点の 1 つは、SQL Server、オペレーティング システム、すべてのプラットフォーム ソフトウェアに、パッチや更新プログラムを適用する必要がないことです。 Azure SQL Managed Instance 用のエンジンは、SQL Server のようなメジャー バージョンの概念がないため、"バージョンレス" と呼ばれることがよくあります。 インスタンスは、ソフトウェア パッチや新機能のために、必要に応じて常に更新されます。

Azure Arc 対応 SQL Managed Instance でもバージョンレス エンジンが使用されているので、更新されたコンテナー イメージを通じて、必要に応じて更新プログラムを自動的に適用できます。 Kubernetes の機能を使用して新しいコンテナーを停止および開始することで、可用性が維持されます。

デプロイと構成

Azure Arc 対応 SQL Managed Instance のデプロイは、Azure SQL Managed Instance とよく似た簡単な宣言型プロセスです。 Azure Arc 対応 SQL Managed Instance をデプロイするときは、サービス レベル、コアとメモリの制限、ストレージ クラスの仕様、SQL 構成オプション (SQL Server エージェント、照合順序、トレース フラグなど) を指定できます。

直接接続モードでは、Azure portal を使用して Azure Arc 対応 SQL Managed Instance をデプロイできます。 間接接続モードでは、Azure CLI (arcdata 拡張機能を使用)、kubectl、または Azure Data Studio を使用して、Azure Arc 対応 SQL Managed Instance をデプロイできます。

SQL インスタンスの外部については、Azure portal を使用して直接接続モードで Azure Arc 対応 SQL Managed Instance を構成することもできます。 どちらの接続モードでも、Azure CLI または kubectl を使用して、SQL インスタンスの外部でオプションを構成できます。

SQL インスタンスの内部では、sp_configure、ALTER SERVER CONFIGURATION、ALTER DATABASE などの標準の SQL Server インターフェイスを使って、インスタンスとデータベースのオプションを構成できます。

監視

Azure SQL Managed Instance と同様に、Azure Monitor を使用して Azure Arc 対応 SQL Managed Instance の主要なメトリックを監視できます。 クラスター内のローカル環境では、ノードまたは SQL インスタンスに Grafana ダッシュボードの組み込み監視を使用することもできます。

Azure Arc 対応 SQL Managed Instance のログは、Azure portal で Log Analytics を使用して確認できます。 クラスター内のローカル環境では、組み込みログを Kibana で使うこともできます。

Azure Arc 対応 SQL Managed Instance は SQL Server に基づいているため、標準の ERRORLOG ファイルを使って、SQL エラーとインスタンスの詳細を見ることができます。 また、Azure Arc 対応 SQL Managed Instance では、利用可能なすべての動的管理ビュー (DMV) と拡張イベントもサポートされています。

高可用性

Azure Arc 対応 SQL Managed Instance のような管理サービスを使用する利点の 1 つは、高可用性が組み込まれていることです。 Azure SQL Managed Instance と同様に、高可用性を実現するために使用される方法はサービス レベルによって異なります。

General Purpose サービス レベルでは、Kubernetes StatefulSets の組み込みの高可用性が共有ストレージと共に使用されます。

Business Critical サービス レベルの場合は、Kubernetes StatefulSets と SQL Server Always On 可用性グループのレプリカの組み合わせを使用して、組み込みの高可用性が提供されます。 可用性グループのレプリカは、自動的にデプロイされて、ユーザー用に構成されます。 Azure SQL Managed Instance と同様に、読み取り専用レプリカを使用して読み取りワークロードをオフロードできます。 master や model などのシステム データベースは、可用性グループの一部です。 SQL Agent ジョブなどのシステム レベルのオブジェクトは、フェールオーバー イベントの後で自動的に使用できるようになります。

Kubernetes LoadBalancers と NodePorts によって、インスタンスがクラスター内で移動する必要があるアプリケーションの接続の抽象化が提供されます。 さらに、Business Critical サービス レベルに対しては、読み取り専用の接続抽象化ポイントが提供されます。

Microsoft によって Azure SQL Managed Instance の完全なプラットフォームとインフラストラクチャが管理されるため、ユーザーはサービス レベル アグリーメント (SLA) の恩恵を受けられます。 Azure Arc 対応 SQL Managed Instance の場合はお客様がインフラストラクチャを管理する必要があるため、SLA はお客様によって管理および所有されます。

障害復旧

Azure SQL Managed Instance と同様に、Azure Arc 対応 SQL Managed Instance でも、ポイントインタイム リストアなどの自動バックアップ システムがデータベースに提供されます。 ユーザーは、手動で COPY_ONLY バックアップを実行でき、いつでもそれを復元できます。

ユーザーは、必要な回復ポイントの目標 (RPO) と保持期間を構成できます。 これらの設定により、トランザクション ログ バックアップの作成頻度とバックアップの保持期間が決まります。

Azure SQL Managed Instance には、Azure Storage を使用してバックアップの冗長性が組み込まれています。 Azure Arc 対応 SQL Managed Instance のユーザーは、SQL のバックアップに使用される特定の Kubernetes ストレージ クラスを構成できますが、冗長性のニーズには自分で対応する必要があります。

移行

Azure Arc 対応 SQL Managed Instance では SQL Server エンジンが使用されるため、データベースのバックアップと復元を使用して、既存の SQL Server のバージョンを移行できます。 データベースの復元は、Azure Storage から直接行うことも、SQL Managed Instance 用のコンテナーにローカル バックアップをコピーすることで行うこともできます。

Azure Arc 対応 SQL Managed Instance 用のインターフェイス

Azure Arc 対応 SQL Managed Instance でのインスタンスの管理とアプリケーションの構築には、次のインターフェイスを使用できます。

SQL Server Management Studio (SSMS)

SQL Server Management Studio (SSMS) は、Azure Arc 対応 SQL Managed Instance のクエリの実行と管理に対して完全に互換性があります。

Azure Data Studio (ADS)

Azure Data Studio (ADS) は、Azure Arc 対応 SQL Managed Instance のクエリと管理を実行できるマルチプラットフォーム ツールです。 ADS では、T-SQL および T-SQL ノートブックを使用したクエリがサポートされています。 また、ADS Azure Arc 拡張機能を使用して、データ コントローラー、SQL Managed Instance、PostgreSQL サーバー (プレビュー) などの Azure Arc 対応データ サービス リソースを作成し、管理することもできます。

SQL コマンドライン ツール

Azure Arc 対応 SQL Managed Instance では、sqlcmd や bcp などの SQL コマンドライン ツールがサポートされています。

Azure portal

直接接続モードを使用している場合は、Azure portal から Azure Arc 対応データ サービスを作成、表示、管理できます。 また、間接接続モードを使用してデータをアップロードした場合は、Azure Arc 対応 SQL Managed Instance の詳細を Azure portal で見ることができます。

Azure CLI

マルチプラットフォームの Azure コマンド ライン インターフェイス (CLI) で arcdata 拡張機能を使用して、SQL Managed Instance などの Azure Arc 対応データ サービスを作成、表示、管理できます。 Azure CLI による Azure Arc 対応 SQL Managed Instance のデプロイは、間接接続モードでのみ使用できます。 Azure CLI は、間接接続モードを使って課金、メトリック、ログをアップロードするための主要なインターフェイスです。

kubectl

マルチプラットフォームの kubectl コマンド ライン インターフェイス (CLI) を使用して、SQL Managed Instance などの Azure Arc 対応データ サービスを作成、表示、管理できます。 Azure Arc 対応 SQL Managed Instance では Azure CLI ツールを使用するのが推奨されるコマンド ライン インターフェイスですが、yaml ファイルと kubectl を使用してリソースを作成および管理することもできます。 kubectl による Azure Arc 対応 SQL Managed Instance のデプロイは、間接接続モードでのみ使用できます。 ポイントインタイム リストアの既定の構成の編集など、kubectl を使用する必要があるシナリオがいくつかあります。

SQL ドライバー

アプリケーションでサポートされている任意の SQL Server ドライバーを使用して、Azure Arc 対応 SQL Managed Instance に接続し、クエリを実行することができます。 ドライバーのサポートは、C#、Java、Node.js、PHP、Python、Ruby などの一般的なプログラミング言語に含まれています。

自分の知識をチェックする

1.

AlwaysOn 可用性グループを使用してレプリカにより高可用性が提供されるサービス レベルはどれですか?

2.

Azure Arc 対応 SQL Managed Instance の課金、メトリック、ログは、間接接続モードを使用して Azure portal で見ることができます。

3.

ユーザーが Azure Arc 対応 SQL Managed Instance の自動バックアップを構成するには、どのオプションを使用しますか?

4.

Azure Arc 対応 SQL Managed Instance を管理するために使用できるツールはどれですか?