DNSCloudflareWeb 担当者学習
CNAME Flattening の仕組みと使いどころ|Cloudflare 設定で apex に CNAME 風レコードを置く
ドメイン番人約 3 分で読めます
目次
この記事でわかること
- なぜ apex に CNAME を書けないのか(RFC 1034 制約)
- CNAME Flattening が解決する問題
- Cloudflare での設定方法
- 使うべきケース / 避けるべきケース
なぜ apex に CNAME を書けないのか
RFC 1034 で「CNAME レコードは他のすべてのレコードタイプと共存できない」と定義されています。
apex(root、例: example.co.jp そのもの)には必ず SOA / NS レコードが存在するので、CNAME と共存できません。一方 www.example.co.jp のようなサブドメインは SOA/NS なしなので CNAME OK。
つまり標準 DNS では:
- ❌
example.co.jpCNAMEmyapp.cdn.com← 不可 - ✅
www.example.co.jpCNAMEmyapp.cdn.com← OK
CNAME Flattening の仕組み
Cloudflare 等の DNS プロバイダが提供する機能で、apex に CNAME 風レコードを書けるかのように見せる仕組み:
- ユーザが
example.co.jpの CNAME を設定(管理画面上) - プロバイダは内部で CNAME の宛先(
myapp.cdn.com)の A/AAAA レコードを解決 - 解決結果を
example.co.jpの A/AAAA として配信
DNS クライアントから見ると example.co.jp には A レコードが返ってくるので、RFC 1034 違反にならない。
Cloudflare では DNS プロキシ(オレンジ雲)を経由する場合、自動的に CNAME Flattening が適用されます。
Cloudflare での設定手順
- Cloudflare ダッシュボード → 対象ドメイン → DNS
- 「Add Record」 で:
- Type: CNAME
- Name:
@(apex) - Target:
myapp.cdn.com等 - Proxy status: Proxied(オレンジ雲) が前提
- Save → 自動的に Flattening 適用
設定後 dig +short example.co.jp で A レコードの IPが返れば動作 OK。
使うべきケース
| ケース | 理由 |
|---|---|
| apex で CDN を使いたい | Cloudflare / Fastly / AWS CloudFront 等の宛先を apex に向けたい |
| apex で SaaS / EC(Shopify 等)を使いたい | SaaS が CNAME で宛先を指示してくる場合 |
| 複数 IP の SaaS への apex 振り | 固定 A レコードだと SaaS 側 IP 変更時に追随できない |
避けるべきケース(または注意)
| ケース | 理由 |
|---|---|
| apex でメールサーバを動かす | MX レコードに影響なし、ただし apex A レコードを期待するアプリは要検証 |
| 他社 DNS プロバイダへの移行を予定 | CNAME Flattening は Cloudflare 独自仕様(DNS 標準ではない)、他社へ移行時は標準 A に変換 |
| DNSSEC を厳密に運用 | Flattening の DNSSEC 署名は Cloudflare 側で行うので運用設計要確認 |
他プロバイダの同等機能
- AWS Route 53: Alias レコード(同じ概念、AWS リソース限定)
- Google Cloud DNS: 同等機能なし、apex には A/AAAA 直書き必要
- Azure DNS: Alias レコード
- NS1 / DNSimple: ALIAS レコード
まずは現状を把握しましょう
無料ドメイン診断 で自社 DNS の状況を確認できます。apex で CNAME 風動作が必要な場合は Cloudflare / AWS Route 53 への移行・併用を検討。
DNS 棚卸し / 整理の支援は ドメイン棚卸し+DNS 設定見直し(5 万円〜)でご相談ください。
関連記事: DNS レコードの種類 / DNS とは|Web 担当者向けにわかりやすく解説 / ネームサーバーとは|Web 担当者向けの役割解説
SSL / Web セキュリティヘッダは 無料ツール一覧 もご利用ください。