
AWS入門 初心者が覚えておくべきAWSの基本
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サーバーが応答するため高速なレスポンスがユーザーに提供されます。エニーキャストとは、分散配置された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 Resource Managerと連携することで、ユーザーのリソース変更の監視やトラブル時のエラー発見支援、リソースのロックなどが可能です。
REST APIおよびSDKを使用すれば、DNSの管理を自動化できます。自動化により、定型的な作業の効率化を推し進めることが可能です。
Azureが提供するドメイン名だけでなく、独自ドメイン名も利用できます。独自ドメイン名を利用するためだけにサードパーティのDNSソリューションを契約する必要はありません。
IPアドレスなどの設定変更は自動的にレコードへ反映されます。例えば、削除されたIPアドレスに関連するレコードは自動的に削除されるなど、レコードの更新ミスによるトラブルを未然に防げます。
プライベート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アドレスが変更・削除された場合には、レコード内容も自動的に変更・削除されるので、余計な管理や作業は不要です。
Azure DNSのSLAでは、有効なDNS要求に対してAzure DNSネームサーバーのうち少なくとも1つからの応答を保証しています。名前解決においてトラブルが発生することは少ないといえるでしょう。
ユーザードメインのNSレコードへ他DNSサービスのDNSサーバーを登録することにより、ほかのDNSサービスとの共同ホスティングも可能となります。システム要件で他のDNSサービスとの連携が必須の場合でも対応できます。
デュアルスタックとは、IPv4アドレスとIPv6アドレス両方に対応していることを意味します。近年ではIPv4が枯渇し、IPv6への移行が進行中です。Azure DNSは、IPv4アドレスとIPv6アドレス両方に対応しています。
サブスクリプション間でゾーンを移動しても、DNSクエリへの影響はありません。ゾーンに割り当てられたネームサーバーも変更されません。
Azureは、企業規模を問わず、ワールドワイドな企業のシステムで利用されている、複数のサービスを継続的に提供するための強固なインフラ基盤でありサービス基盤です。Azure DNSも同様にAzureの基盤上で運用されており、先述のSLAでの保証などからうかがえるように、高い可用性を誇ります。
ここまでAzure DNSの特徴やメリットをお伝えしてきましたが、Azure DNSには使用するうえでの注意点もあります。ここでは、その注意点について順番にみていきましょう。
Azure DNSの基本機能だけでは、仮想ネットワークに対応したフル機能のDNSソリューションは提供できません。AzureプライベートDNSや、サードパーティのDNSサービスを使用しなければならない場面もあるでしょう。たとえば、後述するDNSSECはAzure DNSではサポートされていません。システム要件としてDNSSEC対応が必須の場合は、サードパーティのDNSサービスとの連携が必須です。
Azure DNSのSLAを満たすためには、ドメインの管理を4個すべてのネームサーバーに委譲する(任せる)必要があります。この委譲は、DNSゾーン毎に行われることが必須です。
Azure内ではドメイン購入サービスは提供されていません。しかし独自にドメインを購入すれば、Azure DNSで独自ドメインのレコードを問題なく管理できます。
DNSSEC(Domain Name System Security Extensions)では、電子署名の仕組みを応用し、名前解決の応答について下記3点の検証がされます。
このDNSSECはAzure DNSではサポートされていません。しかし、アプリケーションで常にHTTPS/TLSを使用することによりDNSSECの必要性を減らせます。システム要件上でどうしてもDNSSECが必須の場合は、サードパーティ製DNSと連携しての運用が必須です。
IPアドレスを動的に変更する動的DNSドメインはサポートされていません。
直接のゾーン転送はサポートしていませんが、DNSゾーンをAzure CLIを使用してAzure DNSにインポートすることは可能です。
リソースあたりのエイリアスレコードセット数は20に制限されています。
IDN(IDN:Internationalized Domain Name)を構成するには、ゾーン名またはレコードセット名を独自にPunycodeへ変換する必要があります。現在、Azure DNSではPunycodeに対する組み込みの変換機能はサポートされていません。
DNSキャッシュなどの仕様により、デフォルトの設定では既存DNSレコードの変更反映には60秒程度の時間が必要です。DNSキャッシュ期間を制御したい場合は、各レコードのTime-To-Live(TTL)プロパティを使用しましょう。
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ゾーンの数と、受信したDNSクエリの数に基づきます。詳しくは公式サイトの料金表でご確認ください。
価格 - DNS | Microsoft Azure(Microsoft Azure公式ページ)
https://azure.microsoft.com/ja-jp/pricing/details/dns/
Azure DNSは4つのDNSサーバーで高い可用性を実現しています。SLAで名前解決の応答は100%保証されております。また、エニーキャストで応答時間の短縮化を実現しており、仮想環境を使った独自のドメインを構築が可能です。
Azure上のWebサイトやシステムのパフォーマンスを向上させさせたい場合には、Azure DNSを検討してみてください。
移行準備段階で知っておくべきMicrosoft Azureの
サービスを学び、具体的にクラウド検討を考える!