2026年6月7日
2026年6月7日
DNSMadeEasy で複数ドメインを管理する方法|テンプレートでの共通化、グループ分け、API での棚卸し
DNS Made Easy で多数のドメインを管理するときは、ドメインを用途ごとに分類し、共通するレコードをテンプレートにまとめ、フォルダーと権限で担当を分け、定期的に API で全レコードを書き出して確かめる、という4つを組み合わせると混乱を防げます。この記事では、それぞれの考え方と手順、設定後の確認方法、つまずきやすい点を説明します。WordPress サイトや会社のドメインを10件以上抱え、手作業の管理に限界を感じている人を想定しています。
DNS Made Easy の画面の表記や機能の範囲、プランごとのドメイン数や問い合わせ数の上限は変わることがあります(2026年10月現在)。ここでは機能を目的で説明し、具体的な操作は公式のヘルプで確認しながら進めてください。料金には触れません。
最初にドメインを用途で分類する
ドメインが増えて困るのは、「このドメインに何が入っているべきか」が人によって違う状態になることです。設定に入る前に、手持ちのドメインを用途で分けておきます。
- サイト用: WordPress などのサイトを公開しているドメイン。A/AAAA または CNAME、メール用の MX・SPF・DKIM・DMARC、証明書のための CAA などを持ちます。
- リダイレクト用: 旧ドメインや表記ゆれのドメインで、本体のサイトへ転送するだけのもの。
- メール専用: サイトはなく、メールの送受信だけに使うもの。
- 保有のみ(防衛用): ブランド保護のために持っているだけで、サイトもメールも使わないもの。
分類が決まると、「サイト用ならこのレコード一式」「防衛用ならこの一式」と、グループごとに入れるべきレコードがはっきりします。ドメインの一覧と分類、担当者、更新期限は、DNS とは別にスプレッドシートなどで管理しておくと、後の棚卸しで照合に使えます。
共通のレコードはテンプレートにまとめる
DNS Made Easy には、レコードの組み合わせをテンプレートとして保存し、複数のドメインに適用する機能があります。同じ内容を各ドメインに手で入れるより、入力ミスが減り、変更も1か所で済みます。
テンプレートに入れるのは、グループ内のすべてのドメインで値が同じになるものだけにします。たとえば保有のみのドメインなら、次のような「このドメインからメールは送らないし受けない」と宣言するレコードが共通になります。
; 保有のみ(防衛用)ドメインの共通レコードの例
@ MX 0 . ; null MX: このドメインはメールを受け取らない
@ TXT "v=spf1 -all" ; このドメインから送信するサーバーはない
_dmarc TXT "v=DMARC1; p=reject;" ; なりすましメールを拒否するよう受信側に伝える
@ CAA 0 issue ";" ; どの認証局にも証明書の発行を許可しない
サイト用のグループなら、メールサービスの SPF や MX、使っている認証局の CAA などがテンプレートの候補です。一方、サーバーの IP アドレスや DKIM の公開鍵、各種サービスの所有権確認用 TXT のように、ドメインごとに値が違うものはテンプレートに入れず、ドメイン個別に登録します。
テンプレートを使うときに気を付けたいのは、テンプレートを書き換えると、適用しているすべてのドメインに変更が及ぶ点です。便利な反面、1回の入力ミスが全ドメインに広がります。テンプレートを変更するときは、検証用のドメインに先に適用して dig で確かめてから、本番のグループに広げる手順にしておくと安心です。また、既存のレコードがあるドメインにテンプレートを適用したときの扱いや、テンプレート由来のレコードをドメイン側で個別に編集できるかは、画面と公式ドキュメントで確認してから使い始めてください。
フォルダーと権限で担当を分ける
ドメインが多くなると、一覧から目的のドメインを探すだけで時間がかかります。DNS Made Easy ではドメインをフォルダーで整理でき、前の節の分類や、クライアントごと、事業ごとにまとめておくと見通しがよくなります。
複数人で管理する場合は、アカウントにユーザーを追加し、触れてよい範囲だけの権限を与えます。制作会社に特定のクライアントのドメインだけを任せる、閲覧だけを許す、といった分け方ができるかは、プランと権限の設定項目によって異なるので確認してください。ログイン情報を共有すると、誰が変更したかを後から追えなくなるため、1人に1つのユーザーを発行することが基本です。
自分のドメイン名でネームサーバーを見せたい場合は、Vanity DNS(ネームサーバー名を独自のホスト名で見せる機能)をグループ単位で使う方法もあります。ただし、レジストラでのホスト登録など手順が増えるので、必要性がはっきりしてから導入するのがよいでしょう。
ドメインを追加するときの流れ
新しいドメインを加えるときは、毎回同じ順で作業すると漏れが出にくくなります。
- DNS Made Easy にドメインを追加し、分類に合ったフォルダーに入れ、テンプレートを適用する
- ドメイン個別のレコード(サーバーの IP、DKIM など)を登録する
- DNS Made Easy のネームサーバーに直接問い合わせ、レコードが返るかを確かめる
- レジストラでネームサーバーを DNS Made Easy のものに切り替える
- 管理用のスプレッドシートに分類・担当・更新期限を記入する
手順3は、ネームサーバーを切り替える前に行うのがポイントです。切り替え前でも、DNS Made Easy のネームサーバーを指定すれば応答を確かめられます。
# 管理画面に表示されたネームサーバー名に置き換える
dig +short example.com MX @ns0.dnsmadeeasy.com
dig +short _dmarc.example.com TXT @ns0.dnsmadeeasy.com
他社から移してくるドメインでは、旧 DNS のレコードを書き出して照合し、メール関連のレコードが漏れていないかを特に確かめます。
API で全ドメインのレコードを棚卸しする
テンプレートとフォルダーで整えても、時間がたつと個別の追加や消し忘れが積み重なります。DNS Made Easy の REST API を使って全ドメインのレコードを定期的に書き出し、管理表と照合すると、ずれに気付けます。
API の認証では、API キーと秘密鍵を使い、リクエストの日時を秘密鍵で HMAC 署名した値をヘッダーに付けます。次のスクリプトは読み取りだけを行い、全ドメインのレコードをタブ区切りで出力します。
"""dme_inventory.py: DNS Made Easy の全ドメインとレコードを TSV で書き出す(読み取りのみ)"""
import hashlib
import hmac
import os
import time
from email.utils import formatdate
import requests
API = os.environ.get("DME_API", "https://api.sandbox.dnsmadeeasy.com/V2.0")
KEY = os.environ["DME_API_KEY"]
SECRET = os.environ["DME_SECRET_KEY"]
def get(path):
date = formatdate(usegmt=True) # 例: Sat, 17 Oct 2026 01:23:45 GMT
sig = hmac.new(SECRET.encode(), date.encode(), hashlib.sha1).hexdigest()
res = requests.get(f"{API}{path}", timeout=30, headers={
"x-dnsme-apiKey": KEY,
"x-dnsme-requestDate": date,
"x-dnsme-hmac": sig,
"Accept": "application/json",
})
res.raise_for_status()
return res.json()
print("domain\tname\ttype\tvalue\tttl")
for d in get("/dns/managed/")["data"]:
for r in get(f"/dns/managed/{d['id']}/records")["data"]:
print(f"{d['name']}\t{r['name'] or '@'}\t{r['type']}\t{r['value']}\t{r['ttl']}")
time.sleep(1) # レート制限に余裕を持たせる
export DME_API_KEY="your-api-key"
export DME_SECRET_KEY="your-secret-key"
export DME_API="https://api.dnsmadeeasy.com/V2.0" # 本番に向けるときだけ設定する
python dme_inventory.py > dme-records.tsv
使うときの注意点は次のとおりです。
- 接続先の既定値はサンドボックスにしてあり、本番に向けるときだけ
DME_APIを設定します。サンドボックスは本番とは別のアカウントとキーが必要です。 - API にはリクエスト数の上限があり、応答ヘッダーで残りの回数が分かります。ドメインが多い場合は間隔を空け、エラーになったら待ってから再実行します。
- ドメインやレコードが多いと、一覧が複数ページに分かれて返ることがあります。出力件数が管理画面の件数と合うかを確かめ、合わなければページ送りの処理を加えてください。
- 401 や 403 が返るときは、キーの取り違え、秘密鍵の誤り、サーバーの時計のずれ(署名する日時が大きくずれていると拒否される)を順に確かめます。
出力した TSV を前回分と比べれば、いつの間にか増えたレコードや、防衛用なのに A レコードが残っているドメインなどを見つけられます。API キーは管理画面での権限と同じ範囲を操作できるため、環境変数や CI のシークレットで渡し、スクリプトや Git に書かないでください。
コードでの管理を進めたい場合は、Terraform のプロバイダーや octoDNS など、DNS Made Easy に対応したツールもあります。導入する前に、そのツールが今もメンテナンスされているか、使いたいレコードの種類に対応しているかを確かめてください。
まとめ
- ドメインを「サイト用・リダイレクト用・メール専用・保有のみ」などに分類し、グループごとに入れるべきレコードを決めます。
- グループ内で値が同じレコードはテンプレートにまとめ、ドメインごとに違う値は個別に登録します。テンプレートの変更は全ドメインに及ぶため、検証用ドメインで先に確かめます。
- フォルダーと1人1ユーザーの権限で担当を分け、ネームサーバーの切り替え前に DNS Made Easy のネームサーバーで応答を確かめます。
- API で全レコードを定期的に書き出し、管理表と照合して、ずれや消し忘れを見つけます。