2026年6月11日
2026年6月11日
Azure DNS のレコード追加方法|App Service や VM の WordPress に独自ドメインを向けるレコードを、ポータルと Azure PowerShell で登録する
Azure 上で動かしている WordPress に独自ドメインを向けるときは、Azure DNS に「サイトを指すレコード(A または CNAME)」と「所有確認のための TXT(App Service の場合)」を追加し、ドメインのネームサーバーが Azure DNS に委任されていることを確かめます。この記事では、Azure App Service と仮想マシン(VM)のそれぞれで必要なレコードの組み合わせ、Azure ポータルでの追加と、同じ操作を Azure PowerShell で行う方法、追加したのに反映されないときの確認の順番を説明します。
Azure ポータルの画面構成やボタンの表記、Azure PowerShell のモジュールの引数は更新されることがあります(2026年10月現在)。以下は代表的な書き方なので、実行前に Get-Help New-AzDnsRecordSet -Detailed などで手元のバージョンの説明を確認してください。レコードセットの基本的な仕組みと Azure CLI での種類別の追加は、同じシリーズの別記事で扱っています。本番のゾーンを変更する前には、現在のレコードを書き出して保管しておきます。
前提:ゾーンがドメインに委任されているか
Azure DNS にレコードを追加しても、ドメインのネームサーバーが Azure DNS を指していなければ、インターネットからはそのレコードが見えません。最初に、ゾーンに割り当てられたネームサーバーと、実際に委任されているネームサーバーを比べます。
# ゾーンに割り当てられた Azure DNS のネームサーバー
(Get-AzDnsZone -Name "example.com" -ResourceGroupName "my-rg").NameServers
# レジストラ経由で委任されているネームサーバー
dig example.com NS +short
両者が一致していれば準備はできています。一致していない場合は、レジストラの管理画面で、ゾーンに表示された4つのネームサーバーをすべて登録します。ns1-01.azure-dns.com のような名前ですが、番号の部分はゾーンごとに違うので、表示された値をそのまま使います。
何を追加するか:構成ごとのレコードの組み合わせ
App Service で動かしている場合
App Service に独自ドメインを追加するときは、向け先のレコードに加えて、そのドメインを自分が管理していることを示す TXT レコードを追加します。TXT の値は、App Service のカスタムドメインの画面に表示される「カスタムドメイン検証 ID」です。
| 追加したい名前 | 向け先のレコード | 所有確認の TXT |
|---|---|---|
www.example.com |
CNAME www → アプリの既定のホスト名 |
TXT asuid.www に検証 ID |
example.com(頂点) |
A @ → アプリの IP アドレス |
TXT asuid に検証 ID |
アプリの既定のホスト名は、<アプリ名>.azurewebsites.net の形のほか、作成時期や設定によってはリージョンなどを含む長い形式になることがあります。推測で書かず、App Service の画面に表示された値をコピーします。頂点には CNAME を置けないため、A レコードでアプリの IP を指定します。
仮想マシン(VM)で動かしている場合
VM に割り当てたパブリック IP アドレスへ、頂点と www を向けます。
- 頂点:A
@→ VM のパブリック IP www:CNAMEwww→example.com、または Awww→ 同じパブリック IP
パブリック IP を静的に割り当てていない場合、VM の停止と起動で IP が変わることがあります。その場合は、IP を直接書く代わりに、パブリック IP のリソースを参照するエイリアスレコードを使うと、IP が変わっても書き換えずに済みます。
Azure ポータルで追加する
ポータルで DNS ゾーンを開き、レコードセットを追加する操作を選びます。入力のポイントは次のとおりです。
- 名前:ゾーン名を除いた部分だけを入れます。
www.example.comならwww、所有確認の TXT ならasuid.wwwです。www.example.comと入れるとwww.example.com.example.comになってしまうので注意します。 - 種類:A、CNAME、TXT などを選びます。
- エイリアスのレコードセット:Azure のリソース(パブリック IP など)を参照する場合だけ「はい」にします。
- TTL:初めて設定するレコードや、あとで直す可能性があるレコードは短めにしておくと、修正が早く行き渡ります。
同じ名前と種類のレコードセットがすでにある場合は、新しく作るのではなく、既存のレコードセットを開いて値を追加します。
Azure PowerShell で追加する
同じ内容を Azure PowerShell(Az.Dns モジュール)で登録する例です。Connect-AzAccount でサインインし、対象のサブスクリプションを選んでから実行します。
$rg = "my-rg"
$zone = "example.com"
# www の CNAME(向け先は App Service の画面に表示されたホスト名に置き換える)
New-AzDnsRecordSet -Name "www" -RecordType CNAME -ZoneName $zone -ResourceGroupName $rg `
-Ttl 300 -DnsRecords (New-AzDnsRecordConfig -Cname "my-wp-app.azurewebsites.net")
# 所有確認の TXT(値は App Service のカスタムドメイン検証 ID)
New-AzDnsRecordSet -Name "asuid.www" -RecordType TXT -ZoneName $zone -ResourceGroupName $rg `
-Ttl 300 -DnsRecords (New-AzDnsRecordConfig -Value "your-verification-id")
# 頂点の A レコード
New-AzDnsRecordSet -Name "@" -RecordType A -ZoneName $zone -ResourceGroupName $rg `
-Ttl 300 -DnsRecords (New-AzDnsRecordConfig -Ipv4Address "203.0.113.10")
既存のレコードセットに値を足すときは、取得してから追加し、保存します。
# 頂点の TXT に値を追加する(SPF などがすでにある場合)
$rs = Get-AzDnsRecordSet -Name "@" -RecordType TXT -ZoneName $zone -ResourceGroupName $rg
Add-AzDnsRecordConfig -RecordSet $rs -Value "your-verification-id"
Set-AzDnsRecordSet -RecordSet $rs
Set-AzDnsRecordSet は、取得したあとに別の人や処理がレコードセットを変更していると、上書きを防ぐために失敗します。その場合は取得からやり直します。同じ名前のレコードセットがすでにあると New-AzDnsRecordSet は失敗するので、そのときも取得と追加の方法に切り替えます。
追加後の確認と、反映されないときの順番
まず Azure DNS のネームサーバーへ直接問い合わせます。ここで答えが返れば、Azure DNS への登録は済んでいます。
# ネームサーバー名はゾーンに表示されたものに置き換える
dig @ns1-01.azure-dns.com www.example.com CNAME +norec +short
dig @ns1-01.azure-dns.com asuid.www.example.com TXT +norec +short
dig @ns1-01.azure-dns.com example.com A +norec +short
答えが返らない、または App Service のドメイン検証が通らない場合は、次の順に確認します。
- 名前の入れ方:ゾーン名を重ねて入れていないか、
asuidの後ろのサブドメイン部分が向け先の名前と一致しているか。 - ゾーンの取り違え:同じ名前のゾーンが別のリソースグループやサブスクリプションにないか。委任されているのはどちらのゾーンか。
- 委任:
dig example.com NS +shortの結果がゾーンのネームサーバーと一致しているか。 - キャッシュ:公開 DNS で古い答えが返るだけなら、以前の TTL が切れるのを待ちます。以前に「存在しない」という答えをキャッシュされた場合も、しばらく待つ必要があります。
- CNAME の衝突:CNAME を置いた名前に、ほかの種類のレコードが残っていないか。
ドメインの検証が通ったら、App Service で証明書を設定し、HTTPS で開けるかを確かめます。WordPress 側では、サイトアドレスの設定を独自ドメインに合わせ、www ありとなしのどちらかに301でまとめておきます。
まとめ
- レコードを追加する前に、ゾーンのネームサーバーがレジストラに委任されているかを確認します。
- App Service では、向け先のレコード(
wwwは CNAME、頂点は A)と、asuidで始まる所有確認の TXT を追加します。 - VM では頂点と
wwwをパブリック IP に向け、IP が変わる場合はエイリアスレコードを使います。 - 名前はゾーン名を除いて入れ、既存のレコードセットには値を追加します。
- 確認は Azure DNS のネームサーバーへの直接の問い合わせから始め、名前・ゾーン・委任・キャッシュの順に見ます。