EC2に構築しているWebサイトにルートドメインで接続させる方法

# 背景
EC2インスタンスにてWebシステムが稼働していて、サブドメイン付きのURLを使用していたが、サブドメインなしのURLに変更したい
↓みたいな感じをやりたい（実在しないよ）
変更前：https://www.hiroky.com
変更後：https://hiroky.com

# 前提
* EC2インスタンスでWebシステムが稼働している
* EC2の前段にはELBが存在して、ELBは生かす
* Route 53にてドメイン取得済み
* 完全に変更ではなく、最初のアクセス先だけサブドメインなしで接続させる  
  * CloudFront → ELB（www.hiroky.com）にリダイレクトする  
  * TOPページはサブドメインなし、以降のページ遷移はwww.hiroky.comで行う  
  * すでにELBなどの構築がされていて、既存のネットワーク構成等を変更せずお手軽にやりたかった

# 手順
## S3バケット作成
* 任意のバケット名でS3バケットを作成
* 作成後、プロパティの「Static web site hosting」を選択し、リダイレクト先を設定

|![s3_1.png](https://qiita-image-store.s3.amazonaws.com/0/198158/648393b7-b624-3772-230e-c43e078c1c5d.png)|
|:-:|

|![s3_2.png](https://qiita-image-store.s3.amazonaws.com/0/198158/719aa05c-3181-f1a9-da35-1914f094ea47.png)|
|:-:|

## 証明書発行
Certificate managerで証明書を発行

* リージョンに「**バージニア北部**」を設定（CloudFrontで使用するためバージニア北部を設定）
* 「証明書のリクエスト」ボタンを押下

|![certificater_manager_1.png](https://qiita-image-store.s3.amazonaws.com/0/198158/be987edb-38b7-b158-54cc-22ae962bd044.png)|
|:-:|

* 「証明書のリクエスト」ボタンを押下

|![certificater_manager_2.png](https://qiita-image-store.s3.amazonaws.com/0/198158/f2fe427c-33f8-cfe1-7c27-534cc1701dbb.png)|
|:-:|

* CloudFrontで使用するドメイン名を追加  
（hiroky.comのようにサブドメイン指定なし）

|![certificater_manager_3.png](https://qiita-image-store.s3.amazonaws.com/0/198158/3ddb9ea1-f2fa-ca84-63a6-2a6225127991.png)|
|:-:|

* DNSの検証を選択
* 「確認」ボタンを押下

|![certificater_manager_4.png](https://qiita-image-store.s3.amazonaws.com/0/198158/87ec15b0-549e-34e1-c4aa-08b9eaa2d81e.png)|
|:-:|

* 「確定とリクエスト」ボタンを押下

|![certificater_manager_5.png](https://qiita-image-store.s3.amazonaws.com/0/198158/8caa5531-a750-4ea6-150f-9cd0fde8f56d.png)|


* 「Route 53でのレコードの作成」ボタンを押下

|![certificater_manager_6.png](https://qiita-image-store.s3.amazonaws.com/0/198158/8d873a7b-0ed4-5438-e6cc-957fca73be83.png)|
|:-:|

* 「作成」ボタンを押下

|![certificater_manager_7.png](https://qiita-image-store.s3.amazonaws.com/0/198158/32b044f5-4f62-ce76-2ce8-9bbf5a35dd42.png)|
|:-:|

* 「続行」ボタンを押下

|![certificater_manager_8.png](https://qiita-image-store.s3.amazonaws.com/0/198158/ce15835d-143c-1231-4983-886ef98811ff.png)|
|:-:|

## CloudFront Distribution追加
Distributionを追加

* 「Create Distribution」ボタンを押下

|![cloudfront_1.png](https://qiita-image-store.s3.amazonaws.com/0/198158/26763c70-bc23-4ed3-81e2-a0c7816a601d.png)|
|:-:|

* Webの「Get Started」ボタンを押下

|![cloudfront_2.png](https://qiita-image-store.s3.amazonaws.com/0/198158/8a7b01f3-905b-86f2-4877-d3e56a3f529d.png)|
|:-:|

* Origin Domain Name：S3の"Static website hosting"のエンドポイントを入力（プルダウンからバケットを選択すると有効にならない）
* Origin ID：任意入力
* Viewer Protocol Policy：「Redirect HTTP to HTTPS」を選択（HTTPで接続された時、HTTPSにリダイレクトする）
* Price Class：「Use U.S., Canada, Europe, Asia and Africa」を選択
* Alternate Domain Names(CNAMEs)：割り当てるドメインを入力（サブドメインなし）
* SSL Certificate：「Custom SSL Certificate」を選択（発行した証明書を選択）
* 「Create Distribution」ボタンを押下

|![cloudfront_3.png](https://qiita-image-store.s3.amazonaws.com/0/198158/193431e2-646d-cbc9-def9-c1978ab92896.png)|
|:-:|

|![cloudfront_4.png](https://qiita-image-store.s3.amazonaws.com/0/198158/d5b820f9-0765-ab50-cb2e-bd98d214d2db.png)|
|:-:|

|![cloudfront_5.png](https://qiita-image-store.s3.amazonaws.com/0/198158/e0131345-9f64-a139-5b13-34dfec3190c6.png)|
|:-:|

## Route 53でCloud Frontと連携させる

設定対象のドメインを選択

* 「Create Record Set」ボタンを押下

|![route53_1.png](https://qiita-image-store.s3.amazonaws.com/0/198158/b6537057-b14e-17c8-5c53-6e10e8bcfed1.png)|
|:-:|

* Type：「A - IPv4 address」を選択
* Alias：「Yes」を選択
* Alias Target："Cloud Front"で作ったDistributionを選択
* 「Create」ボタンを押下

|![route53_2.png](https://qiita-image-store.s3.amazonaws.com/0/198158/a00b9c14-19a4-dc1b-8f5f-99ec70fff4db.png)|
|:-:|

# 最後に
本当はどのページに遷移してもサブドメインなしにするのが理想的である。が、
**ユーザが接続するURLを短くしたい**（１度接続してしまえばURLの長さは気にならない）という要求には答えられるので、必要とする場面はありそう。
今度はどの遷移方法でもサブドメインなしとなるよう構築したい。