メインコンテンツまでスキップ

第08章:Custom DomainsとRoutesを選ぶ練習をしよう ⚖️🧠

ここまでで、Custom DomainsとRoutesの考え方を学びました。
でも実際の開発では、「で、今回はどっち?」と迷うことがよくあります。
この章では具体例を見ながら、用途で選ぶ練習をします 😊


1. 判断の基本は3つだけ 🧭

まず、次の3つを確認します。

  1. Workerにホスト名全体を任せたいか
  2. 既存のWebサイトやoriginがあるか
  3. 一部のパスだけWorkerで処理したいか

ホスト名全体を任せたいならCustom Domainsが自然です。
既存サイトの一部だけWorkerにしたいならRoutesが自然です。

decision_three

設定名から考えるより、URLの設計意図から考えるのがポイントです。


2. 例1:api.example.com を丸ごとAPIにしたい 🏡

この場合はCustom Domainsが向いています。

api.example.com
api.example.com/users
api.example.com/ai/summarize

どのパスも同じWorkerで処理したいなら、ホスト名全体をWorkerに任せるほうが分かりやすいです。

wrangler.jsonc の例です。

{
"routes": [
{
"pattern": "api.example.com",
"custom_domain": true
}
]
}

example1_api

API専用サブドメインは、学習用にも実務用にも整理しやすい形です 🔗


3. 例2:example.com/api/* だけWorkerにしたい 🛣️

この場合はRoutesが向いています。

example.com/        → 既存サイト
example.com/blog → 既存サイト
example.com/api/* → Worker

既存サイトを残しながら、APIだけWorkersで作る形です。
この場合、example.com にCloudflare proxied DNSレコードが必要になります。

wrangler.jsonc の例です。

{
"routes": [
{
"pattern": "example.com/api/*",
"zone_name": "example.com"
}
]
}

example2_route

既存サイトを壊さず、少しだけCloudflare Workersを足したいときに便利です 🌱


4. 例3:Reactアプリを app.example.com に出したい ⚛️

React + ViteのアプリをCloudflare Workersで配信するなら、Custom Domainsが分かりやすいです。

app.example.com

画面全体をそのホスト名で見せたいからです。
さらにAPIを分けるなら、次のような構成もできます。

app.example.com → React画面
api.example.com → Workers API

example3_react

この形は、フロントとAPIの責任が分かりやすいです。
ただし、別サブドメインになるのでCORSの考え方も必要になります。


5. 例4:1つのドメインで画面もAPIもまとめたい 🧩

小さなアプリなら、1つのホスト名にまとめる構成もあります。

summary.example.com/        → React画面
summary.example.com/api/* → API

この場合、Custom Domainで summary.example.com をWorkerに向け、Worker内でパスを見て処理を分ける方法があります。

たとえば、Worker内で次のように考えます。

/api/summarize → API処理
それ以外 → 静的アセットや画面

example4_single

小さな作品制作では、この構成がシンプルで分かりやすいことがあります ✨


6. 例5:Next.jsはどう考える? ▲

Next.jsをCloudflare Workersで動かす場合も、公開URLの考え方は同じです。
Next.jsそのものに深く入る前に、まず「どのホスト名で見せるか」を決めます。

たとえば、Next.jsアプリ全体を www.example.com で公開するなら、Custom Domainの考え方が自然です。
既存サイトの一部だけNext.jsやWorkerにしたいなら、Routesの発想が出てきます。

この教材ではNext.jsを主役にしません。
Cloudflareの公開設計を理解するための例として扱います 🧭

example5_nextjs


7. 判断表 ✅

迷ったら、次の表で考えます。

やりたいこと向いている設定
api.example.com 全体をWorkerにしたいCustom Domains
app.example.com 全体をReactアプリにしたいCustom Domains
example.com/api/* だけWorkerにしたいRoutes
既存サイトの前で一部だけ処理したいRoutes
Workerだけで完結する新規アプリCustom Domains

decision_table

最初はこの表だけでも十分です。
細かい例外は、実際に必要になってから学べばOKです 🌱


8. 章末チェック ✅

  • Custom DomainsとRoutesを用途で選べる
  • ホスト名全体ならCustom Domainsと判断できる
  • 一部パスだけならRoutesと判断できる
  • 既存originがあるかどうかを確認できる
  • ReactやAPIのURL設計を自分で考えられる

この章で覚える一言はこれです。
公開設定は、設定名ではなく「どのURLを誰に任せるか」で選びます ⚖️✨