DNS A レコードの制限
最終更新日 2020年10月16日(金)
Table of Contents
DNS A レコードは、ゾーン Apex ドメイン (ベアドメイン、ネイキッドドメイン、ルートドメインとも呼ばれます) を設定するために使用できます。A レコードには、オンプレミスのデータセンター、クラウドインフラストラクチャサービス、Heroku のようなプラットフォームなどの環境で使用する場合に、重大な可用性の問題があります。
最大限のスケーラビリティおよび弾力性を得るために、アプリケーションでは DNS A レコードの使用を避け、代わりに Apex での CNAME 機能をサポートする DNS プロバイダーを使用するか、サブドメインを排他的に使用するようにします。
制限
DNS A レコードでは、アプリケーションの DNS 設定に IP アドレスがハードコーディングされている必要があります。これにより、不利な条件が発生してアプリの稼働時間に深刻な影響を及ぼすおそれがあるときに、インフラストラクチャプロバイダーがユーザーの代わりに新しい IP アドレスをアプリに割り当てることを防ぎます。
CNAME レコードではハードコーディングされた IP アドレスが不要であり、ドメインに関連付けられた一連の IP を Heroku で管理できます。ただし、CNAME レコードはゾーン Apex で使用できないため、ルートドメインを設定するために使用できません。
サポートされる Apex ドメイン設定
ルートドメインからのトラフィックに対処しながら、プロバイダーがアプリの IP アドレスを管理する機能を保持するには、Apex で CNAME のような機能をサポートする DNS プロバイダーを使用する方法と、サブドメインリダイレクションを使用する方法の 2 つのアプローチがあります。
CNAME のような機能をサポートするプロバイダーの一覧は、カスタムドメインの記事にあります。
SSL
SSL を介してルーティングされるトラフィックは、DNS レベルで非暗号化トラフィックと同様に動作するため、オンプレミスとクラウドのデプロイについて、同様のネイキッドドメイン A レコードの利用可能性の問題による制約を受けます。
ただし、SSL 暗号が必要なアプリケーションはルートドメインで ALIAS/ANAME 設定を使用する必要があります。ルートドメインが SSL 経由でリクエストされた場合 (https://example.com
など)、サブドメインリダイレクションによってブラウザエラーが発生します。