SQL リソース プロバイダー用のホスティング サーバーを追加する
重要
Azure Stack Hub ビルド 2108 以降では、アクセスが許可されているサブスクリプションに SQL と MySQL リソース プロバイダーが提供されます。 この機能の使用を開始する場合、または以前のバージョンからアップグレードする必要がある場合は、サポート ケースを開くと、サポート エンジニアがデプロイまたはアップグレード プロセスを説明します。
SQL リソース プロバイダーがインスタンスに接続できる限り、Azure Stack Hub 内の仮想マシン (VM) 上、または Azure Stack Hub 環境の外部にある VM 上で、SQL Server データベース ホスティング サーバーを作成できます。
Note
SQL リソース プロバイダーは既定のプロバイダー サブスクリプションに作成する必要がありますが、SQL ホスティング サーバーは課金対象のユーザー サブスクリプションに作成する必要があります。 リソース プロバイダー サーバーは、ユーザー データベースをホストするためには使用しないでください。
概要
SQL ホスティング サーバーを追加する前に、次の必須要件と一般要件を確認します。
必須要件
- SQL Server インスタンス上で SQL 認証を有効にします。 SQL リソース プロバイダー VM は、ドメインに参加していないため、SQL 認証を使用してホスティング サーバーに接続することのみ可能です。
- Azure Stack Hub にインストールするときに、SQL インスタンスの IP アドレスをパブリックとして構成します。 リソース プロバイダーとユーザー (Web アプリなど) は、ユーザー ネットワーク経由で通信します。そのため、このネットワーク上の SQL インスタンスへの接続が必要です。
一般的な要件
- SQL インスタンスは、リソース プロバイダーとユーザー ワークロードでのみ使用されるようにする必要があります。 他のコンシューマーが使用中の SQL インスタンスは使用できません。 この制限は、App Services にも適用されます。
- ホスティング サーバーとして構成する 1 つの VM に複数の SQL Server インスタンスがある場合、それぞれの SQL Server インスタンスに一意の IP または FQDN が必要です。 ホスティング サーバーと同じ IP または FQDN を共有する、複数の SQL Server インスタンスを構成することはサポートされていません。
- リソース プロバイダー用に、適切な特権レベルが設定されたアカウントを構成します (下記参照)。
- SQL インスタンスとそのホストの管理は、ご自身で行う必要があります。 たとえば、リソース プロバイダーは、更新プログラムの適用、バックアップの処理、または資格情報のローテーションの処理は行いません。
SQL Server VM のイメージ
Marketplace 管理機能により、SQL IaaS VM イメージを使用できます。 これらのイメージは、Azure で使用できる SQL VM と同じです。
Marketplace 項目を使用して SQL VM をデプロイする前に、必ず SQL IaaS 拡張機能の最新バージョンをダウンロードしてください。 IaaS 拡張機能や対応するポータル拡張機能により、修正プログラムの自動適用やバックアップなどの追加機能が提供されます。 この拡張機能の詳細については、SQL Server Agent 拡張機能を使用した Azure VM での管理タスクの自動化に関する記事を参照してください。
Note
SQL IaaS 拡張機能は、Marketplace にあるすべての SQL on Windows イメージに "必須" です。この拡張機能をダウンロードしなかった場合、VM のデプロイは失敗します。 これは、Linux ベースの SQL VM イメージでは使用されません。
SQL VM のデプロイには、Azure Stack Hub Quickstart Gallery 内のテンプレートなどのその他の選択肢もあります。
Note
マルチノードの Azure Stack Hub にインストールされるホスティング サーバーは、既定のプロバイダー サブスクリプションではなくユーザー サブスクリプションから作成する必要があります。 ユーザー ポータル、または適切にログインされた PowerShell セッションから作成する必要があります。 すべてのホスティング サーバーが課金対象の VM であり、適切な SQL ライセンスが必要です。 サービス管理者は、そのサブスクリプションの所有者になることが "できます"。
必要な特権
SQL sysadmin より低い特権を持つ管理者ユーザーを作成できます。 そのようなユーザーには、次の操作のためのアクセス許可だけが必要です。
- データベース: 作成、変更、含有 (Always On のみ)、ドロップ、バックアップ
- 可用性グループ: データベースの変更、結合、追加/削除
- ログイン: 作成、選択、変更、ドロップ、取り消し
- 操作の選択: [master].[sys].[availability_group_listeners] (AlwaysOn), sys.availability_replicas (AlwaysOn), sys.databases, [master].[sys].[dm_os_sys_memory], SERVERPROPERTY, [master].[sys].[availability_groups] (AlwaysOn), sys.master_files
追加のセキュリティに関する情報
次の情報は、追加のセキュリティに関するガイダンスを提供します。
- すべての Azure Stack Hub ストレージは BitLocker を使用して暗号化されているので、Azure Stack Hub 上のどの SQL インスタンスも暗号化された Blob ストレージを利用します。
- SQL リソース プロバイダーは、TLS 1.2 を完全にサポートします。 SQL RP を通じて管理される SQL Server はすべて、TLS 1.2 "のみ" に対して構成されており、RP は既定でこれに設定されることを確認します。 サポートされているすべてのバージョンの SQL Server は、TLS 1.2 をサポートしています。 詳細については、「Microsoft SQL Server 用の TLS 1.2 のサポート」を参照してください。
- SQL Server 構成マネージャーを使用して、SQL Server へのすべての通信が常に暗号化されるように ForceEncryption オプションを設定します。 詳細については、「暗号化された接続を強制するサーバーを構成するには」を参照してください。
- クライアント アプリが、暗号化された接続で通信することも確認します。
- RP は、SQL Server インスタンスで使用される証明書を信頼するように構成されています。
スタンドアロンのホスティング SQL Server に接続して容量を提供する
SQL Server 2014、SQL Server 2016、または SQL Server 2019 の任意のエディションを使って、スタンドアロン (非 HA) の SQL Server を使用できます。 sysadmin 特権を持つアカウントの資格情報があることを確認してください。
既に設定されているスタンドアロンのホスティング サーバーを追加するには、次の手順を実行します。
Azure Stack Hub 管理ポータルにサービス管理者としてサインインします。
[すべてのサービス]>[管理リソース]>[SQL Hosting Servers]\(SQL ホスティング サーバー\) を選択します。
[SQL Hosting Servers]\(SQL ホスティング サーバー\) では、リソース プロバイダーのバックエンドとして機能する SQL Server のインスタンスに SQL リソース プロバイダーを接続できます。
[追加] をクリックし、[Add a SQL Hosting Server]\(SQL ホスティング サーバーの追加\) ブレードで、SQL Server インスタンスの接続の詳細を指定します。
重要
デプロイ中に SQL リソース プロバイダーのインストーラーによって作成されたリソース グループ
system.<region>.sqladapter
は選択しないでください。 スタンドアロン ホスティング サーバー用に別のリソース グループを用意する必要があります。必要に応じて、インスタンス名を指定します。また、インスタンスが既定のポート 1433 に割り当てられていない場合は、ポート番号を指定します。
Note
ユーザーと管理者の Azure Resource Manager が SQL インスタンスにアクセスできる限り、SQL インスタンスをリソースプロバイダーの管理下に置くことができます。 SQL インスタンスは、リソース プロバイダーに排他的に割り当てる 必要があります。
サーバーを追加するときは、追加するサーバーを既存の SKU に割り当てるか、または新しい SKU を作成する必要があります。 [Add a Hosting Server]\(ホスティング サーバーの追加\) の下で、[SKU] を選択します。
既存の SKU を使用するには、使用可能な SKU を選択してから、[作成] を選択します。
SKU を作成するには、[+ Create new SKU]\(+ 新しい SKU の作成\) を選択します。 必要な情報を [Create SKU]\(SKU の作成\) に入力し、[OK] を選択します。
SQL Always On 可用性グループを使用して高可用性を提供する
SQL Always On インスタンスを構成するには、追加の手順が必要であり、3 つの VM (または物理マシン) が必要です。この記事では、Always On 可用性グループについて既に十分に理解していることを前提としています。 詳細については、次の記事をご覧ください。
Note
SQL アダプター リソース プロバイダーは、Always On 可用性グループに対して SQL 2016 SP1 Enterprise 以降のインスタンス のみ をサポートします。 このアダプターの構成には、自動シード処理などの SQL の新機能が必要です。
自動シード処理
SQL Server のインスタンスごとに各可用性グループで自動シード処理を有効にする必要があります。
すべてのインスタンスで自動シード処理を有効にするには、次の SQL コマンドを編集し、セカンダリ インスタンスごとにプライマリ レプリカで実行します。
ALTER AVAILABILITY GROUP [<availability_group_name>]
MODIFY REPLICA ON '<secondary_node>'
WITH (SEEDING_MODE = AUTOMATIC)
GO
可用性グループは角かっこで囲む必要があります。
セカンダリ ノードで、次の SQL コマンドを実行します。
ALTER AVAILABILITY GROUP [<availability_group_name>] GRANT CREATE ANY DATABASE
GO
包含データベース認証を構成する
包含データベースを可用性グループに追加する前に、その可用性グループの可用性レプリカをホストする各サーバー インスタンスで、 contained database authentication のサーバー オプションが 1 に設定されていることを確認してください。 詳細については、包含データベース認証サーバー構成オプションを参照してください。
これらのコマンドを使用して、包含データベース認証サーバー オプションをインスタンスごとに設定します。
EXEC sp_configure 'contained database authentication', 1
GO
RECONFIGURE
GO
SQL Always On ホスティング サーバーを追加するには
Azure Stack Hub 管理ポータルにサービス管理者としてサインインします。
[参照]>[管理リソース]>[SQL Hosting Servers]\(SQL ホスティング サーバー\)>[+ 追加] の順に選びます。
[SQL Hosting Servers]\(SQL ホスティング サーバー\) では、リソース プロバイダーのバックエンドとして機能する SQL Server の実際のインスタンスに SQL Server リソース プロバイダーを接続できます。
SQL Server インスタンスの接続詳細をフォームに入力します。 Always On リスナーの FQDN アドレス (および必要に応じてポート番号とインスタンス名) を必ず使用してください。 sysadmin 特権で構成したアカウントの情報を提供します。
重要
デプロイ中に SQL リソース プロバイダーのインストーラーによって作成されたリソース グループ
system.<region>.sqladapter
は選択しないでください。 スタンドアロン ホスティング サーバー用に別のリソース グループを用意する必要があります。SQL Always On 可用性グループ ボックスのインスタンスのサポートを有効にするには、[Always On 可用性グループ] ボックスをオンにします。
SKU に SQL Always On インスタンスを追加します。
重要
同じ SKU にスタンドアロン サーバーと Always On インスタンスを混在させることはできません。 最初のホスティング サーバーを追加した後に型を混在させようとすると、エラーになります。
SKU に関する注意
使用する SKU 名は、SKU 内のサーバーの機能 (容量やパフォーマンス) を示すものにしてください。 この名前は、該当する SKU にユーザーがデータベースをデプロイするときの助けになります。 たとえば、SKU 名を使用して、サービス内容を次の特性によって区別することもできます。
- 大容量
- ハイ パフォーマンス
- 高可用性
ベスト プラクティスとして、SKU 内のすべてのホスティング サーバーに同じリソースとパフォーマンス特性を持たせてください。
特定のテナントに対して SKU を非表示にしたり、特定のテナント専用にしたりすることはできません。
SKU はポータルに表示されるまで最大 1 時間かかることがあります。 SKU の作成が完了するまで、ユーザーはデータベースを作成できません。
SKU を編集するには、[すべてのサービス]>[SQL アダプター]>[SKU] に移動します。 変更する SKU を選択し、必要な変更を加えた後、[保存] をクリックして変更を保存します。
不要になった SKU を削除するには、[すべてのサービス]>[SQL アダプター]>[SKU] に移動します。 SKU 名を右クリックし、[削除] を選択して削除します。
重要
新しい SKU がユーザー ポータルで使用可能になるまでに最大で 1 時間かかることがあります。
ユーザーが SQL データベースを使用できるようにする
ユーザーが SQL データベースを使用できるようにするプランとオファーを作成します。 プランに Microsoft.SqlAdapter サービスを追加し、新しいクォータを作成します。
重要
ユーザー ポータルで新しいクォータが使用可能になるまで、または変更されたクォータが適用されるまでに最大で 2 時間かかることがあります。
Note
クォータを使用する現在のプランがある場合、そのクォータは削除できません。 まず、クォータを参照しているプランを削除する必要があります。