Google Domains で .dev ドメイン取得

購入

Googleが .dev ドメインを開放していくつかのレジストラで取得できるようになったらしいですが、とりあえず一番安そうな Google Domainsで取ってみました。 初日ほど混んでなくて普通にドメイン検索できました。

まずは、

domains.google

で、hogehoge.dev とかなんとか検索すると値段が出ます。 メジャーじゃない名前やで4文字以上ならだいたい1,400円/年で出てくるようです。 有名な人や企業、地名の名前や辞書に載っているような単語は結構高いものもあるようです。 (ちなみにhogehoge.devはUnavailableでした)

気に入ればカートに入れて購入します。 デフォルトで自動更新になっているようです。(とりあえず自動更新にしておきました)

購入に進むと、名前と住所などを入れるフォームが出てきます。 とりあえず日本語はやめておいて英語っぽく半角英数で入れておきました。

次に進むと、Google Payで支払うかと聞いてきます。 どうやらブラウザでログインしていたGoogleアカウントと自動的に紐づけたようです。 ここでポチッと押すとメールが飛んできて、メールの中の「メールアドレスを確認」を押せば購入完了です。

そういえばドメインを買うときは英語しかなさそうでしたけど、買った後でGoogle Domainsにログインして管理するところは右下の言語設定を日本語にすると切り替わりました。
最初開くと日本語になってるけど、あえて日本語をもう一度選んでから保存すると切り替わりましたw

名前解決

もともとGCEの無料インスタンスで遊んでいたついでに.devドメインの事を思い出したので、名前解決ができるようにします。

固定IP設定

普通にGCEのインスタンスを作成すると外部IPがエフェメラルになってます。
まずは固定IPにしちゃいます。
手順は、

  1. インスタンスを選択
  2. 編集
  3. ネットワーク インターフェース > 外部IP > IPアドレスを作成

です。
これで名前をつければ外向けの固定IPが確保できます。

ネットワークサービス階層
 プレミアム (現在のプロジェクトレベル階層、変更)
 標準

という選択肢があるのですが、無料でやりたいがゆえに標準にしてしまうと割り当てるインスタンスと階層が違うとかなんとか言われてうまくいきません。
とりあえずプレミアムでいいっぽいです。
私は一度消して作り直しました。

f:id:gozuk16:20190306232737p:plain

作成した固定IPが外部IPに出ていればおけ。

f:id:gozuk16:20190306233040p:plain

外部IPを予約して使わないと課金されるのでいらなくなったら消すのを忘れずに。
だいぶ昔の記憶ですがAWSもそんな感じでしたね。

DNS設定

ドメインもIPも準備できたら名前解決しよう。
Google DomainsでもCloud DNSでも出来そうですが、今回はCloud DNSでやりました。(なんとなく)

  1. Cloud DNSドメインの設定 GCPのメニューから、ネットワーキング > ネットワークサービス > Cloud DNSを選択。
    ゾーンの作成からソーン名と自分が取ったドメイン名を入れます。
    DNSSECはデフォルトオフだったのでそのまま。(よく知らないのでちゃんと調べてからでもいいかな)
    これでNSレコードができます。
    f:id:gozuk16:20190306233316p:plain
    4つのDNSサーバが登録されているので控えておきます。
    f:id:gozuk16:20190306233516p:plain
  2. Google Domainsの設定 Google Domainsにログインすると管理画面に入れます。
    ドメインを選ぶと右のメニューにDNSとあるのでここを開いて、ネームサーバーの設定をします。
    デフォルトでGoogleのネームサーバが設定されているのですが↑で作ったNSレコードのサーバと違うので、カスタムネームサーバーを使用するにして登録します。(同じならもちろん何もする必要ないですけど) f:id:gozuk16:20190306233620p:plain
  3. サブドメインの設定 Cloud DNSに戻って、ゾーン > 作ったゾーンを選択 > ゾーンの詳細 > レコードセットを追加 します。
    ドメイン名でAレコード作ります。
    DNS名:example.dev
    リソースレコードのタイプ:A
    IPv4アドレス:先程作った固定IP
    にします。TTLはデフォルトの5分のまま作りましたが、落ち着いたら伸ばしておけばよいかも。
    後はとりあえずwwwだけ登録。
    DNS名:www.example.dev
    リソースレコードのタイプ:CNAME
    正規名:example.dev
    です。
  4. 確認 TTL 5分なので、5分たったら確認です。
    自分のMac
$ dig www.example.dev

;; ANSWER SECTION:
www.example.dev.        300 IN  CNAME   example.dev.
example.dev.        300 IN  A   xx.xx.xx.xx

おー、引けてる!
こりゃ簡単だ〜。
bindのコンパイルからやってた時代にとあるコミュニティのサーバ管理やってたけど隔世の感あるなぁ。
クラウド素晴らしい。

あとは

SSHを別ポートであげるのはやった。
devドメインhttpsじゃないといけないので証明書を設定しなきゃだけど、Google-managed SSL certificateってものがあって中身はLet's Encriptらしい。
ロードバランサー(負荷分散)から登録するということらしいのでまだ試してないが無料の範囲でできるならやってみようかな。それともLet's Encriptを自動更新するようにしたほうがいいか。

まあ、また時間が取れたら考えよ。