ムームードメインで管理しているドメインをConoHa WINGとVercelにそれぞれ当てる方法

前提

  • ドメインはムームードメインで管理している
  • 主ドメインはConoHaにあてる
  • 上記のサブドメインをVercelにあてる

失敗

Vercelにあてる前はConoHaのDNSをムームードメイン側に登録していた。

特定のサブドメインのみVercelで公開したサーバに向けたくて調べたところ、Vercel側から提供されるCNAMEを設定すれば行けるとの記事が多々あり、やってみたがうまく行かず。原因は以下。

ムームードメインでは一括して他社のDNSを用いるか、ムームーDNSを用いてDNSレコードを自分で書くかを選ぶという仕様らしく、管理画面からCNAMEを設定しただけだと他社のDNSを参照するのみで動作し、CNAMEは無視されている(管理画面上では設定されているので、設定してるのになあという誤解をしていた)

解決

ムームードメインで他社DNSを使用するのをやめ、ムームーDNSを使用する設定に切り替えて、ConoHaへの参照とVercelへの参照を併記する形で設定すると両方見えるようになった。

あとで気づいたけどムームードメイン側にその説明のヘルプもあった。

でも他社のDNSを使用する場合と、ムームーDNSを使用する場合がシームレスに書かれていてちょっと分かりづらく、初学者やサーバーに疎い人間(自分含め)には伝わりにくい内容になっていると思う。とはいえ手順としてはこちらを参照すれば間違いない。

具体的な手順

ConoHaのサーバー情報を確認

管理画面にログインし、左メニューのサーバー管理 > サブメニューの契約情報と遷移して、メール/FTP/ネームサーバー情報というトグルを開きDNS情報までスクロールして、DNSレコードに書き込む情報を確認する。

VercelのDNSレコード情報の確認

Vercelの管理画面でデプロイしたプロジェクトのSettings > Domainsと開いて、利用したいサブドメインを追加する。

サブドメインを入力してAddすると以下のような表示が開く。

Invalid Configurationは使用するレジストラで設定をちゃんとしてVercel側で確認できたら消えるので、ここでは気にしない。

下部にあるDNSレコード情報を把握する。

ムームードメインの設定

ログインして、ドメイン管理 > ネームサーバー設定変更 と進むと、取得しているドメイン一覧が表示されるので、サブドメインを使用したいドメインのボタンをクリックしてネームサーバー設定を開く。

一番上のムームーDNSを使用するのラジオボタンを選択する。他社(本記事ではConoHa)のDNSを使用している場合は下部にあるGMOペパボ以外の〜が選択されているはずで、これをそのままにしてDNSレコードを追加しても無視されるので、ここで使用するDNS自体を変える必要がある。

今回はムームーDNSを使用するを選択して、保存。

次に左メニューからムームーDNS設定に移動して、該当ドメインの変更ボタンをクリックして設定画面に遷移。

設定2という項目で上記で確認したConoHaとVercelのDNSレコードを全部書いて保存。

あとは数十分から数日程度待つとDNSが浸透して、メイン、サブそれぞれで別サーバの内容を表示してくれるはず。

雑感

書いてて思ったけどムームーDNSでConoHaのDNSを使用するようにしたままでConoHa側のDNS設定にVercelのCNAMEを書いたらもしかしてもっと簡単に行けたのかも?

DNSの浸透にかかる時間が不確定で、設定変更後、表示されない場合に原因が設定の正誤なのか浸透の進み具合によるのかの判別がすごくしづらくてめんどくさい。

今回、使用する他社DNSのリストに単純にVercelのDNSを加えるなどしてみたところ、数十分程度の経過後一旦想定した動作をするようになり、翌日改めて開くと後ろに書いたDNSのみが有効となっていて、前者は無視されるという状態になっていた。そういうのも時間差で来るから検証がめんどくさい。

追記

メインのドメインをレンサバ(今回はConoHa)であてていて、それにレンサバ側でサブドメインを設定していた場合、サブドメインに関するAレコードなども今回作業したムームードメインのネームサーバー設定にあててやる必要がある。

とすると、サブドメインをムームードメイン利用ではなくConoHa利用のままにしておいて、ConoHa側でCNAMEを書き加えるだけのほうが手間が少ないかもしれない。

ということでやってみたらあっさりうまくいった。こっちのほうが手軽。

手順は、管理画面の左メニューからDNSを選択してドメインリストを表示し、目的のドメインのレコードにVercelのCNAME情報を追加するだけ。