「DNS(Domain Name System)」はインターネットには欠かせない技術です。IPアドレスをドメインに紐づけることによって、数字が並んでいるIPアドレスを「http:www.◯◯.com」といった、住所のような分かりやすい文字列に置き換えます。
このDNSはDNSサーバーによって管理されていますが、このサーバーがないとWebサイトもメールも利用することができません。DNSサーバーを仲介してIPアドレスはドメインに置き換えられ、DNSサーバーにはドメインをIPアドレスに置き換えるための情報が保管されています。
Azureには、利用する企業のDNSをアプリケーションとともにホストできる「Azure DNS」というサービスがあります。他のドメインサービスを利用しなくても、Azureの資格情報や支払い方法、サポート契約を使ってドメインを管理できます。
ここでは、Azure DNSの概要、メリット、料金、プライベートDNSについて解説します。
Azure DNSの概要
Azure DNSは、Azureでドメインをホストできるサービスです。ドメインと聞くと、ドメインを登録ならびに販売している事業者を思い浮かべるかもしれません。しかし、Azure DNS自体では現在、ドメインを販売していません。最初に基本知識を確認します。
DNSドメインとDNSゾーンの違い
基本的な知識ですが、Azure DNSでは「DNSゾーン」を提供しています。これはDNSドメインとは異なります。
DNSドメインは、たとえば「nantoka.com」のように、ドメインネームシステム内のユニークな名前をいいます。DNSゾーンは、特定のドメインのレコードをホストするために用いられるものです。したがって、メールサーバー用の「mail. nantoka.com」やWebサイト用の「www.nantoka.com」も含まれます。Azure DNSではDNSゾーンをホスト可能で、上記のようなDNSレコードの管理ができます。
Azure DNSではDNSドメインを購入しなくても、DNSゾーンを作成できます。ただし、グローバルDNS階層にリンクする場合は、ドメイン名の購入が必要です。ドメイン名を購入することによって、世界中からDNSクエリを実行できるようになります。現在、Azure DNSではドメイン名を購入することができないため、ドメイン名を登録する事業者から別途購入する必要があります。
Azure DNSのメリット
すぐに利用できて高速であること、高い可用性と使いやすさを備えていること、セキュリティの面でも安全な運用ができることの3つがAzure DNSの主なメリットです。
高速であること
Azure DNSはIP Anycastを使用しています。したがって、複数のノードで1つのIPアドレスを共有して、サーバーの分散配置が可能になります。それぞれのDNSクエリは最も近くのネームサーバーを自動的に経由して、高速のパフォーマンスと高い可用性を実現します。DNSサーバーを増やすことにより、災害やDoSによる障害を局所的に抑えることができます。また、新しいDNSレコードの追加時にもAzure DNSネームサーバーは数秒で更新され、更新されたDNSを利用するために長い時間、待機する必要がありません。
高い可用性を備えていること、使いやすいこと
マイクロソフトのDNSサーバーによるグローバルネットワークを利用しているため、DNSが常に利用できる状態にあって安心です。利用に合わせて拡張可能で、冗長化によって障害が発生しても継続的な利用ができるようにサポートします。
ドメインとレコードの管理においても、使いやすいことがメリットです。Azure portal、Azure PowerShellのコマンドレット、Azure CLIで管理が可能で、アプリケーションの自動管理はREST APIまたはSDKによって統合できます。
Azure Portalに統合されているため、他のAzureサービスと同様の資格、サポート契約、課金を利用して、一括したコスト管理ができます。課金はホストされたDNSゾーンの数と、受信したDNSクエリの数から計算されます。
セキュリティの面で安全な運用ができること
Azure Resource Managerによって、組織内におけるロールベースのアクセス制御、アクティビティログによる利用者の監視やエラーの抽出、重要なリソースを誤って削除や変更などできないようにするリソースのロックが可能で、ヒューマンエラーの発生を防ぎます。
DNSファイアーウォールを採用する傾向が高まっています。DNSファイアーウォールをデプロイすると、仮想ネットワークのフィッシングやデータ漏えいなどのリスクを軽減することもできます。仮想マシンを最新の状態に保ち、マルウェアなどに感染したリスクの高いワークロードを分離します。最新の脅威に対応して、DNSサーバーを防御します。
Azure DNS Private Zonesとは
Azure DNSはパブリックDNSのほか、プライベートDNSもサポートしています。プライベートDNSは「Azure DNS Private Zones」というサービス名で呼ばれますが、低コストであること、メンテナンスの負荷が軽減されていることがメリットです(管理プレビュー中)。Azureを使い慣れた開発者であれば、Azure SDK、Azure API、Azure CLI 、Azure PowerShellを使って、DevOpsのワークフローとも統合できます。
Azure DNS Private Zonesでは、Azureで提供されるドメイン名ではなく、独自のカスタムドメイン名を使用できるため、組織のニーズに合わせて最適な仮想ネットワークを構成する場合に便利です。A(AAAA)、ゾーンファイルに別名を付けたCNAME、配送先メールサーバーを記述したMX、IPアドレスに対応するドメイン名が記述されたPTRのほか、SOA、SRV、TXTなど一般的なDNSレコードの種類が使用できます。
これまで仮想ネットワーク内のプライベートDNSを管理するためには、カスタムのDNSソリューションを利用しなければなりませんでした。しかし、Azure DNSでは特別なソリューションは必要ありません。カスタムのDNS レコードをホストすると同時に指定された仮想ネットワーク内のVMのホスト名レコードを自動的に維持し、使用するドメイン名を最適化します。
レコード単位でテーブルを分割する水平分割ビューによってゾーン名を構成して、プライベートDNSゾーンとパブリックDNSゾーンのドメイン名を共有することもできます。また、Azure DNS Private Zonesは、Azureパブリッククラウドのすべてのリージョンで利用可能です。
Azure DNSにおけるパブリックDNSの設定
Azure DNSのドキュメントでは「クイックスタート」として、パブリックDNSとプライベートDNSの作成方法のチュートリアルが掲載されています。パブリックDNSの作成方法には、Azure portalを使った方法のほか、Azure PowerShell、Azure CLIを使ってコマンドによる設定も可能です。コマンド入力に慣れているのであれば、Azure PowerShellやAzure CLIを使うとよいでしょう。
ここでは、パブリックDNSの作成について、Azure portalを使用した方法の概要を要約します。Azure portalによるDNSゾーンの作成では、サブスクリプションによる無料アカウントを所有していることが前提になります。
DNSゾーンの作成
Azure portalの左上から「リソースの作成」「ネットワーク」「DNS ゾーン」を選択し、「DNS ゾーンの作成」のページを表示させます。この「DNS ゾーンの作成」のページで、「名前」を入力し、「リソースグループ」を新規作成します。その後、右下の「作成」を選択するとDNSゾーンが作成されます。
DNSレコードの作成
IPv4アドレスの新しい"A"レコードを作成する場合、まずAzure portal の「すべてのリソース」の下で、MyResourceGroupの該当するDNSゾーンを開きます。続いて「DNSゾーン」 ページの上部の「+レコードセット」を選択して、「レコードセットの追加」ページを表示させます。この「レコードセットの追加」ページで、「名前」を入力し「種類(Aを選択)」「TTL」「TTLの単位(時間を選択)」「IPアドレス」の設定をします。
名前解決のテスト
"A" レコードを含めたことから、nslookupという名前のツールを使用して、名前解決をテストすることが可能です。Azure portalの「すべてのリソース」で、MyResourceGroup リソースグループの該当するDNS ゾーンを開きます。「概要」ページに表示されたネームサーバー一覧から、ネームサーバー名のひとつをコピーし、コマンドプロンプトで「nslookup」を使って入力します。構成したIPアドレスが表示された場合には、名前解決が正常に機能しています。
Azure DNSの価格
Azure DNSは、他のAzureサービスと同様の資格情報、支払い方法、サポート契約で利用することができます。DNSゾーンはパブリックまたはプライベートが選択でき、課金はホストされるDNSゾーン数と、受信したDNSクエリ数に基づきます。
まとめ
DNSホスティングによって、DNSを独自運用する企業が増加しました。さらに、オンプレミスによる運用ではなく、クラウド型のDNSホスティングサービスも普及しつつあります。Azureの他の情報やサービスと統合されてDNSの管理ができるAzure DNSは、迅速にWebサービスやアプリをリリースしたい企業にとっては価値があります。