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の使い方については、下記の記事をどうぞ。
無料で使えるエッジコンピューティングサーバー・Cloudflare Workersで簡易APIを立ててみる
無料で使えるエッジコンピューティングサーバー・Cloudflare Workersを使って、簡易APIを立ててみます。登録方法から実際に動かす方法をまとめてみました。
価格は記載がある場合を除き、すべて税込みです。
この記事の関連キーワード
サーバレスアーキテクチャの記事
-
サーバレスアーキテクチャ いまさら聞けないレンタルサーバーとHerokuの違い 2022.5.10 -
サーバレスアーキテクチャ AWS S3より安くて作業コストも削減!Cloudflare Imagesの仕組みや料金まとめ 2021.10.25 -
サーバレスアーキテクチャ Cloudflareのホットリンク保護を回避する方法 2021.10.5 -
サーバレスアーキテクチャ DigitalOceanのサーバーレス(App Platform)のプラン・料金を徹底レビュー 2021.6.17 -
サーバレスアーキテクチャ Cloudflare Workers KVをAPIの無料DBとして使うときのポイント 2021.4.16 -
サーバレスアーキテクチャ Cloudflare Pagesの制限事項まとめ 2021.3.31 -
サーバレスアーキテクチャ コマンドラインで操作できる「Netlify CLI」を使いこなす 2021.3.9 -
サーバレスアーキテクチャ Netlifyで「Build exceeded maximum allowed runtime」となった時の対処方法 2021.3.4