
## この記事でわかること

- なぜ apex に CNAME を書けないのか（RFC 1034 制約）
- CNAME Flattening が解決する問題
- Cloudflare での設定方法
- 使うべきケース / 避けるべきケース

## なぜ apex に CNAME を書けないのか

![apex と sub-domain の制約](/blog/dns-cname-flattening-guide/apex-constraint.svg)

RFC 1034 で「**CNAME レコードは他のすべてのレコードタイプと共存できない**」と定義されています。

apex（root、例: `example.co.jp` そのもの）には必ず **SOA / NS レコード**が存在するので、CNAME と共存できません。一方 `www.example.co.jp` のようなサブドメインは SOA/NS なしなので CNAME OK。

つまり標準 DNS では:
- ❌ `example.co.jp` CNAME `myapp.cdn.com` ← **不可**
- ✅ `www.example.co.jp` CNAME `myapp.cdn.com` ← OK

## CNAME Flattening の仕組み

![CNAME Flattening の動作](/blog/dns-cname-flattening-guide/flattening-flow.svg)

Cloudflare 等の DNS プロバイダが提供する機能で、**apex に CNAME 風レコードを書けるかのように見せる**仕組み:

1. ユーザが `example.co.jp` の CNAME を設定（管理画面上）
2. プロバイダは内部で CNAME の宛先（`myapp.cdn.com`）の A/AAAA レコードを解決
3. 解決結果を `example.co.jp` の A/AAAA として配信

DNS クライアントから見ると `example.co.jp` には A レコードが返ってくるので、RFC 1034 違反にならない。

Cloudflare では DNS プロキシ（オレンジ雲）を経由する場合、自動的に CNAME Flattening が適用されます。

## Cloudflare での設定手順

1. Cloudflare ダッシュボード → 対象ドメイン → DNS
2. **「Add Record」** で:
   - Type: CNAME
   - Name: `@`（apex）
   - Target: `myapp.cdn.com` 等
   - **Proxy status: Proxied（オレンジ雲）** が前提
3. 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 レコード

## まずは現状を把握しましょう

[無料ドメイン診断](/diagnose) で自社 DNS の状況を確認できます。apex で CNAME 風動作が必要な場合は Cloudflare / AWS Route 53 への移行・併用を検討。

DNS 棚卸し / 整理の支援は [ドメイン棚卸し＋DNS 設定見直し](/contact)（5 万円〜）でご相談ください。

関連記事: [DNS レコードの種類](/blog/dns-record-types) / [DNS とは｜Web 担当者向けにわかりやすく解説](/blog/dns-basics) / [ネームサーバーとは｜Web 担当者向けの役割解説](/blog/nameserver-basics-smb)

SSL / Web セキュリティヘッダは [無料ツール一覧](/tools) もご利用ください。
