メインコンテンツへスキップ
見出し画像

CloudFrontに独自ドメインを付けると有料? Route 53とDNSでつまずいたこと

    S3とCloudFrontで静的なWebサイトを公開しようとして、ドメインのところで手が止まりました。

    「CloudFrontにドメインを追加できるなら、それだけで公開できるのでは?」
    「独自ドメインを使うなら、Route 53も必要?」
    「そもそも、何にお金を払うんだろう?」

    サービスの名前は知っていても、役割がつながっていませんでした。今回は、調べて分かったことを備忘録として残します。まず押さえたかったのは、ドメインの取得、DNSの設定、Webサイトの配信は、それぞれ別の仕事だということです。

    料金・仕様は2026年11月4日時点で公式資料を確認しています。金額は米ドル・税別で記載し、契約時にはリンク先の最新情報を確認してください。文中のexample.comやCloudFrontのホスト名は説明用の例です。

    S3とCloudFrontは、それぞれ何をする?

    静的サイトは、HTML・CSS・JavaScriptなどのファイルをブラウザに配信する構成です。JavaScriptで動くツールも作れます。「静的」は、画面が動かないという意味ではありません。

    今回の構成では、S3がファイルの保管先、CloudFrontが利用者へ配信する窓口です。

    利用者のブラウザ → CloudFront → S3

    CloudFrontはCDNと呼ばれるサービスで、各地の配信拠点にファイルをキャッシュし、利用者へ届けます。ドメインの販売店ではありません。

    なお、S3だけでも静的サイトを公開できます。ただし、S3の「静的ウェブサイト用URL」はHTTPのみです。今回はHTTPSで公開し、S3への直接アクセスを制限するため、CloudFrontを組み合わせる方針にしています。S3の通常のファイル取得用URLまでHTTPS非対応という意味ではありません。

    参考:S3のウェブサイトエンドポイント/CloudFront経由にS3アクセスを制限する仕組み(OAC)

    ドメインとDNSを分けて考える

    example.comのような名前がドメインです。人が覚えやすい名前ですが、通信には接続先のIPアドレスが必要です。

    名前を手がかりに、接続先の情報を調べる仕組みがDNS。この処理を「名前解決」や「DNS解決」と呼びます。

    ここで出てくる用語も、いったん整理します。

    • レジストラ:ドメインの登録・更新を申し込む窓口。Route 53のドメイン登録や、Cloudflare Registrarなど。

    • DNSサービス:そのドメインの行き先などの情報を管理し、問い合わせに答えるサービス。

    • ホストゾーン:Route 53で、あるドメインのDNS情報をまとめて管理する単位。サイトのファイルを置く場所ではない。

    • レコード:DNSに登録する情報の一件一件。「この名前の接続先はここ」などを記す。

    ドメインを買う会社とDNSを管理する会社は、同じでも別々でも構いません。ただし、サービスによって組み合わせの制約はあります。

    名前解決は、誰がどこに聞く?

    www.example.comを開くとき、通常はブラウザやOSから、問い合わせを代行するDNSリゾルバーに聞きます。キャッシュがなければ、リゾルバーが大まかに次の順で調べます。

    1. ルートDNSに「.comの情報はどこに聞けばいい?」

    2. .comを担当するDNSに「example.comのDNSはどこ?」

    3. example.comを担当するDNSに「www.example.comの行き先は?」

    たとえば3番目で「d123example.cloudfront.netの別名」という情報が返れば、さらにその名前のIPアドレスを調べます。その結果を使い、ブラウザがCloudFrontへ接続します。

    DNSは行き先を調べるもの。Webページの中身がDNSを通って届くわけではありません。また、調べた結果は一定時間キャッシュされるため、アクセスのたびに毎回すべての問い合わせをするわけでもありません。

    ドメイン登録では、その名前を一定期間使う権利を確保します。どのDNSに問い合わせるかは、登録先の管理画面などでネームサーバーを指定してつなぎます。更新を忘れると最終的に利用権を失うおそれがあるため、自動更新や通知も確認しておきたいところです。

    参考:CloudflareによるDNSと名前解決の解説

    CloudFrontの標準ドメインなら、何を省ける?

    CloudFrontの配信設定を作ると、d123example.cloudfront.netのような標準のホスト名が割り当てられます。この名前にはAWS側でDNSとHTTPS用の証明書が用意されています。

    そのまま使えば、自分で独自ドメインを取得したり、そのためのDNSを契約したりする必要はありません。正確にはDNSが不要なのではなく、AWSが管理する名前とDNSを使わせてもらっています。

    ただし「サイトの運営費が全部0円」という意味ではありません。標準ドメインの取得費が不要でも、S3やCloudFrontなどの料金は、プラン・使用量・無料枠によって変わります。

    参考:CloudFront標準ドメインと代替ドメイン名

    独自ドメインは、CloudFrontに追加するだけでは足りない

    www.example.comで公開したい場合、基本的に次の4つを用意します。

    1. example.comを登録し、利用権を持つ。

    2. DNSに、公開したい名前をCloudFrontへ向ける情報を登録する。

    3. 公開する名前を対象にしたHTTPS用の証明書を用意する。

    4. CloudFrontにも、その名前を「代替ドメイン名」として登録し、証明書を設定する。

    DNSだけ設定しても、CloudFront側がその名前を受け付ける準備はできていません。逆にCloudFrontへ名前を登録しても、DNSを設定しなければ利用者が行き先を調べられません。ここが、最初に混同していたところでした。

    証明書はAWS Certificate Manager(ACM)で用意できます。CloudFrontで使う通常のエクスポート不可の公開証明書は、追加料金なしです。エクスポート可能な証明書やプライベートCAは別の料金体系です。

    もう一つ注意したいのがリージョンです。ブラウザとCloudFrontの間で使うACM証明書は、バージニア北部(us-east-1)で発行・インポートします。S3が東京リージョンにあっても、ここは別です。証明書の発行時には、DNS検証などでドメインを管理していることも確認されます。

    参考:CloudFrontの証明書要件/ACMの料金

    独自ドメインを付けると、CloudFrontが高くなる?

    通常使うSNI方式なら、独自ドメイン用HTTPSの追加料金はありません。ドメインの取得・更新料金とは別の話です。

    SNIは、HTTPSの接続を始めるときに、クライアントが接続先のホスト名を伝える仕組みです。CloudFrontはその情報を使って証明書を選べます。現在の主要なブラウザは対応しています。

    一方、SNIに対応しない古いクライアント向けの「専用IP方式」には、証明書1つにつき月600ドルの追加料金があります。今回のサイトで選ぶ必要はありません。

    「独自ドメインだから月600ドル」ではなく、特定の古いクライアントに対応する方式の料金です。

    参考:SNI方式の追加料金がないことについて/CloudFront従量課金の料金表(専用IP方式を含む)

    Route 53は必須? wwwなしでも公開できる?

    独自ドメインを使っても、Route 53は必須ではありません。Cloudflareや、ドメイン登録会社が提供するDNSでも、必要な設定ができれば公開できます。

    Route 53には「ドメイン登録」と「DNSの管理」という別の役割があります。Route 53でドメインを買って外部のDNSを使うことも、他社で買ったドメインのDNSをRoute 53で管理することもできます。

    wwwは、付けなくてもいい

    www.example.comのwwwは、サブドメインです。blog.example.comのblogと同じような名前で、Webサイトに必須の文字ではありません。

    www.example.comでも、wwwなしのexample.comでも公開できます。ただし、CloudFrontへ向けるDNS設定に違いがあります。

    www.example.comには、CloudFrontのホスト名を指すCNAMEレコードを使えます。CNAMEは「この名前は、別の名前の別名です」という指定です。

    一方、今回はexample.comをDNSゾーンの頂点として管理するため、そこに通常のCNAMEは置けません。ゾーン頂点にはNS・SOAという必須のレコードがあり、CNAMEを同じ名前の他の通常レコードと共存させられないためです。メール用のMXレコードがあるかどうかだけで決まる話ではありません。

    そこで、次のような機能を使います。

    • Route 53:CloudFrontを対象にしたエイリアスレコード。

    • Cloudflare DNS:CNAMEフラットニング。頂点の設定から、接続に必要なIPアドレスを返してくれる。

    • その他のDNS:ALIAS・ANAMEなどの類似機能。CloudFrontに対応しているかは個別に確認する。

    なお、Cloudflareの管理画面で頂点にCNAMEを入力できても、DNSのルールを無視しているわけではありません。応答時にフラットニングが働きます。

    参考:エイリアスとCNAMEの違い/CloudflareのCNAMEフラットニング

    サブドメインも、その都度買う?

    通常、example.comを持っていれば、www.example.comやblog.example.comを作るためにドメインを追加購入する必要はありません。

    ただし、DNSサービスの登録数上限や、問い合わせ・配信・証明書などの料金まで無制限に無料という意味ではありません。サブドメインごとのドメイン登録料と、サービスの利用料金は分けて考えます。

    AWSにまとめる場合と、外部サービスを使う場合の費用

    ここでは同じS3+CloudFront構成のまま、ドメインの登録・更新とDNSにかかる費用を比べます。サイト全体の運営費ではありません。

    まず、Route 53の通常料金

    従量課金の場合、ホストゾーンは最初の25個まで1個あたり月0.50ドルです。1ゾーンを12か月維持する月額分の目安は年6ドルになります。

    CloudFrontを直接指す、対象条件に合うエイリアスA・AAAAへの問い合わせは無料です。ただし、通常レコードへの問い合わせなどは別途課金されるため、「Route 53は何をしても月0.50ドル固定」ではありません。

    ホストゾーン料金は日割りされません。作成後12時間以内に削除したゾーンは課金対象外ですが、その間の課金対象の問い合わせまで無料になるわけではありません。

    参考:Route 53の料金とエイリアス問い合わせの条件

    CloudFrontの定額プランには、DNSが含まれる場合がある

    ここは、料金を調べていて、特に注意したいと思ったところです。

    CloudFrontには、従量課金とは別にFreeなどの定額プランがあります。同じAWSアカウントの対象ホストゾーンを、そのプランに関連付けると、条件・利用枠の範囲内でRoute 53のDNS費用も含まれます。関連付けていないゾーンは、通常の従量課金のままです。ドメインの登録・更新料金は別です。

    つまり、「AWSで独自ドメインを使うなら、DNS代が必ず年6ドル増える」とは限りません。

    参考:定額プランの対象費用とRoute 53の関連付け条件

    構成ごとの比較

    ① CloudFrontの標準ドメインを使う
    独自ドメインの登録・更新料:不要
    自分で契約するDNS:不要
    まず公開を試すなら、管理するものを少なくできます。

    ② Route 53で.comを取得し、DNSも通常の従量課金で管理する
    ドメイン:年16ドル
    DNSのホストゾーン1個:月0.50ドル
    12か月維持する基本部分の目安:年22ドル
    ほかのDNS問い合わせ料金、サイト配信料金、税などは別です。

    .comの年16ドルは、AWS公式料金表の「2026年7月1日からの改定価格」で確認しています。料金表には旧価格も載っているため、改定欄を見る必要があります。

    参考:Route 53のドメイン登録料金表(PDF・改定欄)

    ③ Route 53で.comを取得し、DNSをCloudFrontのFreeプランに含める
    ドメイン:年16ドル
    DNS:関連付け条件・プランの枠内なら追加費用なし
    条件を満たせば、ドメイン・DNS部分は年16ドルが目安です。②と同じく、サイト全体の料金を表した数字ではありません。

    ④ 外部でドメインを取得し、無料DNSを使う
    ドメイン:登録会社・名前ごとの取得/更新料金
    DNS:無料プランの条件内なら0ドル
    ドメインの更新料金が、そのまま比較の出発点になります。初年度の割引だけでなく、2年目以降の料金、税・手数料、頂点をCloudFrontに向けられるかも確認します。

    Cloudflare Registrarは、原価ベースの価格と無料DNSを案内しています。ただ、今回確認した公式案内だけでは、取得したい.comの実額を確定できませんでした。ここでは「年10〜11ドル」などの数字を置かず、購入画面で取得・更新料金を確認することにします。

    また、Cloudflare Registrarで登録したドメインは、CloudflareのDNSを使う制約があります。登録先とDNSを自由に組み合わせられるとは限らない点にも注意が必要です。

    参考:Cloudflare Registrarの価格方針/Cloudflare DNSを使う条件

    今回の比較でCloudflareを使うのは、ドメイン登録やDNSの部分です。Cloudflare DNSには通信を中継するプロキシ機能もありますが、ブラウザがCloudFrontへ直接接続する構成なら「DNS only」を使うと役割を整理できます。CloudflareでDNSを使うだけで、S3やCloudFrontが不要になるわけではありません。

    参考:CloudflareのDNS onlyとプロキシの違い

    無料枠だけで、運営費0円と決めない

    CloudFrontの従量課金には、毎月1TBの配信データ転送と1,000万HTTP・HTTPSリクエストなどの無料枠があります。一方、定額のFreeプランの利用枠は月100GB・100万リクエストです。同じ「無料」でも別の仕組みで、数字を足し合わせるものではありません。

    また、リクエスト数はPV数と同じではありません。1ページを開くときにも、HTML・CSS・JavaScript・画像などで複数のリクエストが発生します。S3の操作や監視なども含め、使う構成ごとに確認が必要です。

    参考:CloudFront従量課金と無料枠/CloudFront定額プランの料金・利用枠/S3の料金

    ひとまず、名前と行き先を分けて考えられた

    最初は「CloudFrontに独自ドメインを追加すれば、それでつながるのでは」と考えていました。今は、名前を確保するのがドメイン登録、行き先を調べられるようにするのがDNS、内容を配信するのがCloudFrontとS3、と分けて考えています。

    料金も同じで、ドメインの更新料、DNSの料金、サイトの配信料金は別々です。SNI方式で独自ドメインを使うこと自体に、CloudFrontの追加料金がかかるわけではありません。

    AWSにまとめれば管理先をそろえられますし、外部DNSを使う選択肢もあります。価格だけで決めず、更新を忘れずに管理できるか、困ったときに設定を追えるかも見て選びたいと思います。

    今回は、ネットに公開するための前座として、ドメインとDNS、料金の関係を整理しました。

    次回は実際にAWSの画面を操作しながら、ドメインの取得、ACMの証明書発行、CloudFrontへの設定を追っていければと思います。あわせて、今回少し触れた「SNI方式では、どのタイミングで名前を伝えているのか」も、HTTPSの通信の流れから掘り下げてみたいです。

     
     

    花龍

     
     
    プログラマーとして主にWebアプリ開発に携わっています。 趣味ではYouTubeでゆっくり実況動画を制作しています。 技術的な学びや開発での気づき、日々の活動などを備忘録も兼ねて気ままに発信していきます。

    あなたへのおすすめ