カテゴリ: Azure 更新日: 2026/05/02

Azure DNSでカスタムドメイン設定!パブリックDNSゾーンの構築とレコード管理手順を徹底解説

AzureパブリックDNSゾーン構築|カスタムドメインの登録とレコード管理手順
AzureパブリックDNSゾーン構築|カスタムドメインの登録とレコード管理手順

先生と生徒の会話形式で理解しよう

生徒

「自分でお金を出して取得したドメインを、Azureで作ったWebサイトで使いたいのですが、どうすればいいですか?」

先生

「それにはAzure DNS(アジュール・ディーエヌエス)というサービスを使って、パブリックDNSゾーンを作成する必要があります。そこにカスタムドメインを登録して、情報の交通整理を行うレコード管理をすればOKですよ。」

生徒

「DNSとかレコードとか、難しそうな言葉がいっぱいですね。初心者でも設定できますか?」

先生

「大丈夫です!一つずつ手順を追っていけば、誰でもインターネット上に自分の住所を公開できます。さっそく、具体的な構築手順を見ていきましょう!」

1. Azure DNSとカスタムドメインの基本

1. Azure DNSとカスタムドメインの基本
1. Azure DNSとカスタムドメインの基本

Azure DNS(アジュール・ディーエヌエス)とは、Microsoftが提供するクラウド上の電話帳のようなサービスです。普段、私たちがインターネットでウェブサイトを見る際、example.comのような名前を入力しますが、コンピュータ同士は数字の羅列である「IPアドレス」で通信しています。この「名前」と「数字」を紐付ける仕組みがDNSです。

カスタムドメインとは、お名前.comやGoogle Domainsなどで独自に取得した自分専用のドメイン名のことです。Azure DNSの「パブリックDNSゾーン」を利用することで、世界中のユーザーがあなたのカスタムドメインを使って、Azure上のサーバーやサービスにアクセスできるようになります。この設定を行うことで、信頼性の高い、高速な名前解決が可能になります。

2. パブリックDNSゾーンの作成手順

2. パブリックDNSゾーンの作成手順
2. パブリックDNSゾーンの作成手順

まずは、Azureポータルで「パブリックDNSゾーン」という箱を作成します。これは、あなたのドメイン情報を管理するための専用の領域です。Azureポータルの検索窓で「DNS ゾーン」と入力し、作成ボタンを押しましょう。リソースグループを選択し、名前の欄には取得済みのドメイン名(例:sample-site.jp)を正確に入力します。

作成が完了すると、Azure側から「ネームサーバー(NS)」という4つのアドレスが割り振られます。このアドレスは、後でドメイン登録業者(レジストラ)の設定画面に貼り付ける必要があるため、メモしておきましょう。Azure DNSを使う最大のメリットは、世界中に分散されたサーバー網を利用しているため、サイトの表示速度が安定する点にあります。

3. ドメイン登録業者でのネームサーバー設定

3. ドメイン登録業者でのネームサーバー設定
3. ドメイン登録業者でのネームサーバー設定

AzureでDNSゾーンを作っただけでは、まだインターネットとはつながっていません。ドメインを購入したサイト(お名前.comやムームードメインなど)にログインし、ネームサーバーの設定をAzureのものに変更する必要があります。これを「権限の委譲(いじょう)」と呼びます。

この設定を間違えると、自分のサイトが表示されなくなるだけでなく、メールも届かなくなるため注意が必要です。反映には数時間から最大48時間ほどかかることがありますが、最近では数分で切り替わることも増えています。この作業を行うことで、「私のドメインの管理はAzureにお願いします!」という宣言が世界中のインターネットに伝わります。

4. Aレコードの登録とIPアドレスの紐付け

4. Aレコードの登録とIPアドレスの紐付け
4. Aレコードの登録とIPアドレスの紐付け

次に、具体的なレコード管理を行います。最も基本的なのが「Aレコード(エー・レコード)」です。これは、ドメイン名を特定のIPv4アドレスに紐付ける設定です。例えば、Azure上の仮想マシン(VM)に割り当てられたパブリックIPアドレスをここに登録します。

以下の表は、管理するレコード情報のイメージです。


id | record_type | host_name | value (IP Address) | TTL
---+-------------+-----------+--------------------+-------
1  | A           | @         | 13.78.123.45       | 3600
2  | A           | test      | 13.78.123.99       | 3600
3  | CNAME       | www       | sample-site.jp     | 3600
4  | MX          | @         | mail.example.com   | 3600

設定を反映させるためのサンプルとして、Azure CLI(コマンドラインインターフェース)を使ってレコードを追加する方法を確認してみましょう。初心者の方はポータル画面(マウス操作)で十分ですが、自動化したい場合はこのようなコマンドを使います。


az network dns record-set a add-record -g MyResourceGroup -z sample-site.jp -n www -a 13.78.123.45
Finished: { "fqdn": "www.sample-site.jp.", "id": "/subscriptions/...", "name": "www", "type": "Microsoft.Network/dnszones/A" }

5. CNAMEレコードとエイリアスの使い分け

5. CNAMEレコードとエイリアスの使い分け
5. CNAMEレコードとエイリアスの使い分け

「CNAME(シーネーム)レコード」は、ドメイン名に別名を付けるためのレコードです。例えば、www.sample-site.jpにアクセスしたときに、中身はsample-site.jpと同じ場所を見せたい場合などに使います。初心者の方がよく迷うポイントですが、CNAMEは「名前から名前」へ転送するものだと覚えましょう。

Azureでは「エイリアスレコード」という独自の便利な機能もあります。これはAzureのリソース(Azure App ServiceやCDNなど)と直接紐付けることができる仕組みで、リソースのIPアドレスが変わっても自動的に追従してくれます。手動でIPアドレスを書き換える手間が省けるため、Azureを利用しているなら積極的に活用したい機能です。

6. DNS設定が反映されたか確認する方法

6. DNS設定が反映されたか確認する方法
6. DNS設定が反映されたか確認する方法

設定が終わったら、正しく世界に公開されているか確認しましょう。パソコンの「コマンドプロンプト」や「ターミナル」を使って、nslookupというコマンドを実行します。これにより、指定したドメインがどのIPアドレスを指しているかを直接調べることができます。

実行結果に、先ほど設定したAzure上のIPアドレスが表示されれば成功です!もし表示されない場合は、ネームサーバーの打ち間違いや、反映待ちの時間が不足している可能性があります。慌てずに少し時間を置いてから再度試してみましょう。


nslookup www.sample-site.jp
Server: UnKnown, Address: 192.168.1.1, Non-authoritative answer: Name: www.sample-site.jp, Address: 13.78.123.45

7. Pythonを使ってDNSの疎通確認を自動化

7. Pythonを使ってDNSの疎通確認を自動化
7. Pythonを使ってDNSの疎通確認を自動化

たくさんのドメインを管理している場合、一つずつ手動で確認するのは大変です。簡単なプログラムを作って、レコードが正しく設定されているかチェックするツールを作ってみましょう。Python(パイソン)というプログラミング言語を使うと、数行のコードで確認が可能です。

このプログラムは、指定したドメインのAレコードを取得して画面に表示するシンプルなものです。プログラミングに触れたことがない方でも、なんとなく「ドメインから数字を取得しているんだな」という流れがわかるはずです。


import socket

def check_dns(domain_name):
    try:
        # ドメイン名からIPアドレスを取得する処理
        ip_address = socket.gethostbyname(domain_name)
        print(f"ドメイン: {domain_name} は正しく設定されています。")
        print(f"IPアドレス: {ip_address}")
    except socket.gaierror:
        print("エラー: ドメインが見つかりません。設定を確認してください。")

# 実行
check_dns("www.sample-site.jp")

実行結果は以下のようになります。


ドメイン: www.sample-site.jp は正しく設定されています。
IPアドレス: 13.78.123.45

8. 運用上の注意点とセキュリティ対策

8. 運用上の注意点とセキュリティ対策
8. 運用上の注意点とセキュリティ対策

DNSの管理は非常に重要です。もし悪意のある第三者にDNSの設定を書き換えられてしまうと、自分のサイトに来たユーザーを偽のサイトへ誘導されてしまう「DNSハイジャック」などの被害に遭う可能性があります。Azure DNSでは、Azureロールベースのアクセス制御(RBAC)を使用して、誰がレコードを編集できるかを細かく制限できます。

また、レコードには「TTL(ティー・ティー・エル)」という有効期限が設定されています。これは、他のコンピュータがその情報をどれくらいの時間キャッシュ(一時保存)しておくかを指定する秒数です。設定変更を頻繁に行う予定がある場合は、この値を短く(例えば300秒など)設定しておくと、変更が速やかにインターネット全体に広がりやすくなります。逆に、安定しているサイトなら3600秒(1時間)やそれ以上に設定するのが一般的です。

9. レコード管理のデータベース化イメージ

9. レコード管理のデータベース化イメージ
9. レコード管理のデータベース化イメージ

大規模な運用では、どのドメインにどのレコードを設定したかをデータベースで管理することもあります。以下は、SQL(エスキューエル)という言葉を使って、DNSレコードの情報をデータベースに保存・抽出する際のイメージです。このように整理して管理することで、設定ミスを防ぐことができます。


id | domain_zone    | record_name | type  | target_ip
---+----------------+-------------+-------+--------------
1  | sample-site.jp | @           | A     | 13.78.123.45
2  | sample-site.jp | www         | CNAME | sample-site.jp
3  | dev-site.net   | api         | A     | 40.115.0.12
4  | my-blog.com    | @           | A     | 52.184.21.5

特定のゾーンに紐付くレコードだけを取り出すSQLクエリの例です。


SELECT record_name, type, target_ip
FROM dns_records
WHERE domain_zone = 'sample-site.jp';

実行結果(抽出されたデータ)は以下のようになります。


record_name | type  | target_ip
------------+-------+--------------
@           | A     | 13.78.123.45
www         | CNAME | sample-site.jp

10. Azure DNSを使いこなすためのヒント

10. Azure DNSを使いこなすためのヒント
10. Azure DNSを使いこなすためのヒント

最後に、さらにステップアップするためのヒントをお伝えします。Azure DNSには「プライベートDNSゾーン」という、特定の仮想ネットワーク内だけで有効な名前解決の仕組みもあります。これは社内システムなど、インターネットに公開したくない名前を管理するのに適しています。パブリックとプライベートを使い分けることで、より高度なネットワーク構築が可能になります。

設定手順は最初は複雑に見えるかもしれませんが、一度構築してしまえばAzureの高い可用性とセキュリティの恩恵を受けることができます。カスタムドメインを使って、世界に一つだけのあなたのウェブサービスを公開しましょう。もし途中でわからなくなったら、公式ドキュメントやトラブルシューティングのツールを活用してみてください。一歩ずつ進めば、必ずマスターできますよ!

まとめ

まとめ
まとめ

Azure DNSを利用したカスタムドメインの設定とパブリックDNSゾーンの構築手順について、これまでの内容を振り返りましょう。インターネット上の住所とも言えるドメイン名を、Azureという強力なインフラで管理することは、ウェブサービスの安定性と信頼性を高めるために非常に有効な手段です。

Azure DNSの設定フローと重要キーワード

まず、全体の流れを整理します。カスタムドメインを運用するためには、ドメインの取得、AzureでのDNSゾーン作成、そしてレジストラ(ドメイン登録業者)へのネームサーバー登録という3つの大きなステップが必要です。これらを正しく行うことで、初めて世界中からあなたのサイトへアクセスが可能になります。

設定において中心となる「レコード」の種類についても、しっかり復習しておきましょう。

  • Aレコード:ドメイン名を直接IPv4アドレスに結びつけます。
  • CNAMEレコード:あるドメイン名に別名を付けます。
  • NSレコード:そのドメインを管理するネームサーバーを指定します。
  • MXレコード:メールの配送先を指定します。

運用管理の効率化とデータベース活用

小規模なサイトであれば手動管理で十分ですが、複数のドメインや多数のサブドメインを運用する場合、設定情報をデータベース化して管理するのが一般的です。例えば、以下のような構造のテーブルでレコード情報を一元管理することで、設定漏れや重複を防ぐことができます。


id | zone_name       | sub_domain | record_type | target_value    | ttl
---+-----------------+------------+-------------+-----------------+------
1  | example-app.jp  | @          | A           | 20.43.15.110    | 3600
2  | example-app.jp  | www        | CNAME       | example-app.jp  | 3600
3  | example-app.jp  | mail       | A           | 20.43.15.115    | 3600
4  | dev-testing.org | @          | A           | 52.152.33.45    | 600
5  | dev-testing.org | api        | A           | 52.152.33.46    | 600
6  | my-service.com  | @          | A           | 104.214.77.20   | 3600
7  | my-service.com  | shop       | CNAME       | my-service.com  | 1800

このように整理されたデータから、必要な情報だけを抽出するSQLクエリを実行してみましょう。例えば、特定のドメインに関連するすべてのAレコードを取得する場合は以下のようになります。


SELECT sub_domain, target_value, ttl
FROM dns_records
WHERE zone_name = 'example-app.jp' AND record_type = 'A';

実行結果は以下の通りです。


sub_domain | target_value | ttl
-----------+--------------+------
@          | 20.43.15.110 | 3600
mail       | 20.43.15.115 | 3600

こうした管理手法を学ぶことで、単なる設定作業を超えた、エンジニアとしての運用スキルが身につきます。

C#によるDNS情報の取得と検証

最後に、システム開発の現場でよく使われるC#(シーシャープ)言語を用いて、プログラムからDNS情報を確認する方法を紹介します。アプリの中から特定のドメインが生きているか、正しいIPを指しているかをチェックする際に役立ちます。


using System;
using System.Net;

class DnsChecker
{
    static void Main()
    {
        string hostName = "www.sample-site.jp";
        try
        {
            // ホスト名からIPアドレスのリストを取得します
            IPAddress[] addresses = Dns.GetHostAddresses(hostName);

            Console.WriteLine($"{hostName} の解析結果:");
            foreach (var ip in addresses)
            {
                Console.WriteLine($"- IPアドレス: {ip}");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"エラーが発生しました: {ex.Message}");
        }
    }
}

このプログラムを実行した際の出力例は以下の通りです。


www.sample-site.jp の解析結果:
- IPアドレス: 13.78.123.45

Azure DNSは、ポータルでのマウス操作だけでなく、CLIやプログラムを介した自動化との相性が非常に良いサービスです。これを機に、クラウドインフラの自動管理にも挑戦してみてください。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!Azure DNSを使えば、自分が取得したドメインとAzureのリソースを簡単につなげられることがよくわかりました。最初は専門用語が多くて驚きましたが、整理してみると意外とシンプルですね。」

先生

「その通りです。特にAレコードやCNAMEレコードといった基本的な役割を理解してしまえば、あとはパズルのように組み合わせていくだけですよ。設定した後のnslookupでの確認作業も忘れずに行えましたか?」

生徒

「はい!自分のパソコンからコマンドを打って、設定したIPアドレスが表示されたときは感動しました。反映に少し時間がかかることもあると教えてもらったので、落ち着いて待つことができました。」

先生

「素晴らしいですね。DNSの浸透待ちは、インフラエンジニアなら誰もが通る道です。Azure DNSならマイクロソフトの強力なネットワークを使っているから、他のDNSサーバーに比べても反映が早くて安定しているのが強みなんですよ。」

生徒

「エイリアスレコードの話も面白かったです。IPアドレスが変わっても自動で追いかけてくれるなんて、Azureを使っているなら使わない手はないですね。次は複数のサブドメインを作って、もっと複雑な構成に挑戦してみたいです!」

先生

「いい意気込みですね!サブドメインを活用すれば、ブログ用、ショップ用、開発用といった具合に一つのドメインでたくさんのサービスを運用できます。セキュリティ設定のRBACやTTLの調整も意識しながら、安全で快適なサイト運営を目指しましょう。」

生徒

「はい!プログラムで自動チェックする方法も教えてもらったので、運用の自動化についても勉強してみます。Azure DNSマスターを目指して頑張ります!」

カテゴリの一覧へ
新着記事
New1
C#
C#のメソッドのオーバーロードとは?同名メソッドを複数定義する方法
New2
C#
C#の出力と入力の基本をマスター!初心者でもわかるConsole.WriteLine()とConsole.ReadLine()の使い方
New3
C#
C# GUIアプリでファイルダイアログを使う方法!WinFormsとWPFの基本操作を完全解説
New4
Azure
Azure SQL Databaseの認証設定を徹底解説!Entra ID(旧Azure AD)統合でセキュアなデータベース管理を実現する方法
人気記事
No.1
Java&Spring記事人気No1
C#
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド
No.2
Java&Spring記事人気No2
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.4
Java&Spring記事人気No4
C#
C# WinForms入門!初心者でも簡単にWindowsアプリを作る方法
No.5
Java&Spring記事人気No5
C#
C#の文字列を数値に変換する方法(int.Parse・TryParse)をわかりやすく解説!
No.6
Java&Spring記事人気No6
C#
C#のログ出力入門!SerilogとNLogの使い方を徹底解説
No.7
Java&Spring記事人気No7
Azure
Azure Bastionの使い方を徹底解説!踏み台サーバー不要で安全にRDP/SSH接続
No.8
Java&Spring記事人気No8
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド