サーバレスアーキテクチャ

Cloudflare Workersを独自ドメイン・サブドメインで使う方法

無料で使えるエッジサーバー・Cloudflare Workersを独自ドメイン・サブドメインで使う方法をまとめました。Workerと独自ドメインの関係や具体的な設定方法を解説します。

Cloudflare Workersとドメインの関係

まずはじめに、Cloudflare Workersとドメインの関係を知っておくと、この後の設定が理解しやすいでしょう。

Cloudflare Workersとドメイン・サブドメインの連携は、Cloudflareでドメインごとに設定をします。

設定画面がドメインのメニューにあるためWorkerをドメイン個々に作成するような気がしてきますが、ここで設定するのは、

  • どのWorkerと連携するか
  • 連携したWorkerをどのRoute(どのURLパターン)で使うか

ということだけです。

独自ドメインからCloudflare Workersを呼び出すフローのイメージとしては、

ブラウザ
|
Cloudflare Proxy
|
Cloudflare内のWorker Route
├──> (マッチしたら) 指定したWorker(xxx.yyy.workers.devと同じ)
└──> (マッチしなかったら) CNAME or IPレコード

となります。

Cloudflare Workers自体は独立していて、Workerを作成した際に登録したサブドメインでもアクセスができますし、Cloudflareに登録しているドメインであれば、全てのドメイン・サブドメインと連携ができます。つまり、一つのWorkerを複数ドメインで共用することも可能です。

Cloudflare Workersとドメインを連携する設定

WorkerタブからRouteと連携を設定する

ドメインごとのWorkerの設定は、Workerメニューから「ルートを追加」ボタンで追加します。

ルート追加画面では、

  • URLのマッチパターン 
  • 連携するWorker

を指定します。

URLのマッチパターンについては、CloudflareのPage Ruleと同じ書き方で指定します。「*」を変数にして、URLに一致させる書き方です。

例えば、上記の画像に記入した例(*/hogehoge.com/*)でいうと、

http://hogehoge.com/以下全て
https://hogehoge.com/以下全て

にマッチします。ルートドメインにだけ適用されます。

http://www.hogehoge.com/
https://api.hogehoge.com/

これらのサブドメインにはマッチしません。

マッチパターンについては、下記の公式ドキュメントをどうぞ。

Matching Behavior | Cloudflare

Workerで使うドメイン・サブドメインのDNSレコードに追加する

Cloudflare WorkersにRouteを登録しただけでは、

DNS PROBE FINISHED NXDOMAIN
ERR_NAME_NOT_RESOLVED

というエラーになって表示ができません。

これを回避するため、DNSレコードを追加します。

例えば、api.example.comというサブドメインに対してWorkerをひもづけたいとしたら、

CNAME api example.com

とすればOKです。大事なのは、指定したDNSレコードは「Proxy(雲マーク)」に必ずする必要があります。

仕組みとしては、先ほどのCloudflare Workersとドメインの関係で説明した通り、

  • ブラウザがDNSにレコードを確認
  • Cloudflareがレコードを返す
  • ブラウザリクエストを飛ばす
  • CloudflareのCDNを通過する時に、Workerにルートする(DNSレコード先には飛ばさない)

という形式になっています。

つまり、WorkerのRouteのマッチパターンさえ間違わなければ、DNSレコードで設定したドメインやIPに飛ぶことはありません。

逆にいうと、設定間違えるとDNSレコードの通りにリクエストが通ってしまうので、ミスなどを考えるとCNAMEやAレコードの向き先は、自ドメイン(ルートドメインなど)かインターネット上で存在しないIP(192.168.1.1など)にしておくと良いでしょう。


Cloudflare Workersを独自ドメイン・サブドメインで使う方法をみてきました。

仕組みが理解できていないと、どこでどんな設定をすれば良いのか混乱してしまいますが、仕組み自体はシンプルかつ使いやすく作られているので、一度テストで使ってみたらすぐに覚えられる内容になっています。

Cloudflare Workersの使い方については、下記の記事をどうぞ。


価格は記載がある場合を除き、すべて税込みです。

この記事の関連キーワード

サーバレスアーキテクチャの記事