AWSでウェブアプリケーション環境構築：⑥Route53を利用して独自ドメインでアクセス可能にする

# はじめに
これはシリーズ記事の中の1つです。

[AWSでウェブアプリケーション環境構築：⓪概要](https://qiita.com/minato-naka/items/ddb5f5301f9f590cdcbf)
[AWSでウェブアプリケーション環境構築：①EC2インスタンスにwebサーバを構築](https://qiita.com/minato-naka/items/c21e4d53db7a720f8fdd)
[AWSでウェブアプリケーション環境構築：②RDSでDBを作成し、Laravelサンプルアプリを動かす最小構成を構築](https://qiita.com/minato-naka/items/03f9dbd09eb3919a501f)
[AWSでウェブアプリケーション環境構築：③ロードバランサーを作成し、webサーバを冗長化する](https://qiita.com/minato-naka/items/396e2a25ec9a94840a67)
[AWSでウェブアプリケーション環境構築：④ElastiCacheのRedisを作成し、セッション共有可能にする](https://qiita.com/minato-naka/items/76cd5f660d987d34f7be)
[AWSでウェブアプリケーション環境構築：⑤webサーバをプライベートサブネットに配置し、メンテナンス用踏み台サーバを構築](https://qiita.com/minato-naka/items/406c2f247c0d29a93665)
[AWSでウェブアプリケーション環境構築：⑥Route53を利用して独自ドメインでアクセス可能にする](https://qiita.com/minato-naka/items/6f29694c1540f04dedb2)
**↑↑↑現在の記事↑↑↑**
[AWSでウェブアプリケーション環境構築：⑦ACMを利用してHTTPS通信可能にする](https://qiita.com/minato-naka/items/1a4f03e85857b8f61c4f)
[AWSでウェブアプリケーション環境構築：⑧サーバ負荷に応じてwebサーバがオートスケーリングする仕組みを構築](https://qiita.com/minato-naka/items/c0fab5d9fbb1cce68ac9)


# 前回まで
![5.png](https://qiita-image-store.s3.amazonaws.com/0/297693/cebf043c-1642-b363-4fed-3fc7709bb1f4.png)

前回はwebサーバをプライベートサブネットに移動し、
メンテナンス用の踏み台サーバ、NATゲートウェイを構築しました。

# 今回構築する環境
![6.png](https://qiita-image-store.s3.amazonaws.com/0/297693/cec0d65a-1007-2636-764e-a002754749fa.png)

現在は、構築したLaravelサンプルアプリに
laravel-sample-alb-123456789.us-east-2.elb.amazonaws.com
のようなALBに自動で割り振られたドメインでアクセスしています。

今回は、Route53を使って自分で好きに決めたドメイン名でアクセスできるようにします。

# ドメインの購入
まず、自分の好きなドメインを利用するにはドメインを購入する必要があります。

マネジメントコンソールの[Route53]のページの
サイドメニューの[Registerd domains]をクリックし、
上部にある[Register Domain]ボタンをクリック。

## ドメイン検索
ここでは、自分の好きなドメインが利用可能かどうかを確認して、
購入するドメイン名を決めます。

好きなドメイン名を入力し、
好きなトップレベルドメインを選択します。

ここで選択するトップレベルドメインによって値段が違います。

今回は比較的安価な[.net]を選択しました。
このトップレベルドメインの違いでアプリに影響があるわけではないので、
プルダウンから一番安いものを選択していいと思います。

[Check]をクリックすると、
自分が入力したドメインが利用可能かどうか、
そのドメインに近い形式で利用可能なドメインのサジェスト
等が表示されます。

![screencapture-console-aws-amazon-route53-home-2019-02-06-11_50_04.png](https://qiita-image-store.s3.amazonaws.com/0/297693/3698cd99-f665-ca6f-b24c-c57a4054915d.png)

もし「laravel-sample.net」のドメインが既にほかの人によって登録されている場合は
ここで[Status]が[Unavailable]になり登録することはできません。

自分で決めたドメインが[Available]であれば[Add to cart]をクリックし、
[Continue]をクリックします。


## コンタクト情報

下記のように自分の情報を入力します。

<img width="960" alt="screencapture-console-aws-amazon-route53-home-2019-02-06-12_02_55.png" src="https://qiita-image-store.s3.amazonaws.com/0/297693/80fd2c97-2046-63dc-8787-92b12d130de2.png">

ここで入力した情報は、
ドメインのwhois情報となり、下記のようなサイトで検索することができるようになります。
https://www.onamae.com/service/whois/

個人情報を公開したくない場合は最後の[Privacy Protection]をenableすれば、
whois検索されてもここで入力した情報は公開されなくなります。

## 確認・購入
これまでの入力内容を確認し、
ページ下部の同意チェックボックスをチェックします。

[Complete Purchase]をクリックすると購入完了です。

<img width="960" alt="screencapture-console-aws-amazon-route53-home-2019-02-06-12_08_37.png" src="https://qiita-image-store.s3.amazonaws.com/0/297693/b3e78da3-23c9-08cc-f453-8974b1d6e105.png">

ドメインが利用できるようになるまでには
数時間程度かかります。

利用可能になるとRegistered domainsの一覧に表示されます。

これでドメインの購入作業は完了です。

# Hosted Zoneの設定
次に、先ほど購入したドメインと
以前構築したLaravelサンプルアプリのALBを紐づけるための作業をします。

一般的なDNSサービスのZoneファイルの設定です。

[Route53]のページの
サイドメニューの[Hosted zones]をクリックし一覧を表示すると、
先ほど登録した[laravel-sample.net]があるのでクリックします。


## ALIASレコードの登録
ページ上部の[Create Record Set]をクリックして、
右に表示されたフォームに下記のように入力します。

![screencapture-console-aws-amazon-route53-home-2019-02-06-12_27_58.png](https://qiita-image-store.s3.amazonaws.com/0/297693/f317f01a-2fe3-3787-1b6d-d551497202ad.png)

|項目|設定値|説明|
|:------------------------|:-------------------------|:-------------------------|
|Name|-|`www.laravel-sample.net` のようにサブドメインを設定したい場合はここでwwwと入力すれば登録できます。|
|Type|A-IPv4 address|DNSのレコードタイプを選択します。<br>Aレコードを選択してください。|
|Alias|Yes|Aレコードは通常ドメイン名とIPアドレスを紐づけますが、<br>このALIASを有効にすることで、ALBのエンドポイントと紐づけることが可能になります。|
|Alias Target|{以前作成した[laravel-sample-alb]のALBエンドポイント}|プルダウンに自分で作成したALBがあるので選択する。|
|Routing Policy|Simple|ルーティング方法の選択。|
|Evaluate Target Health|No|ルーティング先ターゲットのヘルスチェックをするかどうか。|

[Create]をクリックしたらALIASレコードの登録完了です。

これでlaravel-sample.netのドメインでアクセスすると
以前作成したALBにルーティングされるようになっているはずです。

## 動作確認
ブラウザのアドレスバーに http://laravel-sample.net と入力してアクセスします。

これまで通り正しくLaravelサンプルアプリが表示されれば
問題なくドメイン設定ができています。
<img width="726" alt="キャプチャ.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/297693/8f18d17a-8459-f1ad-6608-1a692a390758.png">

これでLaravelサンプルアプリに独自ドメインでアクセスできるようにするための作業は完了です。

# 次回
独自ドメインでアクセスできるようになりましたが、
HTTP通信になっているためアドレスバーの横に「保護されていない通信」と表示されています。

これではセキュリティ的にも見栄え的にも悪いので、
次回はHTTPS通信ができるようにします。
[AWSでウェブアプリケーション環境構築：⑦ACMを利用してHTTPS通信可能にする](https://qiita.com/minato-naka/items/1a4f03e85857b8f61c4f)