Azure環境で高パフォーマンスを発揮!Azure DNSの機能とは?

Webシステムを構築する際に欠かせないのがDNS。Microsoft Azure(以下、Azureと呼びます。)環境にももちろんDNSが存在します。Azure環境のDNSサーバーはDNSゾーン毎に4つずつ割り当てられ、高い可用性を実現し、SLAでは有効なDNS要求の時間における名前解決の応答が100%保証されています。通信方式としてクライアントに一番近いDNSサーバーが応答するエニーキャストを採用し、応答時間の短縮を実現しています。プライベートDNSドメインもサポートしているので、仮想環境を使った独自ドメインが構築可能です。ただし、仮想ネットワークに対応したフル機能のDNSソリューションが必要な場合は、追加でサードパーティDNSサービスなどの契約が必要となります。

今回はAzure環境でのWebサイト運用に欠かせないAzure DNSについて解説します。

Azure DNSとは

Azure DNSは、Azureの通信基盤を使用した名前解決機能です。通信方式にはエニーキャストが使用されており、最も近いDNSサーバーが応答するため高速なレスポンスがユーザーに提供されます。エニーキャストとは、分散配置されたDNSサービスを提供するサーバーのうち、データを最も近いあて先に送信することができるルーティング手法で、最近では他のDNSサービスでも使用されています。またAzureを既に利用していれば、余計な手続きなしで誰でもすぐにAzure DNS機能を利用できます。Azureを使用しているならばAzure DNSを使用しない手はないでしょう。

さらに、Azure Resource Managerとの連携により、ロールベースのアクセス制御、監査ログ、リソースロックなど利用可能となります。

ドメインとレコードはAzure portal、Azure Power Shellコマンドレット、およびAzure CLIを使用して管理できます。なお、DNSの自動管理を必要とする場合は、REST API(REST Application Program Interface)とSDK(Software Development Kit)が必要です。

Azure DNSの機能とメリット

ここからはAzure DNSの機能やメリットを順番にみていきましょう。

他の通信方式を採用するDNSに比べて高パフォーマンス

先述のとおりAzure DNSは、エニーキャストが通信方式として採用されていて、最短距離のDNSサーバーが応答するため、他の通信方式と比べて応答時間の短縮化を実現しています。

Azure Resource Managerとの連携

Azure Resource Managerと連携することで、ユーザーのリソース変更の監視やトラブル時のエラー発見支援、リソースのロックなどが可能です。

DNSの管理自動化に対応

REST APIおよびSDKを使用すれば、DNSの管理を自動化できます。自動化により、定型的な作業の効率化を推し進めることが可能です。

プライベートDNSドメインもサポート

Azureが提供するドメイン名だけでなく、独自ドメイン名も利用できます。独自ドメイン名を利用するためだけにサードパーティのDNSソリューションを契約する必要はありません。

自動で関連レコードを変更

IPアドレスなどの設定変更は自動的にレコードへ反映されます。例えば、削除されたIPアドレスに関連するレコードは自動的に削除されるなど、レコードの更新ミスによるトラブルを未然に防げます。

仮想ネットワーク間の名前解決機能を提供

プライベートDNSゾーンは仮想ネットワーク間で共有でき、仮想ネットワークのピアリングなどが円滑に行えます。

水平分割DNS機能を提供

水平分割ビューでプライベートDNSゾーンとパブリックDNSゾーンのドメイン名を共有することができます。これにより、同じ DNS ゾーンのクライアントの存在場所 (Azure 内、インターネット上など) に応じた、名前解決動作を行うなど、システムの情報セキュリティを高められます。

エイリアスレコードをサポート

Azure DNSでは、IPアドレスに対して特殊な別名URLを付加できます。

一般的なDNSではCNAMEレコードでエイリアス設定をするのですが、CNAMEレコードの名前解決では別名URLから本来のURLへ一度変換し、さらにURLからIPアドレスへの変換という2段階の名前解決が必要になります。

エイリアス(alias)レコードでは別名URL→IPアドレスの1段階変換で済むため、CNAMEレコードよりもパフォーマンスに優れていると言えます。また、エイリアスレコードをサポートしているため、ゾーンのapexにも別ドメイン名をつけられます。apexは直訳すると「頂上」という意味で、たとえばexample.comゾーンであれば、example.comがapexです。

apexにCNAMEレコードを使用してしまうと、DNSの仕様上、他のレコードと共存できなくなります。しかしエイリアスレコードで別名を設定すれば他のレコードとも共存できるのです。長いサブドメインなしでも目的のWebサイトへルーティングさせたい時などに活用できます。

なお、エイリアスレコードに登録されたIPアドレスが変更・削除された場合には、レコード内容も自動的に変更・削除されるので、余計な管理や作業は不要です。

DNSネームサーバーからの応答を保証

Azure DNSのSLAでは、有効なDNS要求に対してAzure DNSネームサーバーのうち少なくとも1つからの応答を保証しています。名前解決においてトラブルが発生することは少ないといえるでしょう。

他のDNSサービスとのドメイン共同ホスティングをサポート

ユーザードメインのNSレコードへ他DNSサービスのDNSサーバーを登録することにより、ほかのDNSサービスとの共同ホスティングも可能となります。システム要件で他のDNSサービスとの連携が必須の場合でも対応できます。

Azure DNSネームサーバーはデュアルスタック

デュアルスタックとは、IPv4アドレスとIPv6アドレス両方に対応していることを意味します。近年ではIPv4が枯渇し、IPv6への移行が進行中です。Azure DNSは、IPv4アドレスとIPv6アドレス両方に対応しています。

ゾーンはリソースグループ間またはサブスクリプション間で移動可能

サブスクリプション間でゾーンを移動しても、DNSクエリへの影響はありません。ゾーンに割り当てられたネームサーバーも変更されません。

強固なAzure基盤による高い可用性

Azureは、企業規模を問わず、ワールドワイドな企業のシステムで利用されている、複数のサービスを継続的に提供するための強固なインフラ基盤でありサービス基盤です。Azure DNSも同様にAzureの基盤上で運用されており、先述のSLAでの保証などからうかがえるように、高い可用性を誇ります。

Azure DNSを使用するうえでの注意点

ここまでAzure DNSの特徴やメリットをお伝えしてきましたが、Azure DNSには使用するうえでの注意点もあります。ここでは、その注意点について順番にみていきましょう。

基本機能だけでは仮想ネットワークのフル機能のDNSとはならない

Azure DNSの基本機能だけでは、仮想ネットワークに対応したフル機能のDNSソリューションは提供できません。AzureプライベートDNSや、サードパーティのDNSサービスを使用しなければならない場面もあるでしょう。たとえば、後述するDNSSECはAzure DNSではサポートされていません。システム要件としてDNSSEC対応が必須の場合は、サードパーティのDNSサービスとの連携が必須です。

4つのAzure DNSネームサーバーすべてへのドメイン委譲が必要

Azure DNSのSLAを満たすためには、ドメインの管理を4個すべてのネームサーバーに委譲する(任せる)必要があります。この委譲は、DNSゾーン毎に行われることが必須です。

Azureでのドメイン購入はできない

Azure内ではドメイン購入サービスは提供されていません。しかし独自にドメインを購入すれば、Azure DNSで独自ドメインのレコードを問題なく管理できます。

DNSSECはサポートされない

DNSSEC(Domain Name System Security Extensions)では、電子署名の仕組みを応用し、名前解決の応答について下記3点の検証がされます。

  • 問い合わせた本来の権威ネームサーバーからの応答か
  • パケット内容が改ざんされていないか
  • 問い合わせたレコードが存在するか

このDNSSECはAzure DNSではサポートされていません。しかし、アプリケーションで常にHTTPS/TLSを使用することによりDNSSECの必要性を減らせます。システム要件上でどうしてもDNSSECが必須の場合は、サードパーティ製DNSと連携しての運用が必須です。

Azure DNSでは、静的なDNSドメインのみサポート

IPアドレスを動的に変更する動的DNSドメインはサポートされていません。

ゾーン転送はサポートされていない

直接のゾーン転送はサポートしていませんが、DNSゾーンをAzure CLIを使用してAzure DNSにインポートすることは可能です。

エイリアスレコード数は20に制限

リソースあたりのエイリアスレコードセット数は20に制限されています。

国際化ドメイン名はPunycodeでエンコードすることが必須

IDN(IDN:Internationalized Domain Name)を構成するには、ゾーン名またはレコードセット名を独自にPunycodeへ変換する必要があります。現在、Azure DNSではPunycodeに対する組み込みの変換機能はサポートされていません。

既存DNSレコードの変更反映は60秒程度の時間が必要

DNSキャッシュなどの仕様により、デフォルトの設定では既存DNSレコードの変更反映には60秒程度の時間が必要です。DNSキャッシュ期間を制御したい場合は、各レコードのTime-To-Live(TTL)プロパティを使用しましょう。

SPFレコードはTXTレコードタイプで指定する

SPF(Sender Policy Framework)レコードは、ドメイン名を使って電子メールの送信メールサーバーを指定できます。ゾーンファイルをインポートする場合、SPFレコードタイプを使用しているとTXTレコードタイプに自動的に変換されます。

その他の制限

その他の細かい制限内容は以下の通りです。

制限内容 制限値
サブスクリプションあたりのパブリックDNSゾーン数 250
パブリックDNSゾーンあたりのレコードセット数 10,000
パブリックDNSゾーン内のレコードセットあたりのレコード数 20
サブスクリプションあたりのプライベートDNSゾーン数 1,000
プライベートDNSゾーンあたりのレコードセット数 25,000
プライベートDNSゾーン用のレコードセットあたりのレコード数 20
プライベートDNSゾーンあたりの仮想ネットワークリンク数 1,000
自動登録が有効なプライベートDNSゾーンあたりの仮想ネットワークリンク数 100
自動登録が有効な状態で仮想ネットワークがリンクできるプライベートDNSゾーンの数 1
仮想ネットワークがリンクできるプライベートDNSゾーンの数 1,000
1秒あたりに仮想マシンからAzure DNSリゾルバーに送信されるDNSクエリの数(個々の仮想マシンごと) 500
仮想マシンごとのキューに登録された(保留中の応答)DNSクエリの最大数(個々の仮想マシンごと) 200

Azure DNSの料金

Azure DNSの料金は、AzureでホストされているDNSゾーンの数と、受信したDNSクエリの数に基づきます。詳しくは公式サイトの料金表でご確認ください。

価格 - DNS | Microsoft Azure(Microsoft Azure公式ページ)
https://azure.microsoft.com/ja-jp/pricing/details/dns/別ウィンドウで開きます

AzureでWebサイトを運用するならAzure DNSが最適!

Azure DNSは4つのDNSサーバーで高い可用性を実現しています。SLAで名前解決の応答は100%保証されております。また、エニーキャストで応答時間の短縮化を実現しており、仮想環境を使った独自のドメインを構築が可能です。

Azure上のWebサイトやシステムのパフォーマンスを向上させさせたい場合には、Azure DNSを検討してみてください。

移行準備段階で知っておくべきMicrosoft Azureの
サービスを学び、具体的にクラウド検討を考える!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る