サブドメインAレコード -- サブドメインのルーティング
サブドメイン用のAレコードを作成して、異なるサービスを異なるサーバーにルーティングする方法を解説します。blog、API、staging、appサブドメインの一般的なパターンを網羅しています。
AAddress Records
Zone File Entry
blog.example.com. IN A 203.0.113.60 api.example.com. IN A 203.0.113.70 staging.example.com. IN A 203.0.113.80
詳細な説明
サブドメインAレコード
サブドメインAレコードは、特定のサブドメイン(blog.example.comやapi.example.comなど)をIPv4アドレスにマッピングします。ドメイン上の異なるサービスを異なるサーバーに向ける方法です。
BINDゾーンファイルの構文
; よくあるサブドメインレイアウト
blog.example.com. 3600 IN A 203.0.113.60
api.example.com. 3600 IN A 203.0.113.70
staging.example.com. 3600 IN A 203.0.113.80
admin.example.com. 3600 IN A 203.0.113.90
cdn.example.com. 3600 IN A 203.0.113.100
; 相対名の使用(example.comのゾーンファイル内)
blog 3600 IN A 203.0.113.60
api 3600 IN A 203.0.113.70
staging 300 IN A 203.0.113.80
サブドメインAレコードとCNAMEの使い分け
Aレコードを選択する場合:
- ターゲットサーバーを自分で管理しており、静的IPアドレスを把握している
- 同じサブドメインに他のレコードタイプ(MX、TXT)が必要
- 最速の名前解決が必要(余分なCNAMEルックアップなし)
CNAMEを選択する場合:
- ターゲットがサードパーティ(CDN、SaaSプラットフォーム)によって管理されており、IPが変更される可能性がある
- ターゲットプロバイダーがIPを変更した際の自動更新が必要
- そのサブドメインに他のレコードタイプが不要
よくあるサブドメインパターン
| サブドメイン | 用途 | ターゲット例 |
|---|---|---|
www |
メインWebサイト | WebサーバーまたはCDN |
blog |
ブログまたはコンテンツサイト | CMSサーバー |
api |
APIエンドポイント | APIゲートウェイまたはサーバー |
staging |
本番前テスト | ステージングサーバー |
admin |
管理パネル | 内部サーバー |
mail |
メールサーバー | SMTPサーバー |
ftp |
ファイル転送 | FTPサーバー |
dev |
開発環境 | 開発サーバー |
アーキテクチャの考慮事項
各サブドメインはまったく異なるインフラを指すことができます:
www.example.com→ VercelまたはNetlify(CNAME経由)api.example.com→ AWS EC2インスタンス(Aレコード経由)blog.example.com→ VPS上のWordPress(Aレコード経由)mail.example.com→ メールサーバーのIP(Aレコード経由、MXから参照)
この柔軟性により、チームは各サービスに最適なホスティングソリューションを独立して選択できます。
サブドメインのTTL戦略
- 本番サブドメイン(
www、api):安定したエンドポイントには3600(1時間)のような長いTTLを使用 - ステージング/開発サブドメイン:IPの変更が頻繁なため300(5分)のような短いTTLを使用
- 移行前:計画されたIP変更の十分前にTTLを下げる
セキュリティの考慮事項
- ダングリングDNSレコード:サーバーを廃止してもAレコードを残したままにすると、攻撃者がそのIPアドレスを取得し、あなたのサブドメインでコンテンツを提供する可能性があります。サービス廃止時は必ずDNSレコードを削除してください。
- サブドメイン乗っ取り:外部サービスを指すCNAMEレコードには特に注意してください。サービスのアカウントが期限切れになると、攻撃者がそのエンドポイントを取得する可能性があります。
- アクセス制御:公開向けサブドメインと内部専用サブドメインに異なるIPを使用し、ファイアウォールルールと組み合わせることを検討してください。
ユースケース
サブドメインAレコードを作成して、APIサーバー、ブログプラットフォーム、ステージング環境、管理パネルなど、インフラの異なる部分をそれぞれのサーバーIPアドレスにルーティングします。