「Cloud DNSの機能やできることを知りたい!」
「Cloud DNSを活用することでどういったメリットがあるのだろう…」
DNS(Domain Name System)はドメイン名をIPアドレスに変換する、インターネットの基盤となる重要なプロトコルで、Webサイトやアプリケーションへのアクセスに必要不可欠な要素です。
本記事ではGoogle Cloudがクラウド上で提供する可用性と効率に優れたDNSサービスであるCloud DNSについて解説します。
Cloud DNSとは
Cloud DNSはGoogle Cloudが提供するクラウド上のマネージド権威DNSです。
権威DNSとはドメイン名とIPアドレスが対応づけられたゾーン情報を保持して、他のDNSサーバに問い合わせることなく応答を返せるDNSサーバーのことです。
Cloud DNSを使用すると、独自にDNSサーバーやソフトウェアを管理する負担なく、ゾーンとレコードをDNSで公開できます。
ゾーンは一般公開ゾーンと限定公開マネージドゾーンが提供されており、一般公開ゾーンはインターネットに公開されています。
限定公開ゾーンは1つ以上のVPCネットワークのみに公開されます。
Cloud DNSでは百万単位のゾーンとレコードを公開して管理することも可能です。
DNSについて
Cloud DNSはクラウド上で機能するDNSです。まずはDNSそのものの役割や機能について解説します。
DNSはIPアドレスとドメイン名を紐付けし、IPネットワーク上で管理するシステムです。
IPアドレスは識別番号に過ぎないため、インターネットを利用する私たちにとって分かりやすい名前をつけたものがドメイン名です。
ドメイン名 : da-sys.com
IPアドレス : 192.168.0.10
DNSがこの2つを紐づけているおかげで、私たちはドメイン名を入力してウェブサイトにアクセスすることができます。
このDNSを実行しているDNSサーバーには権威DNSサーバーとキャッシュDNSサーバーという2種類のサーバーが存在します。
権威DNSサーバーは、ドメイン名とIPアドレスが対応づけられたゾーン情報を保持して、他のDNSサーバに問い合わせることなく応答を返せるDNSサーバーのことです。
キャッシュDNSサーバーは、入力されたドメイン名から権威DNSサーバーに合致する情報を探し出すよう指示を出すサーバーのことです。
権威DNSサーバーとキャッシュDNSサーバーは互いに協力関係にあり、DNSの重要な役割を担っています。
Cloud DNSの仕組み
Cloud DNSでは次のステップでドメイン名をIPアドレスに変換しています。
- クライアントがDNSリクエストを行います。
- 再帰リゾルバ(IPアドレスからドメイン名の情報を検索する名前解決を行うソフトウェアプログラム)はそのリクエストを受信して、リクエストに対してレスポンスを認識しているか確認します。
3-a. 認識している場合、再帰リゾルバはリクエストがキャッシュに保存済みであれば、リクエストに応答します。
3-b. 認識していない場合、再帰リゾルバはリクエストを他のサーバーにリダイレクトします。
- 権威サーバーはリクエストに応答します。
- 再帰リゾルバは次回のクエリに備えて結果をキャッシュに保存します。
- 最後に情報をクライアントに送信します。
Cloud DNSの利点
Cloud DNSによるDNSの導入には以下の利点があります。
・高可用性と自動スケーリング
Googleの保有するグローバルなネットワークとデータセンターにより、世界各地の拠点でDNSゾーンをサポートし、アクセスするユーザーの地域に関わらず高い可用性と低レイテンシを保証しています。
・一般公開と限定公開DNSゾーン
一般公開DNSゾーンではインターネットに公開するサイトのDNSを提供し、限定公開DNSゾーンではVPCや社内ネットワークとのハイブリッドネットワーク環境内でのみDNSを提供します。組織内でのみDNSを使いたいか、によって使い分けが可能です。
・DNSSECによるセキュリティ
ドメイン名のルックアップに対するレスポンスを保証するDNSの機能により、DNSリクエストのレスポンスへの改竄や汚染などの攻撃を防ぎます。
上記の他にも百万単位のDNSゾーン、レコードの登録、管理が可能といった導入による利点があります。
Cloud DNSを使い始める
Cloud DNSでDNSレコードを追加して、DNSの設定を行う方法について解説します。
- Google Cloudでプロジェクトを作成、Cloud DNSにアクセス
- ドメインの追加
コンソール画面上からドメインを追加します。
「新しいゾーンの作成」よりDNSゾーンを作成します。 - DNSレコードの追加
A、CNAME、MXなど必要なDNSレコードを設定して、ドメインをIPアドレスとリンクさせます。
レコードの追加は作成したゾーンの横にある「レコードを追加」より可能です。 - トラフィックルーティングの調整
レコードの設定画面では、TTL(Time to Live)などの設定が含まれているので、これらの設定を調整して、トラフィックのルーティングを最適化します。 - 監視
運用を開始したらコンソール画面上でトラフィックのモニタリングやエラーログの表示が可能です。
この情報を元にエラーの対応やルーティングの調整を行います。
DNSの各レコードについて
Cloud DNSで設定可能なDNSレコードとその機能について解説します。
・Aレコード
IPv4でホスト名とIPアドレスの関連づけを定義するレコードです。
・AAAAレコード
IPv6でホスト名とIPアドレスの関連づけを定義するレコードです。
・CNAMEレコード
CNAMEレコードは正規ホスト名に対する別名を定義するレコードです。特定のホスト名のDNSレコードについて、別のホスト名のレコードを参照させる時に利用します。
・MXレコード
MXレコードは、対象ドメイン宛のメールの配送先(メールサーバ)のホスト名を定義するレコードです。
・NSレコード
NSレコードとは、ゾーン情報を管理するネームサーバーのサーバー名を定義するレコードです。
・HTTPSレコード
HTTPSサービスバインディングレコード。送信元が複数の代替エンドポイントを指定できます(それぞれパラメータが関連付けられています)。このレコードはHTTPをHTTPSリダイレクトします。このレコードタイプは、より一般的なSVCBレコードタイプに基づいており、同じ値形式を使用します。
・CAAレコード
SSLサーバー証明書を第三者が勝手に発行することを防止するためのレコードです。
認証局はSSLサーバー証明書を発行する際にDNSのCAAレコードを参照し、自分の認証局のコモンネームが設定されているか、 空の場合に証明書を発行することができます。 他社の認証局のコモンネームが設定されている場合は証明書を発行できません。
まとめ
本記事ではCloud DNSについてその概要と設定方法について解説しました。
特にクラウドネイティブなアプリケーションを構築している時など、非クラウドのDNSを設定、運用するのはとても面倒かと思います。マネージドDNSサービスであれば、基本的なDNS要件の対処は任せることができ、コンソール画面上やgcloudコマンドで簡単に設定できるため、とても使いやすく便利です。
AWSにもAmazon Route53、AzureにはAzure DNSとGoogle Cloud以外でもクラウドDNSサービスは提供されているので、今使っているクラウド環境と照らし合わせて選択するのが良いかと思います。
本記事を一読してCloud DNSやクラウドDNSサービスに興味を持っていただけたのであれば幸いです。
株式会社KUIXではGCPを用いたシステムの開発やコンサルティングを行っています。本格的なGCP環境の構築・導入をご検討される際は、ぜひ一度ご連絡ください!お問い合わせはこちらから

