いわりょのBlog

IT関連で学んだことを書いていきます。

自作railsアプリをデプロイする 番外編 Route 53でドメインを設定する

ryo10leo.hatenablog.com

上の記事を通して、以下のようなインフラを作成しました。↓

f:id:Ryo10Leo:20200113011243p:plain

EC2の中身はこんな感じです。↓

f:id:Ryo10Leo:20200115230205p:plain

ここまでの設定ですと、IPアドレスを入力することでしかアプリを表示することができません。

なので今回は「Route53」を使って、独自のドメインでWebサーバーに接続し、アプリを表示することができるようにしていきます。

Route 53を軽く理解する

Route 53とは?

AWSDNSサービス。ネームサーバの役割を果たします。

ん?DNS

ドメインネームサーバ」の略。ドメイン名をIPアドレスに変換するインターネット上の「電話帳」のようなの役割。

特徴は?

信頼性
冗長化されたロケーション
・ SLA100%!!
・フルマネージドサービス

コスト
・ 非常に安価(約500円程度/月)
・ 使った分だけの課金

速度
・高速
 エッジロケーションの中で最も近いロケーションから応答を返す。

ルーティングポリシー
シンプル ←今回使います。
・加重
レイテンシー
・位置情報
・フェイルオーバー

作成するものを図で理解する

全体的な設置図としてはこのような感じです。↓

f:id:Ryo10Leo:20200119232103p:plain

動きとしては以下のような仕組みになります。↓

f:id:Ryo10Leo:20200120212132p:plain

①クライアントからドメインを入力すると、フルリゾルバを介してからRoute 53にそのドメインに紐づくIPアドレスがあるかを問い合わせます。

②もしRoute 53にクライアント側で入力されたドメインが登録されていれば、それに紐づくIPアドレスをクライアントに送り返します。

③クライアントはサイドその取得したIPアドレスを使って、目的のEC2インスタンスに接続することができるのです。

実際にRoute 53を使ってドメインを設定する

前提として、、、

  • お名前.comのドメイン管理画面にログインできること

上記を前提として書いていきます。

ホストゾーンの作成

まずはRoute53のダッシュボードを開いて、「ホストゾーン」を選択して、「ホストゾーンの作成」をクリック。

f:id:Ryo10Leo:20200120214627p:plain

こちらの画面から取得した「ドメイン」を入力します。

タイプは、クライアントから通信できるようにしたいので「パブリックホストゾーン」にします。

作成」を押すとホストゾーンが作成できます。

するとホストゾーンには、「NS」タイプのレコード(ネームサーバー)と「SOA」タイプのレコード(ゾーン)があることが確認できます。

しかしこのままでは、ドメインに紐付いたIPアドレスのレコード(Aレコードといいます)がないため、それを作成する必要があります。

Aレコードを作成する前に、、、

お名前.comで取得したドメインはデフォルトだとお名前.comのネームサーバーに紐付いています。↓

#EC2インスタンスにログインして、取得したドメインのネームサーバーを確認する

$ dig myapp.com NS +short
dns2.onamae.com ←お名前.comのネームサーバー
dns1.onamae.com  ←お名前.comのネームサーバー

このままだと取得したドメインで問い合わせても、Route53ドメインの管理情報(IPアドレスなど)があることにはならず、お名前.comに管理情報があるという設定になっています。

そのためAレコードを作成する前に、お名前.comにログインしてドメイン管理画面で、その設定を変更する必要があります。

お名前.comでドメインの設定

お名前.comにログインして「ドメインの設定」をクリック。

f:id:Ryo10Leo:20200120223914p:plain

ネームサーバーの変更」を選択します。

f:id:Ryo10Leo:20200120224121p:plain

取得したドメインにチェックを入れて、下の方にある「他のネームサーバーを利用」を選択すると以下のような入力画面がでます。↓

f:id:Ryo10Leo:20200120224253p:plain

ここにRoute53で先ほど作成したホストゾーンの「NSレコード」入力することで、設定が完了します。

以下の表示されているNSレコードの情報(ns~から始まるやつ)を全てコピペしましょう。↓

f:id:Ryo10Leo:20200120225100p:plain

できたら「確認画面」を選択して「設定する

これで設定は完了です。

確認もコマンドで一応します。

$ dig myapp.com NS +short
ns-786.awsdns-34.net
ns-1578.awsdns-05.co.uk
ns-1041.awsdns-02.org
ns-306.awsdns-38.com

Aレコードの作成

ようやくAレコードを作成できます。

f:id:Ryo10Leo:20200120220438p:plain

まずは先ほどドメインを登録したホストゾーンを選択して、レコードセットに移動します。

そして「レコードセットの作成」を選択。
画面の右側に以下のように出ます↓

f:id:Ryo10Leo:20200120220642p:plain

今回は「」のところにEC2インスタンスに紐付けた「Elastic IPアドレス」を入力するのみで設定は大丈夫です。

入力できたら「作成」をクリック。

これで全ての設定が完了です。

ブラウザにドメインを入力することで、それに紐づいたWebサーバーに接続することができました!