Azure SQL Database の DNS エイリアス
適用対象: Azure SQL データベース
Azure Synapse Analytics
Azure SQL Database にはドメイン ネーム システム (DNS) サーバーが用意されています。 PowerShell と REST API では、論理 SQL サーバー名の DNS エイリアスの作成や管理を行う呼び出しを使用できます。
"DNS エイリアス" はサーバー名の代わりとして使用できます。 クライアント プログラムで接続文字列内にエイリアスを使用することができます。 DNS エイリアスには、クライアント プログラムを別のサーバーにリダイレクトする変換レイヤーがあります。 このレイヤーによって、ユーザーはすべてのクライアントとその接続文字列を特定して編集するという面倒な作業が不要になっています。
注意
Azure Synapse Analytics では、Azure SQL 論理サーバーの DNS エイリアスは、専用 SQL プール (旧称 DW) でのみサポートされています。 Azure Synapse ワークスペース内の専用 SQL プールの場合、DNS エイリアスは現在サポートされていません。 違いは何でしょうか。
DNS エイリアスの一般的な使用法には、次のようなものがあります。
- サーバーに覚えやすい名前を付ける。
- 初期開発の時点ではエイリアスでテスト サーバーを参照する。 アプリケーションの運用を開始するときに運用サーバーを参照するようエイリアスを変更する。 テストから運用に移行するために、サーバーに接続する複数のクライアントの構成に変更を加える必要はありません。
- アプリケーションのデータベースが 1 つだけ別のサーバーに移動された場合、 エイリアスを変更するだけでよく、複数のクライアントの構成を変更する必要はありません。
- リージョンの停止時には、geo リストアを使用して、データベースを別のサーバーおよびリージョンで復旧します。 既存のエイリアスを変更して新しいサーバーを参照することで、既存のクライアント アプリケーションはサーバーに再接続できます。
インターネットのドメイン ネーム システム (DNS)
インターネットも DNS を使用しています。 この DNS によりフレンドリ名がサーバーの名前に変換されます。
1 つの DNS エイリアスを使用するシナリオ
システムを新しいサーバーに切り替える必要がある場合、 以前であれば、クライアント プログラムごとにすべての接続文字列を特定して更新する必要がありました。 しかし、接続文字列で DNS エイリアスを使用していれば、エイリアス プロパティを 1 つ更新するだけで済みます。
Azure SQL Database の DNS エイリアス機能は、次のようなシナリオで役立ちます。
テストから運用への移行
クライアント プログラム開発の開始時に、接続文字列で DNS エイリアスを使用します。 エイリアスのプロパティがサーバーのテスト版を参照するよう設定します。
その後、新しいシステムの運用を開始する場合に、運用サーバーを参照するようにエイリアスのプロパティを更新することができます。 クライアント プログラムを変更する必要はありません。
複数のリージョンへの対応
ディザスター リカバリーによって、サーバーが別の地理的リージョンに移動される場合があります。 システムで DNS エイリアスを使用していれば、すべてのクライアントのすべての接続文字列を見つけて更新する必要がなくなります。 代わりに、Azure SQL Database をホストする新しいサーバーを参照するようにエイリアスを更新します。
DNS エイリアスのプロパティ
サーバーの各 DNS エイリアスには次のプロパティが適用されます。
- 一意の名前: 作成する各エイリアス名は、サーバー名の場合と同様、すべてのサーバーで一意である必要があります。
- サーバーが必要: DNS エイリアスは 1 つのサーバーを正確に参照していないと作成できません。また、サーバーはあらかじめ存在している必要があります。 エイリアスを更新した場合も、常に 1 つの既存サーバーを正確に参照していなければなりません。
- サーバーを削除すると、そのサーバーを参照するすべての DNS エイリアスも Azure システムによって削除されます。
- どのリージョンにもバインドされない: DNS エイリアスはリージョンにバインドされません。 どの DNS エイリアスも任意のリージョンに存在する地理的サーバーを参照するよう更新できます。
- ただし、別のサーバーを参照するようエイリアスを更新する際は、両方のサーバーが同じ Azure サブスクリプションに存在する必要があります。
- 権限: DNS エイリアスを管理するユーザーには、サーバー共同作成者権限以上の権限が必要です。 詳細については、Azure portal における Azure ロールベースのアクセス制御の基礎に関するページを参照してください。
DNS エイリアスの管理
DNS エイリアスをプログラムによって管理できるように、REST API と PowerShell コマンドレットの両方が用意されています。
DNS エイリアスを管理するための REST API
REST API に関するドキュメントは、Web 上の次の場所で入手できます。
また、REST API については、GitHub の次の場所でも確認できます。
DNS エイリアスを管理するための PowerShell
注意
この記事では、Azure と対話するために推奨される PowerShell モジュールである Azure Az PowerShell モジュールを使用します。 Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
重要
PowerShell Azure Resource Manager モジュールは引き続きサポートされますが、今後の開発はすべて Az.Sql モジュールを対象に行われます。 これらのコマンドレットについては、「AzureRM.Sql」を参照してください。 Az モジュールと AzureRm モジュールのコマンドの引数は実質的に同じです。
REST API を呼び出す PowerShell コマンドレットを使用できます。
DNS エイリアスを管理するために使用されている PowerShell コマンドレットのコード例が次の場所で確認できます。
コード例で使用されているコマンドレットは次のとおりです。
- New-AzSqlServerDnsAlias: Azure SQL Database サービス システムに新しい DNS エイリアスを作成します。 このエイリアスはサーバー 1 を参照します。
- Get-AzSqlServerDnsAlias: サーバー 1 に割り当てられているすべての DNS エイリアスを取得して一覧表示します。
- Set-AzSqlServerDnsAlias: エイリアスによって参照されるように構成されているサーバー名を、サーバー 1 から サーバー 2 に変更します。
- Remove-AzSqlServerDnsAlias: エイリアスの名前を使用して、サーバー 2 から DNS エイリアスを削除します。
制限事項
DNS エイリアスには、現在、次の制限事項があります。
- 最大 2 分の遅延: DNS エイリアスの更新または削除に最大 2 分かかります。
- ただし、遅延の有無にかかわらず、エイリアスは元のサーバーへのクライアント接続の参照を直ちに停止します。
- DNS の参照: 現時点では、特定の DNS エイリアスが参照しているサーバーを確認する正式な方法は、DNS の参照の実行だけです。
- DNS エイリアスには名前付けの制限事項があります。
関連リソース
- Azure SQL Database によるビジネス継続性の概要。ディザスター リカバリーについても解説しています。
- Azure REST API リファレンス
- サーバー DNS エイリアス API