背景
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」を選択し、リダイレクト先を設定
証明書発行
Certificate managerで証明書を発行
- リージョンに「バージニア北部」を設定(CloudFrontで使用するためバージニア北部を設定)
- 「証明書のリクエスト」ボタンを押下
- 「証明書のリクエスト」ボタンを押下
- CloudFrontで使用するドメイン名を追加
(hiroky.comのようにサブドメイン指定なし)
- DNSの検証を選択
- 「確認」ボタンを押下
- 「確定とリクエスト」ボタンを押下
- 「Route 53でのレコードの作成」ボタンを押下
- 「作成」ボタンを押下
- 「続行」ボタンを押下
CloudFront Distribution追加
Distributionを追加
- 「Create Distribution」ボタンを押下
- Webの「Get Started」ボタンを押下
- 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」ボタンを押下
Route 53でCloud Frontと連携させる
設定対象のドメインを選択
- 「Create Record Set」ボタンを押下
- Type:「A - IPv4 address」を選択
- Alias:「Yes」を選択
- Alias Target:"Cloud Front"で作ったDistributionを選択
- 「Create」ボタンを押下
最後に
本当はどのページに遷移してもサブドメインなしにするのが理想的である。が、
ユーザが接続するURLを短くしたい(1度接続してしまえばURLの長さは気にならない)という要求には答えられるので、必要とする場面はありそう。
今度はどの遷移方法でもサブドメインなしとなるよう構築したい。