Aレコードとは?意味・役割・設定方法をわかりやすく解説
Aレコードの基本的な意味から、DNSの中での役割、他のレコードとの違い、具体的な設定方法、確認方法、よくあるトラブルまでを、初心者の方にもわかりやすく解説
目次
- Aレコードとは
- DNSの仕組みとAレコードの位置づけ
- 名前解決の流れ
- Aレコードの構成要素
- ホスト名の「@」とは
- TTLとは
- AAAAレコードとの違い
- CNAMEレコードとの違い
- そのほかの主なDNSレコード
- 1つのドメインに複数のAレコードを設定できる?
- Aレコードの設定手順
- Aレコードの確認方法
- コマンドで確認する
- ドメインチェッカーなどのWebツールで確認する
- よくあるトラブルと対処法
- 設定したのに反映されない
- 別のIPアドレスが表示される
- サイトが表示されない、または違うサイトが表示される
- よくある質問
- Aレコードの「A」は何の略ですか?
- Aレコードは必ず設定しないといけませんか?
- IPアドレスが変わったらどうすればいいですか?
- 無料のドメインでもAレコードは設定できますか?
- まとめ
ウェブサイトを公開したり、独自ドメインを取得したりすると、必ずといっていいほど目にするのが「Aレコード」という言葉です。ドメインの管理画面やDNS設定画面に「Aレコード」の入力欄があり、「何を入力すればいいのかわからない」と戸惑った経験がある方も多いのではないでしょうか。
この記事では、Aレコードの基本的な意味から、DNSの中での役割、他のレコードとの違い、具体的な設定方法、確認方法、よくあるトラブルまでを、初心者の方にもわかりやすく解説します。
Aレコードとは
Aレコード(Address Record)とは、ドメイン名(ホスト名)に対して、IPv4アドレスを対応付けるDNSレコードのことです。
私たちがブラウザに「example.com」のようなドメイン名を入力すると、ブラウザはそのドメインがどのサーバーにあるのかを調べます。インターネット上の通信は、実際にはIPアドレス(例:192.0.2.1)という数字の住所を使って行われているため、ドメイン名とIPアドレスを結びつける仕組みが必要になります。その役割を担っているのがAレコードです。
電話帳にたとえると、ドメイン名が「名前」、IPアドレスが「電話番号」にあたります。Aレコードは「この名前の人の電話番号はこれです」と教えてくれる1行の記録だと考えるとイメージしやすいでしょう。
DNSの仕組みとAレコードの位置づけ
Aレコードを理解するには、まずDNS(Domain Name System)について知っておく必要があります。
DNSは、ドメイン名とIPアドレスなどの情報を管理し、問い合わせに応じて答えを返すインターネットの基盤となる仕組みです。DNSにはさまざまな種類の情報が登録されており、その1つひとつを「DNSレコード」と呼びます。Aレコードは、その中でも最も基本的で、最もよく使われるレコードの1つです。
名前解決の流れ
ドメイン名からIPアドレスを調べることを「名前解決」といいます。ユーザーがブラウザで「www.example.com」にアクセスしたとき、おおまかに次のような流れで処理が進みます。
- ブラウザが、パソコンやスマートフォンに設定されたDNSキャッシュサーバー(リゾルバ)に「www.example.comのIPアドレスは?」と問い合わせる
- キャッシュサーバーが、ルートサーバー、.comサーバーなどを順にたどり、example.comを管理している権威DNSサーバーを見つける
- 権威DNSサーバーに登録されているAレコードの内容(例:192.0.2.1)が、キャッシュサーバーに返される
- ブラウザは、得られたIPアドレスのサーバーにアクセスし、ウェブページを表示する
このように、Aレコードは「ドメイン名からサーバーの場所を特定する」ための最終的な答えを返す役割を持っています。Aレコードが正しく設定されていなければ、サイトは表示されません。
Aレコードの構成要素
Aレコードは、主に次の項目で構成されています。DNSの設定画面では、これらを入力することになります。
| 項目 | 内容 | 例 |
|---|---|---|
| ホスト名(名前) | どのドメイン名に対する設定か | @(ドメイン直下)、www、blog など |
| タイプ | レコードの種類 | A |
| 値(データ) | 対応付けるIPv4アドレス | 192.0.2.1 |
| TTL | 情報をキャッシュしてよい時間(秒) | 300、3600 など |
ホスト名の「@」とは
多くのDNS管理画面では、ドメイン直下(example.comそのもの)を表すために「@」を使います。たとえば、ドメイン「example.com」で次のように設定したとします。
@→ 192.0.2.1 の場合、「example.com」が192.0.2.1に向くwww→ 192.0.2.1 の場合、「www.example.com」が192.0.2.1に向くblog→ 192.0.2.2 の場合、「blog.example.com」が192.0.2.2に向く
このように、ホスト名ごとに異なるIPアドレスを指定できるため、同じドメインでもサービスごとに別々のサーバーを使い分けることが可能です。
TTLとは
TTL(Time To Live)は、DNSの応答をキャッシュサーバーが保存しておく時間の長さで、単位は秒です。TTLを3600にすると、1時間はキャッシュされた古い情報が使われる可能性があります。サーバーの移転など、IPアドレスを変更する予定がある場合は、事前にTTLを短く(300秒程度)しておくと、切り替えがスムーズに反映されやすくなります。
AAAAレコードとの違い
Aレコードと似た名前のレコードに「AAAAレコード(クアッドエー)」があります。
- Aレコード:IPv4アドレス(例:192.0.2.1)を指定する
- AAAAレコード:IPv6アドレス(例:2001:db8::1)を指定する
IPv4は約43億個のアドレスしか持てないため、枯渇が問題になりました。その対策として登場したのが、はるかに多くのアドレスを扱えるIPv6です。現在はIPv4とIPv6が併用されており、両方でアクセスできるようにしたいサイトでは、AレコードとAAAAレコードの両方を設定します。
CNAMEレコードとの違い
もう1つ混同されやすいのが「CNAMEレコード」です。
- Aレコード:ドメイン名に対して、IPアドレスを直接指定する
- CNAMEレコード:ドメイン名に対して、別のドメイン名(別名)を指定する
たとえば「www.example.com」のCNAMEを「example.com」に設定すると、wwwのアクセス先は example.com のAレコードと同じになります。サーバーのIPアドレスが変わったとき、Aレコードを1か所修正するだけで済むため、運用が楽になるというメリットがあります。
ただし、CNAMEには次のような制約があります。
- 同じホスト名に、CNAME以外のレコード(A、MX、TXTなど)を同時に設定できない
- ドメイン直下(ゾーンの頂点、いわゆる「@」)にはCNAMEを設定できない
ドメイン直下にはAレコードを設定するのが基本です。なお、サービスによっては、ALIASレコードやANAMEレコード、CNAMEフラットニングといった独自の仕組みでドメイン直下に別名を指定できるものもあります。
そのほかの主なDNSレコード
Aレコードと一緒によく登場するレコードを、簡単にまとめておきます。
| レコード | 役割 |
|---|---|
| A | ドメイン名とIPv4アドレスを対応付ける |
| AAAA | ドメイン名とIPv6アドレスを対応付ける |
| CNAME | ドメイン名に別名(別のドメイン名)を対応付ける |
| MX | そのドメイン宛てのメールを受け取るメールサーバーを指定する |
| TXT | 任意のテキスト情報を登録する(SPF、ドメイン所有権の確認などに使われる) |
| NS | そのドメインを管理するネームサーバーを指定する |
サイトの表示にはAレコード(またはCNAME)、メールの送受信にはMXレコード、メールの送信元認証にはTXTレコードというように、目的ごとにレコードを使い分けます。
1つのドメインに複数のAレコードを設定できる?
同じホスト名に対して、複数のAレコードを設定することも可能です。たとえば、次のような設定です。
www→ 192.0.2.1www→ 192.0.2.2
このように設定すると、DNSサーバーは複数のIPアドレスを返し、アクセスが分散されやすくなります。この方法は「DNSラウンドロビン」と呼ばれ、簡易的な負荷分散に利用されます。ただし、サーバーが停止しても自動では切り離されないため、本格的な冗長化にはロードバランサーやCDNなどを併用するのが一般的です。
Aレコードの設定手順
Aレコードの設定は、ドメインのDNSを管理しているサービス(ドメインレジストラ、レンタルサーバー、Cloudflareなどのネームサーバー)の管理画面で行います。画面の名称はサービスによって異なりますが、基本的な流れは共通です。
- ドメインの管理画面にログインし、「DNS設定」「DNSレコード設定」などのメニューを開く
- 「レコードを追加」を選ぶ
- タイプで「A」を選択する
- ホスト名(名前)に、
@やwwwなど設定したい名前を入力する - 値にサーバーのIPv4アドレスを入力する
- TTLを設定し(特にこだわりがなければ初期値のままで問題ありません)、保存する
なお、「ドメインを管理している場所」と「DNSを管理している場所」が異なる場合があるため注意が必要です。たとえばドメインをレジストラで取得していても、ネームサーバーをCloudflareに向けている場合は、Cloudflare側でレコードを編集する必要があります。設定が反映されないときは、まず「今、どこのネームサーバーが使われているか」を確認しましょう。
Aレコードの確認方法
設定したAレコードが正しく登録されているかは、いくつかの方法で確認できます。
コマンドで確認する
Mac・Linuxではdigコマンド、Windowsではnslookupコマンドが使えます。
dig example.com A +short
nslookup -type=A example.com
実行すると、そのドメインに登録されているIPv4アドレスが表示されます。
ドメインチェッカーなどのWebツールで確認する
コマンド操作に慣れていない場合は、ブラウザ上でドメイン名を入力するだけでDNSレコードを調べられるWebツールが便利です。世界各地のDNSサーバーから確認できるツールを使えば、設定が世界中に反映されているかどうかも把握できます。
よくあるトラブルと対処法
設定したのに反映されない
DNSの変更は、キャッシュの影響で反映までに時間がかかることがあります。TTLの時間が経過するまでは古い情報が使われるため、数分から数時間、場合によっては最大48時間ほどかかると案内されることもあります。しばらく待ってから再度確認しましょう。ブラウザやOSのDNSキャッシュをクリアするのも有効です。
別のIPアドレスが表示される
CloudflareなどのCDNやプロキシサービスを経由している場合、Aレコードを調べても、元のサーバーではなくCDN側のIPアドレスが表示されます。これは仕様であり、設定ミスではありません。
サイトが表示されない、または違うサイトが表示される
次の点を確認してみてください。
- Aレコードに入力したIPアドレスが正しいか(1桁の入力ミスでも別のサーバーになります)
- サーバー側で、そのドメイン名のサイトが正しく登録されているか
- ネームサーバーの設定が、意図したDNSサービスを向いているか
- 同じホスト名に、古いAレコードが残っていないか
よくある質問
Aレコードの「A」は何の略ですか?
「Address(アドレス)」の頭文字です。ドメイン名に対応するアドレスを示すレコードという意味です。
Aレコードは必ず設定しないといけませんか?
ウェブサイトを独自ドメインで公開する場合は、AレコードまたはCNAMEレコードのどちらかで、サーバーの場所を指定する必要があります。メールだけを使うドメインなどでは、Aレコードを設定しないこともあります。
IPアドレスが変わったらどうすればいいですか?
サーバーの移転などでIPアドレスが変わった場合は、Aレコードの値を新しいIPアドレスに書き換えます。切り替えのタイミングでアクセスできなくなる時間を減らすため、事前にTTLを短くしておくのがおすすめです。
無料のドメインでもAレコードは設定できますか?
DNSの管理機能が提供されているサービスであれば設定できます。ただし、サービスによってはAレコードの編集ができず、あらかじめ決められた転送設定のみが使える場合もあります。
まとめ
Aレコードについて、要点を整理します。
- Aレコードは、ドメイン名とIPv4アドレスを対応付けるDNSレコードである
- ブラウザがサイトにアクセスする際、Aレコードの情報をもとにサーバーの場所が特定される
- IPv6には「AAAAレコード」、別名の指定には「CNAMEレコード」、メールには「MXレコード」を使う
- ドメイン直下(@)には、基本的にAレコードを設定する
- 変更が反映されるまでには、TTLに応じた時間がかかる
- 設定後は、dig・nslookup・ドメインチェッカーなどで登録内容を確認する
Aレコードは、ウェブサイト運営の土台となる大切な設定です。仕組みを理解しておけば、サーバーの移転やドメインの設定変更、トラブル対応の場面でも落ち着いて対処できるようになります。ドメインの状態を調べたいときは、ドメインチェッカーなどのツールも活用しながら、正しい設定を維持していきましょう。