
GCP - Cloud DNS
Cloud DNS - 手を動かして概要を理解
ネットワーク周りはインフラ屋さんが設定することが多く触る機会が限られているので自分で触ってみた。
GCPを使ってWEBサービスを公開するまで
Compute Engine(GCE)やK8s Engine(GKE)はインスタンスが立ち上がっている間は料金が発生しまうため最小構成でも$10-$15の料金はかかってしまうため個人利用ではなかなか手が出せません。
Cloud Runはフルマネージドのサーバーレスコンテナサービスです。
毎月200万アクセスの無料枠があるため無料枠内で収まる場合はぜひ利用したいサービスです。
WEBサービスの構成例

ユーザーはCloud Domainsを使ってドメインを取得するところから始めます。
ドメインを取得したらCloud DNSまたはGoogle Domainsを使ってドメインレジストラへ登録します。
新規にVPCネットワークを作成するかデフォルトネットワークに外部IPアドレスを追加します。
GCEを利用する場合はGCE作成時にVPCネットワークを選択するとIPアドレスが割当られます(GKEは執筆時点で未検証)。
Cloud Run を利用する場合はドメインマッピング(プレビュー版機能)からドメインのマッピングを行います。
Cloud Load Balancingを利用する方法もありますが別料金が発生するためCloud Runのドメインマッピングを選択(下記は公式ドキュメント)。
ファイアウォール(allow-httpルール)でIPアドレスとポートを指定します。
Cloud DNSとは
Google Cloud(GCP)上で構築されたネットワークアドレスにドメイン名を割り当てるマネージドサービス。
8.8.8.8はGoogleが提供しているパブリックDNDサービスの一つ。
Cloud DNS関連用語
1. ドメインを取得
Cloud Domainsからドメインを取得
利用可能なドメインを検索
minaraiで検索した結果から今回はminarai.clubが覚えやすいため利用してみようと思います。
% gcloud domains registrations search-domains minarai.com
DOMAIN AVAILABILITY YEARLY_PRICE NOTICES
minarai.com UNSUPPORTED
minarai.net UNAVAILABLE
minarai.app AVAILABLE 14.00 USD HSTS_PRELOADED
minarai.dev AVAILABLE 12.00 USD HSTS_PRELOADED
minarai.info AVAILABLE 12.00 USD
minarai.online AVAILABLE 30.00 USD
minarai.xyz AVAILABLE 12.00 USD
minarai.store AVAILABLE 50.00 USD
minarai.one AVAILABLE 12.00 USD
minarai.me AVAILABLE 20.00 USD
minarai.cloud AVAILABLE 20.00 USD
minarai.club AVAILABLE 13.00 USD
minarai.live AVAILABLE 20.00 USD
minarai.ink AVAILABLE 28.00 USD
minarai.page AVAILABLE 10.00 USD HSTS_PRELOADED
minarai.website AVAILABLE 20.00 USD
minarai.wiki AVAILABLE 28.00 USD
minarai.icu AVAILABLE 12.00 USD
minarai.buzz AVAILABLE 40.00 USD
minarai.win AVAILABLE 30.00 USD
minarai.beauty UNSUPPORTED
minarai.mom UNSUPPORTED
minarai.fans AVAILABLE 12.00 USD
minarai.quest UNSUPPORTED
minarai.monster UNSUPPORTED
詳細情報を取得します
% gcloud domains registrations get-register-parameters minarai.club
availability: AVAILABLE
domainName: minarai.club
supportedPrivacy:
- PRIVATE_CONTACT_DATA
- PUBLIC_CONTACT_DATA
yearlyPrice:
currencyCode: USD
units: '13'
Cloud DNS プロバイダーのパブリックゾーンを作成
CLOUD_DNS_ZONE_NAME=asia-northeast1-c
DOMAIN_NAME=minarai.club
gcloud dns managed-zones create $CLOUD_DNS_ZONE_NAME \
--description="for minarai.club" \
--dns-name=$DOMAIN_NAME
ドメインを登録
gcloud domains registrations register $DOMAIN_NAME
ドメイン名、プロバイダー、ゾーン名と登録者の情報を入力し最後に登録者情報の公開・非公開設定を選択すると登録オペレーションが終了します
Waiting for 'operation-1682431285325-5fa298f1eef81-5cc80ac4-2c0ef563' to complete...done.
Created registration [minarai.club] Note:
The domain is not yet registered.
Wait until the registration resource changes state to ACTIVE.
連絡先情報を確認する
ドメインを登録すると、ドメインの連絡先情報で指定したアドレスに Cloud Domains から確認メールが送信されます。この電子メールの件名には、要対応: 電子メール アドレスを確認してくださいという内容が含まれています。
15 日以内に連絡先情報を確認しないと、ドメインが無効になります。
2. Cloud DNS を使用してドメイン名の DNS レコードを設定
Google Domainsのメール転送サービスを利用する場合の注意点
レジトラサービスにCloud DNSを利用する場合はのMXレコードを追加します。値はGoogle Domainsに登録されているMXレコードと同じです。
Google Domainsを利用する場合はAレコードを追加して外部IPアドレスを登録します。
一般公開マネージド ゾーンを作成
コマンド、もしくはCloud DNSコンソールから作成します
gcloud dns managed-zones create $CLOUD_DNS_ZONE_NAME \
--description="for minarai.club" \
--dns-name=$DOMAIN_NAME
ドメインが外部 IP アドレスを指すようにレコードを作成
レコードを追加する場合、同じ DNS 名のレコード セットに 2 つの値または文字列を追加できます。レコード セットを追加するときは、最初の値と 2 番目の値の間にスペースを追加する必要があります。
ゾーンを選択します
「標準を追加」または「ルーティングポリシー付きで追加」を選択します
ルーティングポリシー付きで追加はラウンドロビンの設定をしつつレコードを作成します
リソースのレコードタイプで「A」(IPv4)を選択します
IPv6の場合は「AAAA」を選択します
IPアドレスを入力します
IPアドレスはVPCネットワーク(GCPコンソール)またはGCEインスタンスを作成時に作成できます。
作成をクリックします。
サブドメインを作成
ゾーンを選択します
「標準を追加」または「ルーティングポリシー付きで追加」を選択します
ルーティングポリシー付きで追加はラウンドロビンの設定をしつつレコードを作成します
DNS名にサブドメイン名を入力します
リソースのレコードタイプで「CNAME」を選択します
Canonical nameには、ドメイン名を入力し、その後にピリオドを入力します (例: example.com.)。
作成をクリックします。
3. Cloud Domainsの設定を更新
Cloud DNS のNSの設定をドメインレジストラに登録します
3-1. Cloud Domainsを利用する場合
Google Domainsのメール転送サービスを利用する場合はCloud DNSの該当のゾーンにMXレコードを追加します
「Cloud Domains」ページへ移動
「DNS の詳細を編集」をクリック
「Cloud DNSを使用する(推奨)」を選択
「保存」をクリック
3-2. Google Domainsを利用する場合
「Cloud Domains」ページへ移動
「Google Domains で表示」をクリック
もしくは「Google Domains」ページへ移動
「マイドメイン」から紐づけるドメインを選択
メニュー「DNS」をクリック
「デフォルトのネームサーバー」を選択
「カスタムレコード」を追加します
でAタイプレコードを選択しデータに外部IPアドレスを入力し「保存」をクリック
4. その他(メールアドレスを作成)
まだドメイン取得が完了していないため、メールアドレスは利用できません。個人利用で概念理解だけであればメール転送をする方法でメール作成で十分だと思います、
Google Domains のメール オプション
1. Google Workspace のカスタムメール: すべての Google Workspace サブスクリプションには、安全なカスタムメール、ビデオ会議、カレンダー、ドキュメント、スライド、スプレッドシートなどのコラボレーション ツールが含まれています。Google Workspace のカスタムメールの詳細。
2. メール転送オプション: 最大 100 個のメールアドレスを追加料金なしで作成して、個人用のメールに転送できます。 詳しくは、メールを転送する方法をご覧ください。 詳しくは、メールを転送する方法をご覧ください。
4-1. Gmailを利用したメール送信設定
メールを転送する方法から事前にメールエイリアスの設定を済ませているものとします。
Google アカウントのアプリ パスワードを生成
1. パソコンで Google アカウントにアクセスします。
2. 左側の [セキュリティ] をクリックします。
3. [Google へのログイン] の [アプリ パスワード] をクリックし、必要に応じてログインします。
3-1. [アプリ パスワード] が見つからない場合は、[2 段階認証プロセス] をクリックし、アカウントの 2 段階認証の手順に従います。再ログインが必要になる場合があります。
4. [アプリ パスワード] で、[アプリを選択] [メール] の順にクリックします。
5. [デバイスを選択] [その他] の順にクリックします。
6. 自分のドメイン名を入力して [生成] をクリックします。
7. アプリ パスワードのボックスから、生成された 16 文字のパスワードをコピーします。新しい送信元アカウント(転送先アカウント)を追加するときに、このアドレスが必要になります。
メール エイリアスを追加
1. パソコンで Gmail にアクセスします。
2. 右上にある歯車アイコンをクリックし [すべての設定を表示] をクリック。
3. [アカウントとインポート] タブまたは [アカウント] タブをクリックします。
4. [名前] 欄の [他のメールアドレスを追加] をクリックします。
5. 開かれたウィンドウで、受信者に対して表示する名前を入力します。
5-1. 例:info
6. メール転送用に設定したメールアドレス エイリアスを入力します。
6-1. 例: info@minarai.club
7. [エイリアスとして扱います] チェックボックスがオンになっていることを確認し、[次のステップ] をクリックします。
8. [SMTP サーバー] フィールドに「smtp.gmail.com」と入力します。
9. [ポート] メニュー [587] を選択します。
10. [ユーザー名] フィールドにログイン用のユーザー名を入力します。
10-1. googleアカウント名
11. [パスワード] フィールドに16 文字のアプリ パスワードを入力します。
12. [TLS を使用したセキュリティで保護された接続] ボックスがオンになっていることを確認します。
13. [アカウントを追加] をクリックします。
5. 最後に
Google CloudではCloud Domains(Google Domains),Cloud DNS, VPC ネットワークなどでフルマネージドサービスで完結するので予算も含めて管理がしやすいのかなと思いました。
ところで、ヘッダー画像は冬の清水寺です。
前日は雪が降っていたのですがこの日は快晴で京都観光名所巡りをしてきました。機会があればまた訪れたいと思います。