外部組織管理のサブドメインを Cloudflare Workers に向ける — AWS CloudFront + WAF を前段に挟んだ記録
本記事は生成AIと共同で執筆しています。事実関係は可能な範囲で公式ドキュメント等と照合していますが、誤りが含まれている可能性があります。重要な判断を行う前にご自身でも一次情報をご確認ください。 本記事ではホスト名や ID を一般化したプレースホルダで表記しています。例: 本番ホスト名: app.example.org Worker URL: <worker-name>.<account>.workers.dev CloudFront 配信ドメイン: dxxxxxxxxxx.cloudfront.net WAF 名: your-app-waf TL;DR 自分の管理外の組織 DNS にあるサブドメイン(例として app.example.org と表記)を、Cloudflare Workers / Pages で配信したかった Cloudflare Free / Pro / Business は外部ドメインのサブドメインを単独 zone として受け入れない(NS 委任不可、CNAME クレーム不可) Cloudflare for SaaS は CNAME ベースで受け入れ可能だが Pro $25/月 以上が必須 Vercel は CNAME ベースで対応可能だが、対象サブドメインが既に別アカウントに排他クレームされていて利用不可、というケースに当たった 最終的に AWS CloudFront + AWS WAF を前段に挟み、Origin として workers.dev を指す構成にした DNS 管理者への依頼は「ACM 検証 CNAME 追加 → 後日 A → CNAME 切替」の 2 段階 月額目安: 小規模トラフィックで約 $10 背景 ある Next.js アプリを Cloudflare Workers に移行する作業を進めていました。アプリ自体は @opennextjs/cloudflare で Worker 化し、Elasticsearch 接続も Cloudflare Tunnel + Cloudflare Access の Service Token に切替えて、ローカル動作・workers.dev での疎通までは順調に進みました。 ...