前回の記事で、CloudFrontを使ってS3の静的WebサイトをHTTPSで表示する方法を説明しました。今回はCloudFrontのパスを独自ドメインに変更してみます。なお、独自ドメインはムームードメインで取得済です。
Route53に独自ドメイン情報を追加する
Route53とは、AWSの独自ドメインの登録やDNSレコードの管理が行えるDNSサービスです。AWSでドメインを管理する場合、Route53を利用します。
Route53のコンソールにアクセスして「開始する」をクリックします。
↓今回は取得済のドメインをRoute53で管理するため、「ホストゾーンを作成」を選択し、「開始する」をクリックします。
↓取得したドメイン名を入力し、「パブリックホストゾーン」を選択して、「ホストゾーンの作成」をクリックします。
↓サイドバーの「ホストゾーン」をクリックして、先ほど登録したドメインをクリックします。
↓「NS」「SOA」ができていれば、登録が無事完了しています。
次に
ドメインサービス側のネームサーバーをRoute53に変更する
独自ドメインを取得した独自ドメイン取得サービスの管理画面にアクセスします。ここからはムームードメインのケースで説明します。
↓デフォルトの状態だと、ドメインサービスのネームサーバーが指定されています。
↓Route53の赤枠の情報を…
↓ムームードメインのコントロールパネルで「取得したドメインで使用する」を選択し、赤枠内に入力します。”.com.”などの末尾のドットは不要です。
SSL証明書を発行する
CloudFrontで独自ドメインを使うにはSSL証明書が必要になったため、SSL証明書を発行します。参考サイト:Amazon CloudFront がディストリビューションに代替ドメイン名を追加する際のセキュリティを強化
AWSが提供しているSSL証明書発行サービスである「AWS Certificate Manager(ACM)」を使って、パブリックなSSL証明書を発行します。AWS Certificate Manager(ACM)で発行したSSL証明書をCloudFrontなどのAWSのサービス内で利用する場合は、SSL証明書料金はかかりません。
↓ACMのコンソールにアクセスし、「証明書をリクエスト」をクリックします。
↓「パブリック証明書をリクエスト」を選んで、「次へ」をクリックします。
↓右上のリージョンを「米国東部 (バージニア北部) 」にします。ここ超重要です!CloudFrontでACM証明書を使用するには、米国東部 (バージニア北部) リージョンにする必要があります。他のリージョンだと使えません。「完全装飾ドメイン名」には取得したドメイン名を「www.example.com」や「example.com」形式で入力します。「検証方法を選択」はデフォルト値の「DNS検証」を選択し、「リクエスト」をクリックします。
↓証明書が発行されました。「証明書を表示」をクリックします。
Route53にCNAMEレコードを登録する
SSLサーバ証明書の発行を完了させるにはドメインの検証が必要なため、AWS Certificate Manager(ACM)からエクスポートしたCNAMEをRoute53に登録していきます。
ドメインサービス側にCNAME レコードを登録する
ドメインサービスの管理画面にアクセスして、ACMに記載されているCNAMEレコードを追加するステップです。ACMの「CNAME名」の_d58521XXXXXXXXXXXXXXXXXXXXXX.example.com.の黄色部のみを「サブドメイン」に、ACMの「CNAME値」の_1cd7XXXXXXXXXXXXXXXXXXXX.XXXXXXX.acm-validations.aws.の最後のドットのみを消して「内容」に入力し、「セットアップ情報変更」をクリックします。
ムームードメイン参考サイト:ムームーDNSカスタム設定
ACMのコンソールに戻り、しばらく待つと、「ステータス」が「成功」になっていればドメインサービス側の設定は完了です。
CloudFrontに独自ドメインとSSL証明書を設定する
↓CloudFrontのコンソールに移動します。「設定」フィールドの「編集」をクリックします。
↓「代替ドメイン名(CNAME)」に独自ドメインを入力、「カスタムSSL証明書」は先ほど取得したSSL証明書を選びます。
ホストゾーンと同じ名前を使用して CloudFront ディストリビューションにアクセスする場合は、CNAME レコードではなくエイリアスレコードを使用する必要があります。エイリアスレコードを使用するには、この設定画面のIPv6を「オン」にする必要があります。
「デフォルトルートオブジェクト – オプション」にデフォルトルートオブジェクトのファイル名を入力します。今回は「index.html」を入力します。オブジェクトの間に「/」は不要です。
他の設定値はデフォルトのまま「変更を保存」をクリックします。
↓CloudFrontのコンソールの「代替ドメイン名」が独自ドメインになっていれば設定が成功しています。
Route53にエイリアスレコードを追加する
前述のように、ホストゾーンと同じ名前を使用して CloudFront ディストリビューションにアクセスしたいので、CNAME レコードではなくエイリアスレコードを登録します。
参考サイト:AWS Amazon Route 53 を設定して、CloudFront ディストリビューションにトラフィックをルーティング
↓Route53のコンソールにアクセスします。以下の設定値に修正し、「レコードの作成」をクリックします。
レコードタイプ:A-IPv4
エイリアス:ON
トラフィックのルーティング先:CloudFrontディストリビューションへのアクセス
ディストリビューション:CloudFrontで設定した独自ドメインを選択
今回はIPv6が有効になっているので、上記のステップを繰り返して「AAAA-IPv6」のレコードも追加します。
設定の確認
digコマンドを使って独自ドメインが設定されているか確認します。digコマンドとはネームサーバーに対して問い合わせを行い、その応答結果を表示するコマンドのことです。Windowsコマンドプロンプトにはdigがデフォルトでは入っていないので、digコマンドを使えるように事前準備が必要です。以下のサイトを参考にdigをインストールします。参考サイト:WindowsコマンドプロンプトでDNSレコードを調べる(digをインストール)
↓digコマンドを実行して、ANSWER SECTIONが表示されていれば、CNAME(代替ドメイン)の設定は成功しています。
C:\Users\xxx>dig xxx.com
; <<>> DiG 9.16.32 <<>> xxx.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37073
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;xxx.com . IN A
;; ANSWER SECTION:
xxx.com . 60 IN A 18.65.185.59
xxx.com . 60 IN A 18.65.185.12
xxx.com . 60 IN A 18.65.185.39
xxx.com . 60 IN A 18.65.185.117
;; Query time: 131 msec
;; SERVER: 192.168.11.1#53(192.168.11.1)
;; WHEN: Fri Sep 23 05:19:48 ;; MSG SIZE rcvd: 122
関連記事
コメント