さくらのクラウド ネットワーク入門 8. DNSアプライアンスでドメイン名を設定する

さくらのクラウドのさまざまな仮想ネットワーク機能を紹介する「ネットワーク入門」シリーズでは、第7回で外部からアクセスできるWebサーバーを立ち上げました(記事の目的はWebサーバーをラウンドロビンするロードバランサーを利用することでした)。
このときWebブラウザーからは、サーバーに「割り当てたIPアドレス」でアクセスしました。しかし、日常的なWebアクセスでIPアドレスを使うことはまずありません。より分かりやすいドメイン名でアクセスできるように、IPアドレスからの変換をDNSサーバーで設定します。ここでは、さくらのクラウドのDNS機能を利用してみましょう。
さくらのクラウドのDNSアプライアンス
さくらのクラウドのDNS機能は「DNSアプライアンス」という名称で提供されています。機能の詳細は次のマニュアルページなどを参照してください。
👉 DNS (アプライアンス) | さくらのクラウド マニュアル
DNSアプライアンスは、さくらのクラウド上で動作するサーバーのIPアドレスを、ユーザーが指定したドメイン名に対応させる権威DNSです。ユーザーが所有するドメインの任意のゾーンを委任されることで、ドメイン名をIPアドレスに解決するDNSレコードを設定できます。
DNSアプライアンスを利用するには、事前に任意のレジストラー(ドメイン登録事業者)でドメインを取得しておく必要があります。さくらインターネットが提供するレジストラーサービス「さくらのドメイン」も利用できます。
👉 ドメイン取得なら「さくらのドメイン」 | さくらインターネット
本記事で想定するドメイン名とゾーン
本記事では、筆者のドメインを例に説明を進めます。実際に設定するときには読者自身が所有するドメインやレジストラーに読み替えてください。
| ドメイン名 | harunbukameda.com |
| 委任するゾーン | sakura.harunobukameda.com |
| レジストラー | Cloudflare Registrar |
DNSでは、ゾーンという単位で管理責任を分割します。上記の例では sakura というサブドメインの管理について、レジストラー側のゾーン設定によって、さくらのクラウドに委任されます。
なお、DNSアプライアンスはゾーン転送に対応していません。任意のゾーン(ここではサブドメイン)を管理するときにセカンダリーDNSとして指定することはできず、プライマリーDNSとして委任する必要があります。
ドメイン名やDNSの仕組みについてさらに詳しい解説が必要な方は、以下のページの情報などを参照してください。
本記事で想定するネットワーク環境
本記事では、第7回の手順で作成した1台のロードバランサーと2台のWebサーバー、1台のソーリーサーバーという環境を前提に説明します。

ロードバランサーはWebブラウザーなど外部からのアクセスを受け取り、ヘルスチェックが通るWebサーバーが存在すればラウンドロビンでルーティングします。すべてのヘルスチェックが通らなければ、ソーリーサーバーが表示されます。
このときロードバランサーに割り当てられたIPアドレスは「133.125.233.222」ですが、外部からは以下のように設定したVIP(133.125.233.216)にアクセスします。
このVIPに対応するドメイン名を、DNSアプライアンスで設定していきます。こちらも読者自身の環境に読み替えて指定してください。
設定1. 委任されるゾーンをDNSアプライアンスで作成
「さくらのクラウド」のコントロールパネルの左メニューから「グローバル」を開いて「DNS」を選択します。さくらのクラウドにおけるDNS情報は、ユーザーが利用するすべてのゾーンで共通するグローバルリソースです。

画面右上の「+追加」をクリックすると「DNSゾーン追加」画面が表示されます。管理したいゾーン(ここではsakura.harunobukameda.com というサブドメイン)を入力します。
右下の「作成」をクリックすると、無事にゾーンが1つできます。
ゾーンの右端にある▼から「詳細」を開きます。ゾーンを委任されるさくらのクラウド側のDNSサーバーの情報が掲載されていまるので、レジストラー側で設定するため2つともメモしておきます。
設定2. ドメイン全体のDNSでサブドメインを委任する
前述したように、ドメイン名「harunobukameda.com」はレジストラー(ここではCloudflare)が管理しています。このうち「sakura.harunobukameda.com」というサブドメインについて、DNSゾーンをさくらのクラウドに委任します。
先ほどメモしたさくらのクラウドのDNSサーバーを、レジストラ側のDNSサーバーでNSレコードとして追加します。NSレコードでは、あるゾーンに対して権威(オーソリティー)となるDNSサーバーを指定することで、そのゾーンを委任します。
ここでは私が利用しているCloudflareの設定画面を掲載していますが、読者の皆さんの環境に置き換えてください。2つとも指定すると次のようになります。
設定3. DNSアプライアンスでAレコードを追加する
ここまでの手順でサブドメイン「sakura.harunobukameda.com」がDNSゾーンとしてさくらのクラウドに委任され、DNSアプライアンスで管理できるようになりました。続いて、第7回で設定したWebクラスタにIPアドレスではなくドメイン名でアクセスできるよう、次の対応をリソースレコードとして設定します。
| 設定するホスト名 | web |
| アクセスするWebドメイン | web.sakura.harunobukameda.com |
| 対応するIPアドレス | 133.125.233.216 |
ホスト名は任意に設定できますがここでは「web」とします。ブラウザーでアクセスするWebドメインは、このホスト名にサブドメインをあわせた名前になります。対応IPアドレスはロードバランサーのVIPです。それぞれ読者自身の環境に読み替えてください。
さくらのクラウドのコントロールパネルで、先ほど設定したゾーンを開き「リソースレコード」タブを選択します。右側にある「+追加」からリソースレコードを追加できます。
「追加: リソースレコード」画面で、上の表に示したホスト名やIPアドレスを「A」タイプのレコードとして設定します。Aレコードは、ドメイン名とIPアドレスを関連付ける基本的なDNSレコードです。
Webのホスト名とロードバランサーのVIPを入力し、最後に右下の「反映」をクリックします。次のようにAレコードが追加されました。
これで設定は完了となります。
Webドメイン名でアクセスしてみる
DNSアプライアンスで設定したWebドメインにWebブラウザーからアクセスしてみましょう。ここではまだTLSによる暗号化を設定していないので、プロトコルはHTTPになります。
http://web.sakura.harunobukameda.com/
次のように表示されれば無事にアクセス成功です! ここではロードバランサーがWebサーバーBに通信を振り分けています。

DNSがドメイン名を解決する順番を確認
DNSでドメイン名が解決される様子を、どのDNSサーバーを経由しているかを確認できるdigコマンドを使って見てみましょう。ローカル端末のターミナルから、次のコマンドを入力します。
dig +trace web.sakura.harunobukameda.com @1.1.1.1
実行結果は長くなるので後に掲載しますが、次の順序で名前解決されていることが確認でき、どのようにゾーンが委任されているかが分かります。
com… トップレベルドメイン(ルートDNSサーバー)harunobukameda.com… Cloudflareで取得したドメインsakura.harunobukameda.com… さくらのクラウドに委任したドメインweb.sakura.harunobukameda.com… DNSアプライアンスで設定したドメイン
実行結果の全体は以下のとおりです。
$ dig +trace web.sakura.harunobukameda.com @1.1.1.1
; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> +trace web.sakura.harunobukameda.com @1.1.1.1
;; global options: +cmd
. 515223 IN NS a.root-servers.net.
. 515223 IN NS b.root-servers.net.
. 515223 IN NS c.root-servers.net.
. 515223 IN NS d.root-servers.net.
. 515223 IN NS e.root-servers.net.
. 515223 IN NS f.root-servers.net.
. 515223 IN NS g.root-servers.net.
. 515223 IN NS h.root-servers.net.
. 515223 IN NS i.root-servers.net.
. 515223 IN NS j.root-servers.net.
. 515223 IN NS k.root-servers.net.
. 515223 IN NS l.root-servers.net.
. 515223 IN NS m.root-servers.net.
. 515223 IN RRSIG NS 8 0 518400 20251116050000 20251103040000 61809 . JYERwJ3slJIVVFS9GzD8E1I6US1v/NxCfShJz65Le2ujZuvFbeCjh4CA pyViCcT7IWKbhTU7nT9A3Mh7+TrQvLrYFZ2+1wd2MEdvU7eghT3Ybns7 FRSdA6CtuNVXxWcDGl8DeBeFTvYLbbyn+wP6GUlztwdxqs4Y5ICF9zuq aRCEIqhEk8AnTtvtK4ZXBCzrHp+TuKGfZecCWe/e1xO2EbLX3FTOrx2m SnU4ozMT0f/I5Wh8M9PuUblACK+odip2FwuZq0QRo0fTbCj/zV6yf7Xo VjJANgW68XXoY5LKicRxoTZFnrIqtcm5SeICm5LHZRUP4UKaoXSWp0AD NzPing==
;; Received 525 bytes from 1.1.1.1#53(1.1.1.1) in 52 ms
;; UDP setup with 2001:500:1::53#53(2001:500:1::53) for web.sakura.harunobukameda.com failed: network unreachable.
;; no servers could be reached
;; UDP setup with 2001:500:1::53#53(2001:500:1::53) for web.sakura.harunobukameda.com failed: network unreachable.
;; no servers could be reached
;; UDP setup with 2001:500:1::53#53(2001:500:1::53) for web.sakura.harunobukameda.com failed: network unreachable.
;; UDP setup with 2001:7fd::1#53(2001:7fd::1) for web.sakura.harunobukameda.com failed: network unreachable.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 86400 IN DS 19718 13 2 8ACBB0CD28F41250A80A491389424D341522D946B0DA0C0291F2D3D7 71D7805A
com. 86400 IN RRSIG DS 8 1 86400 20251116050000 20251103040000 61809 . tXZFhjA5f0kYonLbclM1yE7uzSO371Gc2IgYmGPvlCMMEThSCy7lL+y2 7TNy0UtEV3FKYuDeIWwZXMIXiPdY7bCRQSlHUGvoD9uH9Ycsp2vJqXOH YytS+gKQsJGHSsa1iL7zLguE9BbnijkbW8RU6T/+HVIiq5LM3tHyDzYC ZmFie4S+b54jrvGs3NXRUzPOtT+iR26JuRThON0KTDS9c80JyOpV3Ln5 UB93mZj+t6ukltCHXp+yQAueQSakB0PKL1LE5XWWrjcUKpiFclCsWf3n 26iUPNV7MRvyLwWSPnpcIJbwxQItb5ZgjKu7jwI59MkVjRuWAsLrfKCR Eqaamw==
;; Received 1189 bytes from 192.203.230.10#53(e.root-servers.net) in 55 ms
harunobukameda.com. 172800 IN NS rosalie.ns.cloudflare.com.
harunobukameda.com. 172800 IN NS vicky.ns.cloudflare.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 900 IN NSEC3 1 1 0 - CK0Q3UDG8CEKKAE7RUKPGCT1DVSSH8LL NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 900 IN RRSIG NSEC3 13 2 900 20251107002625 20251030231625 46539 com. 6Y8c0tY2ZFpgv5p69zEsq/glj+XVjXTdKYR10TMZcE521xq+Lwj/0/9H VfYi6M6UuzIBh4tACNMGES/zSFQPxQ==
75NF5UETI8F3F990RRIIBNHJC9DIO6TO.com. 900 IN NSEC3 1 1 0 - 75NFH5E0S4A2T3TU7M12K0OFU3SD1O2H NS DS RRSIG
75NF5UETI8F3F990RRIIBNHJC9DIO6TO.com. 900 IN RRSIG NSEC3 13 2 900 20251107014003 20251031003003 46539 com. KKKAt4IGmRwO3msU0aajfx107/FmzTPWt9KX+bfLCe3PEwjt6PpR+HY0 ciL4IbyGAwpKrJ6W4+t8pbJe5RvwDQ==
;; Received 735 bytes from 192.48.79.30#53(j.gtld-servers.net) in 35 ms
sakura.harunobukameda.com. 300 IN NS ns1.gslb8.sakura.ne.jp.
sakura.harunobukameda.com. 300 IN NS ns2.gslb8.sakura.ne.jp.
;; Received 112 bytes from 172.64.34.57#53(rosalie.ns.cloudflare.com) in 47 ms
web.sakura.harunobukameda.com. 3600 IN A 133.125.233.216
;; Received 74 bytes from 153.120.86.68#53(ns1.gslb8.sakura.ne.jp) in 63 ms
関連リンク
本記事では、さくらのクラウドの以下のマニュアルを参照しています。
あわせて以下のサービスやWebページも参照しています。





