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