管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

Route53で独自ドメインを設定してウェブサイトを公開する方法

ドメイン自体はお名前.com(でなくてもOK)で管理しつつ、サブドメインをRoute53で管理したいことがあるかと思います。(ACMでSSL証明書が発行できる、高可用性なDNSが使える、など)
Route53でのサブドメイン管理設定→サブドメインを設定したEC2を公開→ACM証明書発行→ALBを作成してHTTPS通信を実現という流れで記載します。

構成

今回はACM+ALBでのHTTPS通信を確認したかったため、EC2については1つのAZにのみ配置します。

※VPC他ネットワークリソースはあらかじめ構築済みとして進めます

Route53でのサブドメイン管理設定

Route53でホストゾーン(ドメイン/サブドメインのDNSレコードを管理するコンテナ)を作成


インターネットから名前解決するため「パブリックホストゾーン」を選択

4つのネームサーバが割り当たるため、これをお名前.com側に設定する




NSレコード(権威ネームサーバを指定するレコード)として4つのネームサーバを指定する


反映まで最大72時間とのことですが、15分ほどで反映されたように見えます

Route53にAレコードを作成し、EC2のパブリックIPアドレスを割り当てて外部からアクセスしてみる

パブリックIPアドレスを割り当てたEC2(Amazon Linux)を作成する


Aレコードとして、EC2のパブリックIPアドレスを指定する

EC2で、以下のコマンドを実行してhttpdをインストール&起動する

$ sudo yum update
$ sudo yum install -y httpd
$ sudo systemctl start httpd && sudo systemctl enable httpd

セキュリティグループで、上記EC2の80番ポートについて、アクセス元端末のグローバルIPアドレスのみ許可するルールを追加する

ブラウザでサブドメイン名を打ち込み、Webページが表示されることを確認する

ACMでSSL証明書発行


インターネットからのアクセスに対応するため、「パブリック証明書」を選択する

発行対象とするFQDNを指定し、また、ドメイン名の検証には「DNS検証」を指定する
※ドメイン名の検証には、①DNS検証、②メール検証の2つがあるが、DNS検証の方が迅速かつ手軽なのでこちらがオススメ。また、ドメインをRotue53で管理している場合は、シームレスに連携できることもメリットの1つ。




ALBを使い、HTTPSかつドメイン名でアクセスできるように設定する


SSLオフロードを行わせたいため、ALBを選択(NLBはSSLオフロード不可)

インターネット向け、かつ、IPv4を選択

配置するVPCの選択と、2つ以上のAZとサブネットを選択する。(パブリックサブネットを選択する)

SSL証明書として、前項で作成した証明書を選択する

Route53にて、エイリアスレコードを設定する。
※エイリアスレコード:Route53固有のレコードで、特定のAWSリソース(ロードバランサ―など)をドメイン名に関連付けるために使用されるレコード


回答結果がAレコード(EC2のパブリックIPアドレス)から、エイリアスレコード(ALBのグローバルIPアドレス)に変わる

ELBからの通信のみ許可するため、EC2に割り当てているセキュリティグループのソースとして、ELBに割り当てているセキュリティグループIDを指定したルールを割り当てる。

HTTPSで通信できるようになった!