Skip to content
Latchkey

Aレコードとは何か? 名前をIPへマッピングする

Aレコードとは、hostnameをIPv4アドレスへ直接マッピングし、その名前についてどのアドレスへ接続すべきかをresolverに伝えるDNSエントリです。

Aレコードは最も基本的なDNSマッピングで、名前からアドレスへの対応です。そのIPv6版がAAAAレコードです。ドメインを特定のサーバーのIPへ向けるとき、あなたはAレコードを作成し、対象のサーバーを変更するデプロイはそれを更新します。

名前からアドレスへ

Aレコードは "このhostnameはこのIPv4アドレスにある" と述べます。resolverはそのアドレスを返すため、クライアントは追うべきaliasなしに直接コネクションを開けます。

A対AAAA対CNAME

  • Aは名前をIPv4アドレスへマッピングします。
  • AAAAは名前をIPv6アドレスへマッピングします。
  • CNAMEは名前をアドレスではなく別の名前へaliasします。

apexにおけるAレコード

CNAMEと違い、Aレコードはapexドメインに置くことができます。だからこそ、ルートドメインはしばしば固定アドレスを指すAレコードやプロバイダーのaliasを使います。

デプロイにおけるAレコード

ドメインを特定のload balancerやサーバーのIPへ向けるということは、Aレコードをそのアドレスに設定することです。固定IPでインフラを変更するのは、単なるAレコードの更新です。

IPを固定するリスク

Aレコードはアドレスをハードコードするため、下位のIPが変わると壊れます。ローテーションするアドレスを持つプラットフォームは、あなたのレコードに触れずに対象を動かせるようCNAMEを好みます。

変更時のpropagation

Aレコードを更新するとDNS propagationが発生するため、resolverはcacheが期限切れになるまで古いアドレスを提供します。Latchkeyのrunnerはcutover中に一時的な解決の失敗をretryするため、短い不一致がデプロイの検証を失敗させることはありません。

重要なポイント

  • AレコードはhostnameをIPv4アドレスへマッピングし、IPv6にはAAAAがあります。
  • AレコードはCNAMEと違い、apexに置くことができます。
  • IPを固定するとローテーションで壊れるため、変更はpropagationの対象になります。

関連ガイド