EC2とRDSでWeb環境構築するよ！（第３回：Route53編）

EC2とRDSのWeb環境構築の第３回目です。
第２回：EC2編はこちら
https://qiita.com/kikurage2030/items/e2a9e0197525d9b145f1

## サービスの全体象
作りたいサービスの概要はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/00cd9bdd-7272-b7c8-213d-616e17591a30.png)

EC2にWebサーバを立ててPHPのプログラムがMySQLにアクセスしてテーブルの情報を表示する画面を作ります。
いわゆる一般的なWebシステムの構成でWebサーバはPublicサブネットに公開し、DBサーバはPrivateサブネットで冗長構成としてEC2のみのアクセスを許可する制御とします。また独自ドメインを取得してDNSでの名前解決も行えるようにします。

このシリーズで取り組む内容は
第１回：VPC・サブネット周りの作業
第２回：EC2の構築
<font color=red>第３回：Route53の登録　ここ！</font>
第４回：RDSの構築
第５回：Web環境の構築
を予定しています。今回は第３回：Route53編となります。

<br>

## ドメイン登録の作業概要
今回は専用のドメイン名を購入して、購入したドメイン名と第二回で取得したElasticIP（固定IP）アドレスの紐づけレコードをRoute53に登録してあげます。
ただし取得したドメイン名のネームサーバがデフォルトでは購入先のネームサーバに設定されているので購入したトップレベルドメイン（.xyz）に対してネームサーバの変更（awsのネームサーバを利用するように依頼を出す）を実施する作業も併せて行います。


順序としては
1.ドメイン名の購入
2.Route53の設定
3.ネームサーバの変更
4.Route53にAレコードを登録
の順番で実施。

## 1.ドメイン名を購入する
ここではまずRoute53に登録するドメイン名を購入します。「お名前.com」などのサイトで自分の好きなドメインを購入して名前を付けます。信頼性の高いドメインは「.com」などは値段が高いので、学習用のドメイン「.xyz」などなら安く購入することができます。（本格的にサイトを運営する場合はあまりお勧めできないかもしれません。）

お名前.com での画面 my-aws-server.xyzという名前でドメインを購入しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/732228ac-33fb-e3b5-015c-e8fa7f2ad4cc.png)
でもこれで作業完了ではありません。
今取得したmy-aws-server.xyzは第二回で取得したElasticIPアドレスと紐づいていないためこの後紐づけ作業をしてあげる必要があります。



## 2.Route53の設定
現状はお名前.comで購入したドメイン名はこの契約の中で合わせて取得したIPアドレスとのドメインにDNS上の設定で紐づいてしまっているため、改めて「my-aws-server.xyz」と前回取得したElasitic IPアドレスをRoute53に登録して名前の紐づけをしてあげる必要があります。

AWSのマネジメントコンソールからRoute53のサービス画面にアクセス。
作業前に用語的なものを簡単に説明すると
【ホストゾーン】：DNSのリソースレコードの集合を指します
【Aレコード】：ドメイン名とIPアドレスの対応付け情報です

「Route53」→「ホストゾーン」→「ホストゾーンの作成」
ドメイン名：my-aws-server.xyz
タイプ：パブリックホストゾーン（インターネットからのアクセスで名前解決をする場合）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/45dbb799-23f3-ce55-c728-8ee4058f5caa.png)

ホストゾーンを作成するとNSレコードとSOAレコードが生成される。
※NSレコードにはawsのネームサーバとして4件レコードが登録されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/4ca1d256-87cf-a15f-5e64-f4a6ab2ff3f0.png)
<br>

## 3.ネームサーバの変更
my-aws-server.xyzの名前解決時の問い合わせ先をこの４つのネームサーバに変更するように.xyzのトップレベルドメインのネームサーバに教えてあげる必要があります。

現状は冒頭の手順で対応したようにお名前.comでのネームサーバがトプレベルドメインからの問い合わせ先として設定されています。
digコマンドの結果、my-aws-server.xyzはns-rs1.gmoserver.jp（名前.comのネームサーバ）が名前解決をしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/56fd1de1-3339-f7db-69cc-a70b4372b746.png)

この.xyzのトップレベルドメインからの問い合わせネームサーバをRoute53のNSレコードに記載されているネームサーバ（ns-295.awsdns-35.com....などの4レコード）に変更してあげる必要があります。

お名前.comの画面から取得したドメイン名のネームサーバの変更処理をしてあげます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/ab9ece5d-8ed7-043b-dc2c-ec468aac3ace.png)

変更反映までに24時間から72時間かかるようです。（実際は2～3時間でした。）
これでmy-aws-server.xyzの名前解決を行うネームサーバはaws上のネームサーバ（４レコード）に変更できました。



## 4.Route53にAレコードを登録
改めて取得したドメイン名とElasticIPアドレスの対応付けを行うためのAレコードをRoute53に登録します。
「Route53」→「ホストゾーン」→「my-aws-server.xyz」→「レコードを作成」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/2b8fdd1e-8620-dbe2-c3b1-cbe7b7a37205.png)
<br>
レコードタイプ：A -IPv4アドレスと～　を選択(Aレコード)
値：取得したElasticIPアドレス　を入力
サブドメインは今回設定しないので入力不要
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/2187f5c5-34ba-7527-a10c-c2aa1a85543e.png)

これでAレコードが作成されました。

新しく取得したドメイン名でApacheのサーバにアクセスできるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/db62b3af-6e0d-8ab4-6574-252867dfc47c.png)

次回はRDS環境の作成をするよ！