firebaseにSPAをホスティング＆無料ドメインを使用して公開する[vue.js,nuxt.js] (2/2) 無料ドメイン取得とDNS登録 

# 概要
[前回記事はこちら](https://qiita.com/nobu17/items/c2e72385cfdf0106312e)
vue.jsまたはNuxt.jsで作成したSPAをfirebaseにホスティングして無料ドメインで公開するまでの手順と忘備録。
[前回](https://qiita.com/nobu17/items/c2e72385cfdf0106312e)はfirebaseにWebサイトをホスティングをするまでを記載しました。
今回はホスティングしたサイトを無料ドメインを使って公開するための設定を記載する。

# 無料ドメインに関して
今回、無料ドメインを取得する手段として[Freenom](http://www.dot.tk/ja/index.html)を使用する。
tkやmlといったドメインを無料で取得可能。
有料プランもありますが、1年ごとに無料更新が可能な模様。
あくまで今回はfirebase含めて無料で公開するために使用するので、実験や個人的なサイト使用等の目的以外ではお名前.com等で有料のドメインを購入する方がよいかと思われる。

# 手順
## ドメイン取得
[Freenom](http://www.dot.tk/ja/index.html)にアクセスし、使用したいドメイン名を入力して利用可能状況をチェックしますを選択する。

![n1_new.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/e88aedbb-e228-d6a2-569d-fae6aace1c1f.png)

ドメイン名別に使用可能状況が表示されるので使用したいドメイン名を選択(今すぐ入手)する。
下部には有料のドメインも表示されるが、下記5ドメインは無料で使用可能。

![n2_new.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/b59c0a19-89d6-3b72-0991-c6893d19a3b2.png)


画面上部にチェックアウトボタンが表示されるので選択する。
![n3_new.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/499be6ed-3724-fe9b-e121-04f203576a0e.png)

ドメインの設定は後で行うので、「Forward this domain」を選択し、ダミーURLを入力。
Period は 12Months @ FREE を選択し Continue を選択。

![n4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/e51993e8-8d86-755a-70e8-b4aee1528155.png)

なお、ログインが途中で求められた場合には、firebaseの作成時に使用したgoogleアカウントが使用できるので、googleアカウントでログインする。

![n5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/81a35a1e-04b4-b536-c817-bca68b6961cd.png)

googleアカウント(Gmail)のメールにアカウント確認用メールが届くので認証を行う。
メールのリンクから最終的なオーダー画面に行くので、住所等を入力。
(電話番号と会社名は不要だが住所は入力しないとエラーとなった。)

![n7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/5185f2ea-b411-4916-2f2e-cd436f1111b4.png)

I hava~ の項目にチェックを入れて Compete Orderを選択する。
![n8_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/f47de3a3-d27f-411a-0996-47c97ff11fca.png)

※この後、何故かNotFoundのエラーが発生して取得失敗かと思われたが、アカウントのメールに取得完了のメールが届けば成功。

freenomのトップページからServices→MyDomainを選択する。
![n9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/3250f8aa-f642-8f2b-63f3-dff80c6cf822.png)

先ほど取得したドメインが表示されるるので、Manage Domainを選択する。
![n10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/67f8d736-adcf-6024-e006-32fce08116eb.png)

Manage Freenom DNSを選択する。
![n11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/3be1b0d0-dde1-cb42-abb1-a8801ee3c256.png)

User default ～を選択し、Change Nameserversを選択。
![n12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/9c40d14b-af8d-bfd3-ebfc-b2a705040c52.png)

下記のようなDNSの設定画面になったら、一旦freenomの作業は中断する。
(入力を行うので開いたままにしておく。)
この後、firebase側の設定に移る。
![n13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/f317c2ea-fe1f-7000-17d3-8b41ba748dc5.png)



## firebaseからドメイン設定
firebaseのコンソールにアクセスする。左側のペインの開発→Hostingを選択する。
![n14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/d91f899f-c0f4-65a2-c72e-f4decb184ec7.png)

ドメインを接続を選択する。
![n15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/87a74ce2-b743-0932-fe69-7b342c575a5a.png)


ドメイン名を入力(取得したドメイン名)して次へを選択する。
![n16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/b4d9e717-65cc-8908-7090-f2d4d50e2562.png)


値の欄をコピーする。
![n17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/423e062d-beef-6808-45e6-fb63bd96d444.png)

ここで先ほどのfreenomのDNSの設定画面に戻って下記を入力。
Name:(空欄)
Type:TXT
Target:コピーした値を張り付け

入力が終わったらSave Chagensを選択。

![n18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/c48ab1fb-54ff-5b98-2634-a9a8b4ec2c16.png)

設定が終わったら、DNSの反映に時間がかかるので、ここで数十分～数時間待つ。
反映されているかの確認として、先ほどのfirebaseのコンソールに戻って、確認ボタンを押下する。

![n19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/90a64fc3-d775-904e-0d9e-a060c9f4da68.png)

反映が終わっていないと、下図のようなエラーが表示されるので、反映されるまで待つ。
![n20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/84e08ad1-e98d-3150-8cb4-1d6844466a3f.png)

反映が終わると、次のような画面が表示されるので、下図の２つのIPをコピーする。
![n21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/00726274-eca4-c915-99b5-d25d774944ef.png)


再度freenomのDNS設定画面に戻り、上記の２つの設定を追加する。
Name:(空欄)
Type:A
Target:コピーしたIPを張り付け

![n22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/86500c9a-8a88-c471-9f5e-ee71e307aad2.png)

firebaseコンソールに戻り、終了を選択して閉じる。
ステータスが直後は　設定が必要です　となっているが、　接続されています　に時間がたてば変わる。
このままだと　http://ドメイン名　でのアクセスとなるが、http://www.ドメイン名　でもアクセス可能とした場合には、　接続する　を選択する。
![n23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/bc4943f3-49e8-0072-a851-0c1820075ca4.png)

先ほどと同様のダイアログが表示されるのでIPを確認する。(前回と同じIPになっていると思われる。)

![n24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/92bab884-992e-dc47-7f3a-11e8d68f4635.png)

再度freenomのDNS設定画面に戻り、下記のように入力する。
Name:www
Type:A
Target:コピーしたIPを張り付け

![n25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/df2ed80a-4307-c6ff-cc95-166068105f52.png)

firebaseコンソールに戻り、しばらくたってステータスが接続されていますになれば完了。
これでwwwを含んだURLの場合はドメイン名のURLリダイレクトされてアクセス可能となる。

![n26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/149198/0108c01c-38d0-60d4-ad7f-2ef6a28c8dfe.png)

ブラウザを立ち上げ、ドメイン名でアクセスしてWEBサイトが表示されれば成功。

# まとめ
前回はfirebase上での静的サイトのセットアップ全般を紹介し、今回は無料ドメインの取得(freenom)とドメインの登録を行った。
firebaseもfreenomも無料である程度使えてしまうため、個人の開発においては非常に便利な環境である。