AWSRoute 53CloudFrontACMDNSCustom DomainSSL/TLS

Amazon Route 53で取得したドメインをCloudFrontで使う方法

Sloth255
Sloth255
·8 min read·1,578 words

はじめに

Amazon Route 53 で取得したドメインを Amazon CloudFront で使うには、まず Route 53 側のホストゾーンを確認し、その後に AWS Certificate Manager (ACM) で SSL 証明書を発行して、CloudFront にカスタムドメインを設定します。
本記事では、メインドメイン用とサブドメイン用で配信先オリジンが異なる構成を前提に、それぞれを別々の CloudFront ディストリビューションに割り当てる手順を解説します。

前提

本記事は、次の前提で進めます。

  • メインドメイン用とサブドメイン用でオリジンが異なる
  • メインドメイン用とサブドメイン用で CloudFront ディストリビューションを分けて運用する
  • CloudFront ディストリビューション自体と配信元オリジンの基本設定は完了済み
  • Route 53 のホストゾーンを同じ AWS アカウントで管理している

同一オリジンで運用する場合は、1 つの CloudFront ディストリビューションに複数の代替ドメイン名 (CNAME) を設定する構成も選べます。ただし本記事では扱いません。

全体の流れ

  1. Amazon Route 53 でドメインを購入
  2. Amazon Route 53 で自動作成されたホストゾーンを確認
  3. AWS Certificate Manager (ACM) で SSL 証明書を発行
  4. Amazon CloudFront にカスタムドメインを設定
  5. Amazon Route 53 でメインドメインのレコードを作成
  6. Amazon Route 53 でサブドメインのレコードを作成
  7. 動作確認

ACM、Route 53、CloudFront の関係

今回の構成では、Amazon Route 53 が DNS を管理し、AWS Certificate Manager (ACM) が HTTPS 用の証明書を発行し、Amazon CloudFront がメインドメイン用とサブドメイン用の配信先になります。

graph LR
  U[ユーザーのブラウザ]
  R[Route 53 DNS管理]
  CM[CloudFront メインドメイン用]
  CS[CloudFront サブドメイン用]
  OM[オリジン S3またはWebサーバー]
  OS[オリジン S3またはWebサーバー]
  A[ACM SSL/TLS証明書]

   U -->|example.com にアクセス| R
   U -->|cdn.example.com にアクセス| R
   R -->|A / AAAA エイリアス| CM
   R -->|A / AAAA エイリアス| CS
   CM -->|HTTPSで配信| U
   CS -->|HTTPSで配信| U
   A -->|証明書を関連付け| CM
   A -->|証明書を関連付け| CS
   CM -->|コンテンツ取得| OM
   CS -->|コンテンツ取得| OS

ポイントは、Amazon Route 53 の DNS レコードがメインドメイン用とサブドメイン用の CloudFront ディストリビューションを参照し、それぞれに ACM の証明書を設定することで、独自ドメインで HTTPS 配信できることです。

1. Amazon Route 53 でドメインを購入

まず、AWS マネジメントコンソールから Amazon Route 53 を開き、使用したいドメインを購入します。

手順

  1. Amazon Route 53 ダッシュボードで「登録済みドメイン」または「ドメイン登録」を開く
  2. 取得したいドメイン名 (例: example.com) を検索する

Route 53 のドメイン検索画面

  1. 利用可能であればカートに追加して購入手続きを進める
  2. 連絡先情報や登録年数を設定して購入を完了する
  3. 登録したメールアドレスに届く確認メールを開き、本文中の確認用リンクをクリックする
    • 件名の例: Verify your email address.
  4. Amazon Route 53 コンソールで「ドメイン」→「リクエスト」を開き、新規申請したドメインのステータスが「成功」になることを確認する

購入が完了すると、ドメインの登録とあわせて Amazon Route 53 側でネームサーバーの管理も行える状態になります。

2. Amazon Route 53 で自動作成されたホストゾーンを確認

Amazon Route 53 でドメインを登録すると、通常は同名のパブリックホストゾーンが自動作成されます。まずはその状態を確認します。

手順

  1. Amazon Route 53 ダッシュボードで「ホストゾーン」を開く
  2. 購入したドメイン (例: example.com) と同じ名前のホストゾーンがあることを確認する
  3. ホストゾーン内に以下のレコードが自動作成されていることを確認する
NS
SOA

必要に応じて、NSレコードに表示されているネームサーバーも確認しておきます。

ns-xxx.awsdns-xx.com
ns-xxx.awsdns-xx.net
ns-xxx.awsdns-xx.org
ns-xxx.awsdns-xx.co.uk

3. AWS Certificate Manager (ACM) で SSL 証明書を発行

HTTPS でアクセスできるようにするため、AWS Certificate Manager (ACM) で SSL 証明書を発行します。

手順

  1. リージョンを us-east-1 に変更

ACM のリージョン選択画面

  1. ACM コンソールで「証明書をリクエスト」をクリック

ACM で証明書をリクエストする画面

  1. 「パブリック証明書をリクエスト」を選択

ACM のパブリック証明書選択画面

  1. 完全修飾ドメイン名に利用したいドメイン名を入力
    • メインドメインを使う場合: example.com
    • サブドメインを使う場合: *.example.com
    • 両方を1枚の証明書でカバーしたい場合: example.com*.example.com を両方追加
  2. 検証方法は「DNSの検証」を選択
  3. 「リクエスト」をクリック

ACM の証明書リクエスト送信画面

DNS検証の完了

  1. 証明書の詳細画面で「Route 53 でレコードを作成」をクリック
  2. Route 53 のホストゾーンを同じ AWS アカウントで管理している場合は、CNAME レコードを自動作成できます
  3. 自動作成の導線が表示されない場合は、ACM が表示する CNAME レコードを Route 53 に手動で追加します
  4. 数分後、検証が完了します

検証が完了すると、ステータスが「発行済み」になります。

4. Amazon CloudFront にカスタムドメインを設定

証明書が発行されたら、CloudFront ディストリビューションにカスタムドメインを追加します。

手順

  1. CloudFront コンソールでメインドメイン用ディストリビューションを選択
  2. 「編集」をクリック
  3. 「代替ドメイン名 (CNAME)」に利用するドメインを追加
    • メインドメイン用ディストリビューションには example.com を追加
  4. 「カスタムSSL証明書」で、先ほど作成した証明書を選択
  5. 「変更を保存」をクリック
  6. 続けて、サブドメイン用ディストリビューションでも同じ手順を実施する
    • サブドメイン用ディストリビューションには cdn.example.com を追加
    • 利用する証明書に cdn.example.com または *.example.com が含まれていることを確認する
  7. 「変更を保存」をクリック

ディストリビューションごとにデプロイが完了するまで数分から 15 分程度待ちます。

5. Amazon Route 53 でメインドメインのレコードを作成

メインドメイン (example.com) でも CloudFront にアクセスさせたい場合は、A/AAAA のエイリアスレコードを作成します。

手順

  1. Amazon Route 53 のホストゾーン詳細画面で「レコードを作成」をクリック
  2. 以下の情報を入力:
    • レコード名: 空欄 (ルートドメイン)
    • レコードタイプ: A - IPv4アドレス
    • エイリアス: オン
    • トラフィックのルーティング先:
      • CloudFront ディストリビューションへのエイリアス
      • メインドメイン用の CloudFront ディストリビューションを選択
  3. 「レコードを作成」をクリック
  4. 同様に AAAA - IPv6 アドレスのレコードも作成する

6. Amazon Route 53 でサブドメインのレコードを作成

サブドメイン (例: cdn.example.com) を CloudFront に向けるためのレコードを作成します。

手順

  1. Amazon Route 53 のホストゾーン詳細画面で「レコードを作成」をクリック

Route 53 でレコードを作成する画面

  1. 以下の情報を入力:
    • レコード名: サブドメイン (例: cdn)
    • レコードタイプ: A - IPv4アドレス
    • エイリアス: オン
    • トラフィックのルーティング先:
      • CloudFront ディストリビューションへのエイリアス
      • サブドメイン用の CloudFront ディストリビューションを選択
  2. 「レコードを作成」をクリック

CloudFront 用レコードを作成した画面

  1. 同様に下記のレコードも作成しておきます。
    • レコードタイプ: AAAA - IPv6 アドレス
    • 他は 2. と同様

7. 動作確認

すべての設定が完了したら、ブラウザで以下の URL にアクセスして動作確認します。

https://example.com
https://cdn.example.com

期待するオリジンのコンテンツがそれぞれ表示されれば、基本的なルーティングは成功です。

1. DNSの確認

以下のコマンドで、メインドメインとサブドメインが CloudFront に向いているか確認できます。

nslookup example.com
nslookup cdn.example.com

CloudFront のドメイン名そのものは返りませんが、名前解決できることと、Route 53 のエイリアスレコードが正しく設定されていることを確認できます。

2. HTTPS応答の確認

次に、HTTPS で正しく応答できるか確認します。

curl -I https://example.com
curl -I https://cdn.example.com

少なくとも以下を確認します。

  • HTTP/1.1 200 OK301 Moved Permanently など、想定どおりの HTTP ステータスが返る
  • server: CloudFront が含まれる
  • 意図したリダイレクト先に遷移する

3. 証明書と代替ドメイン名の確認

ブラウザから各 URL にアクセスし、証明書の発行先と鍵マークを確認します。

  • example.com で証明書エラーが出ない
  • cdn.example.com で証明書エラーが出ない
  • 想定外のドメインにリダイレクトされない

4. オリジンの切り分け確認

メインドメイン用とサブドメイン用でオリジンを分けている場合は、それぞれが別の配信先を参照していることも確認します。

  • https://example.com でメインドメイン用オリジンのコンテンツが表示される
  • https://cdn.example.com でサブドメイン用オリジンのコンテンツが表示される
  • 片方の更新がもう片方に混ざっていない

トラブルシューティング

アクセスできない場合:

  1. CloudFront のデプロイが完了しているか確認
  2. Route 53 の A/AAAA エイリアスレコードが正しく設定されているか確認
  3. CloudFront の「代替ドメイン名 (CNAME)」に対象ドメインが追加されているか確認
  4. ACM 証明書に example.com または cdn.example.com が含まれているか確認
  5. ACM 証明書のステータスが「発行済み」になっているか確認
  6. オリジン側で Host ヘッダや HTTPS リダイレクト設定が原因になっていないか確認
  7. DNS 伝搬を確認 (nslookup example.com / nslookup cdn.example.com)

まとめ

Amazon Route 53 で取得したドメインを Amazon CloudFront で使う手順を解説しました。ポイントは以下の通りです。

  • Amazon Route 53 で取得したドメインは、通常ネームサーバー変更が不要
  • プライバシー保護に対応したドメインなら、WHOIS 情報で個人情報が公開されるのを防げる
  • ACM 証明書は先に発行し、その後 CloudFront にカスタムドメインを設定する
  • メインドメインとサブドメインを別オリジンで運用する場合は、CloudFront ディストリビューションも分けると整理しやすい
  • メインドメインとサブドメインは、それぞれ A/AAAA のエイリアスレコードで CloudFront に紐付ける
  • ACM 証明書は必ず us-east-1 リージョンで作成する

この構成により、高速なコンテンツ配信と柔軟な DNS 管理が可能になります。

参考リンク