Androidはワンツーパンチ 三歩進んで二歩下がる

Android卵プログラマーの記録ブログ

【6】DNSテスト用に無料の独自ドメインを取得してGoogle Cloud DNSでネームサーバの設定をする(GCE,freenom,http+独自ドメイン+ポート3000でアクセスする)

これはHerokuからGCP無料枠にRailsアプリを引越ししたときにやったことシリーズの【5】の続きです。
GCE に 作成した VM インスタンス上で Docker コンテナを起動して、http://IPアドレス:3000という形で実行することができましたが、今回はhttp://独自ドメイン:3000という形で起動するという形にしようと思います。そこのところのメモです。

1. 公式サイト

2. 何をやりたいのか

Heroku で本番運用していたWeb サイトGoogle Compute Engineに引越し作業中で、その作業手順をメモしています。
このシリーズの【5】までの工程で、GCE に 作成した VM インスタンスで Web サイトをhttp://IPアドレス:3000という形で表示出来るようになりました。

今後は独自ドメインで運用するようにしたいですが、使用するドメインが本番稼働中なので一時的にテスト用の無料ドメインを取得して DNS 設定をして表示テストをしたいと思います。

この記事ではhttp://独自ドメイン:3000という形で表示できれば OK とします。
別の記事で Nginx+Let's Encrypt を使って最終目標であるhttps://www.独自ドメインという形で表示できるようにします。

なお、ネームサーバーにGoogle Cloud DNSを使用していますが、私がちょっと試してみたかったので使っていますがこれでないと出来ないわけではありません。
現に本番ではドメインを取得したお名前.com のネームサーバーを使用しております。
freenom が提供するネームサーバを使えば無料で設定出来るようなので、こちらを試すのが良さそうです。

3. 目標

  • freenom で独自ドメインを取得する
  • Google Cloud DNS でネームサーバーの設定をする
  • http://独自ドメイン:3000という形でウェブサイトが表示できることを確認する

4. 注意点

  • Google Cloud DNSは使用料金がかかりますのでご注意ください。
  • DNSテスト成功後すぐにネームサーバーの設定を削除しましたが 2 円請求されました。

5. 参考サイト様

本当に参考になりました。ありがとうございます!

6. freenom で独自ドメインを取得する

参考サイト様の記事を参考に取得します。

記事がとてもよくまとまっているので、ここでは取得の説明を割愛させていただきます。

1 点、登録時に「Forward this domain to」という欄に適当な URL を入力したのですが、あとでネームサーバーを入力したところ「URL Forwarding」から自動で削除されていました。(ので自分で消さなくてよい)

自分はdousa-kensho.tkというドメインを取得しました。
すごく気軽に無料で取得できてありがたいサービスだと思います。
情報を提供してくださってる方々にも感謝しております。

↓これはdousa-kensho.tkに登録後、転送先サイトが表示された時のスクリーンショットです。 f:id:sakura_bird1:20190310171823p:plain:w600

7. Google Cloud DNS でネームサーバーの設定をする

dousa-kensho.tkというドメインを GCE の VM インスタンスが持っている外部 IP アドレスに向けるため、ネームサーバーで紐づけを行います。

7.1. Cloud DNS のゾーンを作成

GCP メニューよりネットワークサービス > Cloud DNS を選択します。

f:id:sakura_bird1:20190310174508p:plain:w300

ゾーンを作成します
ゾーンとは、ネームサーバがドメインを管理する範囲のことです。

f:id:sakura_bird1:20190310174556p:plain:w300

次の項目を設定します。

設定項目 設定内容
ゾーン名 任意の名前
DNS 使用するドメインを記入
DNSSEC わからなければオフのままで OK

f:id:sakura_bird1:20190310175025p:plain:w500

DNSSECという言葉が出てきましたが、Google によるとこのような意味のようです。

DNS Security(DNSSEC) | Cloud DNS | Google Cloud

DNSSEC は、ドメインネーム ルックアップに対するレスポンスを認証するドメインネーム システムの機能です。これらのルックアップに対するプライバシー保護は行いませんが、攻撃者が DNS リクエストに対するレスポンスを改ざんまたは汚染できないようにします。

「作成」ボタンをクリックするとこのような画面が表示されます。
DNS サーバーを、レジストラドメインを取得した業者)のネームサーバーに指定する必要があります。
この作業は後ほど行います。
「レコードセットを追加」をクリックして A レコードの追加を行います。

f:id:sakura_bird1:20190310175838p:plain:w500

7.2. A レコードを追加する

A レコードを設定することで、DNS サーバーで IP アドレスとドメイン名を紐付けします。
ここではレコードセット 2 件(www 有りと無し)を登録します。

レコードセットの追加で次の項目を設定します。

設定項目 設定内容
DNS サブドメインがあれば入力(ここではサブドメイン無しと www の 2 件)
リソースレコードのタイプ A
IPv4 アドレス IP アドレスを入力(ここでは GCE の VM インスタンスの外部 IP アドレス)

1 件目
f:id:sakura_bird1:20190310182531p:plain:w300

2 件目
f:id:sakura_bird1:20190310182604p:plain:w300

ゾーンにAレコードが2件追加されたのを確認できると思います。
NS レコードの 4 件のアドレスを freenom で登録する必要があります。

f:id:sakura_bird1:20190310183607p:plain:w500

7.3. freenom 側にネームサーバーを登録する

freenom にアクセスしてサインインします。
http://www.freenom.com/ja/index.html?lang=ja Freenom - 誰でも利用できる名前

「Services」 > 「My Domains」
をクリックします。
編集対象のドメインの「Manage Domain」をクリックします。

「Management Tools」 > 「Nameservers」
をクリックします。

f:id:sakura_bird1:20190310184421p:plain:w400

「Use custom nameservers」という項目にチェックを入れてから
Google Cloud DNS で取得した 4 つのレコード情報を入力し、「Change Nameservers」ボタンをクリックします。

f:id:sakura_bird1:20190310184951p:plain:w400

これでネームサーバーの設定は終わりです。

8. http://独自ドメイン:3000という形でウェブサイトが表示できることを確認する

ここまでの作業でdousa-kensho.tkというドメインとサーバーの IP アドレスが紐付いたのでブラウザでアクセスして確認します。
前回までのテスト時と同じくポート 3000 番で外部に公開しているので、確認するアドレスはこのようになります。

http://dousa-kensho.tk:3000
http://www.dousa-kensho.tk:3000

このように表示できました。
f:id:sakura_bird1:20190310185655p:plain:w400

今回はこれで終わりです。
次回はhttps+ドメインでアクセスできるようにします。
Google Cloud DNS は有料なのでアクセスが確認出来たら、ゾーンの設定は早めに削除しておきます。

9. 関連リンク