【GCP入門編・第26回】 Cloud DNS でドメインの DNS レコードを作成しよう!
投稿日:2018/12/10 | 最終更新日:2020/09/10
独自のドメインを使って、開発したサービスを公開したりメールサーバーを運用したりする際に必要となるのが DNS サーバーの設定です。ドメインをドメインレジストラで購入し、ドメインレジストラが提供する DNS サーバーで設定を行ったことがある方は多いのではないでしょうか。
GCP では Cloud DNS という名前で DNS のサービスが提供されています。信頼性が非常に高く、レイテンシーの低い Google の DNS サーバーを使用して、自分のドメインの名前解決を行うことが可能です。 Google の SLA は、Google の権威ネームサーバーについて 100% の可用性を保証しており、本番環境で使用する DNS サーバーとして安心して利用できるサービスとなっています。
さらに、 Cloud DNS は他のGCPのサービスと同様、コマンドラインや API 経由で DNS レコードの作成や編集を行うことが可能です。プログラマブルに DNS のレコードを編集可能なため、アプリケーションが自動的に DNS の設定を行うようなケースにも対応できます。
この記事では、 Cloud DNS を使用して、取得したドメインの DNS レコードを作成してみます。ウェブブラウザのコンソールと、 gcloud コマンドを使用した例を紹介します。
この記事の目的
- Cloud DNS を使用して、取得したドメインの DNS レコードを作成しよう。
ゾーンを作成する
ゾーン (Cloud DNS での正式名称はマネージド ゾーン)とは、同じドメイン名(例: example.com)を共有する DNS レコードをすべて格納するコンテナのことを指します。
ゾーンを作成すると、そのゾーンに対する DNS クエリへのレスポンスを処理するためにネームサーバーのセットが自動的に割り当てられます。
まずはウェブブラウザで GCP のコンソールを開き、左側のメニューから [Network services] をクリックし、次に [Cloud DNS] をクリックします。
下の画面のように、 Cloud DNS のゾーン一覧ページが開きます。一つもゾーンを作成していない状態では、 [Create Zone] ボタンが表示されているのみとなっているでしょう。
[Create Zone] をクリックすることで、新規ゾーンの作成画面に移動します。下の画面に表示されているように、 Zone name に “my-example-zone” と入力し、 DNS name に取得したドメイン名を入力します。 DNS SEC は off のままに、 Description は空白のままにします。
入力が完了したら、 [Create] をクリックします。これでゾーンの作成は完了です。Zone details のページにリダイレクトされ、作成されたゾーンの情報が閲覧できます。
ここまでの操作を行ったら、次にドメインレジストラに移動してネームサーバーを設定します。ネームサーバーの設定はドメインレジストラごとに異なりますが、指定するネームサーバーの一覧は Zone details のページの [Registrar Setup] をクリックすると表示されます。ネームサーバーの一覧は下の画面のように表示されます。
ドメインレジストラでのネームサーバー設定が完了したら、レコードの追加を行いましょう。
レコードの追加を行う
レコードの追加は Zone details ページの [Add Record set] ボタンをクリックすると行うことができます。ボタンをクリックすると、下の画面のようにレコードの情報を入力する画面が表示されます。
この例では、 gcp.design
というゾーンに、 www.gcp.design
というドメイン名のAレコードを追加しています。 [Resource Record Type] をクリックするとレコードのタイプを選択することが可能です。
情報の入力が完了したら、 [Create] をクリックします。10分ほど時間が経ったら、ターミナルを開き、以下のコマンドで名前解決が行えるかどうか試してみましょう。
nsloookup www.gcp.design
上のコマンドを実行すると、以下の画面のように設定した IP アドレスが表示されるでしょう。
gcloud コマンドを利用して、レコードの追加を行う
Cloud DNS では gcloud コマンドを利用してゾーンの管理を行うことが可能です。ここでは、 gcloud コマンドを利用してレコードの追加を行ってみましょう。
まず、ゾーンの一覧を gcloud コマンドで表示してみます。以下のコマンドを実行すると、先ほど作成したゾーンが表示されます。
gcloud dns managed-zones list
次に、このゾーンに登録されているレコードの一覧を表示します。以下のコマンドを実行します。
gcloud dns record-sets list --zone=my-example-zone
それでは、このゾーンに新規にレコードを追加します。ゾーンの追加は、トランザクションを開き、レコードの操作を行い、トランザクションを閉じるという手順で行われます。
トランザクションは、一緒に伝播すべき 1 つ以上のレコード変更のグループです。したがって、トランザクション全体が成功または失敗のいずれかになるため、データが中間状態のままになることはありません。
まず、以下のコマンドでトランザクションを開始します。実行後は以下の画面のように、メッセージのみが表示されます。
gcloud dns record-sets transaction start -z=my-example-zone
次に例として、app.gcp.design
を追加します。以下のコマンドでトランザクションにレコードを作成する操作が追加されます。
gcloud dns record-sets transaction add -z=my-example-zone \
--name="app.gcp.design." --type A --ttl=300 "IPアドレス"
この時点ではまだ、操作は実行されていません。次のコマンドを実行することで、トランザクションが実行されます。
gcloud dns record-sets transaction execute -z=my-example-zone
上の画面のように、トランザクションID, 開始時間、状態が表示されます。record-set list
コマンドで追加が正常に行われたかどうか確認してみましょう。
gcloud dns record-sets list --zone=my-example-zone
おわりに
いかがでしたか。 Cloud DNS では コンソールからでも、 gcloud コマンドでも DNS ゾーンの管理を簡単に行うことが可能です。
GCP 上で独自ドメインを用いた各種サービス開発を行なっている場合には、 DNS 管理を一元化でき、 Google の高い可用性と低いレイテンシの恩恵を受けることが可能な Cloud DNS を一度検討してみてはいかがでしょうか。
弊社トップゲートでは、 GCP 、または G Suite 導入をご検討をされているお客様へ「Google Meet で無料個別相談会」を実施いたします。導入前に懸念点を解決したい方、そもそも導入した方がいいのかをお聞きしたい方はお気軽にお申し込みください!
弊社トップゲートでは、GCPを活用したトレーニングも開催しておりますので、ご興味ございましたらお気軽にお問い合わせください!
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
GCP、G Suite、TOPGATEの最新情報満載!
同じシリーズの記事
-
【GCP入門編・第31回】 GCP のネットワークにサブネットを追加する
-
【GCP入門編・第30回】 Cloud CDNで静的ファイルの配布を行う
-
【GCP入門編・第29回】Cloud Load Balancing で Web アプリケーションにロードバランサーを設定する
-
【GCP入門編・第28回】インスタンスグループを使って複数のインスタンスを管理する
-
【GCP入門編・第27回】インスタンステンプレートを使って、よく使うインスタンスを素早く立ち上げよう!
-
【GCP入門編・第26回】 Cloud DNS でドメインの DNS レコードを作成しよう!
-
【GCP入門編・第25回】 Cloud SQL for MySQL で Master-Slave 構成を組もう!
-
【GCP入門編・第24回】 Stackdriver Debugger で本番環境のデバッグを行おう!
-
【GCP入門編・第23回】 Stackdriver Error Reporting でアプリケーションのエラーを収集しよう!
-
【GCP入門編・第22回】 Stackdriver Logging で収集したログに対して、フィルタの実行や警告を設定しよう!
-
【GCP入門編・第21回】 Stackdriver Logging でアプリケーションのログを収集しよう!
-
【GCP入門編・第20回】 手間いらずでログ管理ができる Stackdriver Logging のご紹介!
-
【GCP入門編・第19回】 Stackdriver Monitoring でメールや Slack による通知を設定しよう!
-
【GCP入門編・第18回】 Stackdriver Monitoring で Google App Engine の監視をしよう!
-
【GCP入門編・第17回】 Stackdriver Monitoring で Google Compute Engine を監視しよう!
-
【GCP入門編・第16回】アプリのパフォーマンスを視覚的に確認できる Stackdriver Monitoring を紹介!
-
【GCP入門編・第15回】 GCP から AWS までモニタリングできる Google Stackdriver を紹介!
-
【GCP入門編・第14回】 Cloud Functions を使ってサーバレスアーキテクチャを体験しよう!
-
【GCP入門編・第13回】 Cloud Datalab でデータの可視化を行ってみよう!
-
【GCP入門編・第12回】 BigQuery を使って気軽にビッグデータの解析を行ってみよう!
-
【GCP入門編・第11回】 Google Cloud Dataproc を使ってデータを解析しよう!
-
【GCP入門編・第10回】スケーラブルな NoSQL データベースサービス Cloud Bigtable を使ってみよう!
-
【GCP入門編・第9回】 Cloud Shell で、いつでもどこでも Google Cloud Platform (GCP) が操作可能に!
-
【GCP入門編・第8回】 Container Registry での Docker イメージの使用方法!
-
【GCP入門編・第7回】知らなきゃ損! Google Container Engine (GKE) での Dockerイメージを使ったコンテナの起動方法!
-
【GCP入門編・第6回】これは簡単! Google App Engine での Cloud Datastore の利用方法!
-
【GCP入門編・第5回】 Google App Engine の魅力とは? Google App Engine (GAE) でのアプリケーション起動方法!
-
【GCP入門編・第4回】すぐ出来なくても大丈夫!サンプルアプリで Google Compute Engine (GCE) の動作練習!
-
【GCP入門編・第3回】難しくない! Google Compute Engine (GCE) でのインスタンス起動方法!
-
【GCP入門編・第2回】まずは、ここから! Google Cloud Platform (GCP) の事前準備!
-
【GCP入門編・第1回】エンジニア必読!今さら聞けない、Google Cloud Platform (GCP) とは?