:::: MENU ::::

Cloudflare for SaaSを使ってカスタムホスト運用を試してみる

Cloudflare Meet-up Tokyo Vol.1 - connpass

先日Cloudflare Meet-upに参加したんですが、まだまだ知らない設定や機能がじゃんじゃか出てくる!と情報に圧倒されました。その中でもFreeプランでもサブドメイン利用できる Cloudflare for SaaS は気になったので調べることにします。

Cloudflare for SaaS

Cloudflare for SaaS · Cloudflare for Platforms docs

元はEnterpriseの機能だったが全プランで使えるようになった機能。
Cloudflareを使ってSaaSを提供する企業が、テナントごとに独自ドメインを利用したいという用途で作られたのだとか。

今回はZone ApexのNSを変更したくないけど、サブドメインでCloudflareを使いたいというケースで見ていく。

利用に必要なもの

  • Cloudflare Freeプラン
  • サイト登録に必要なドメイン(WEBサイトで利用したいドメインとは別のもの)
  • クレジットカード($0だけどクレカの登録済みである必要がある)

設定手順

ドキュメントに書いてあるので流れだけ
Configuring Cloudflare for SaaS · Cloudflare for Platforms docs

  1. フォールバック オリジンのドメインをDNSに登録
  2. フォールバック オリジンに上記ドメインを登録
  3. カスタムホスト名を追加
    1. 証明書検証
    2. ホスト名の検証

※フォールバック オリジンに設定したドメインのDNS情報はオリジンから削除しないと編集できない状態になるので注意

アクセス経路

ドキュメントのまま作ったいくと以下の経路になるはず。
SaaS側でどのサービスやテナントを返すかカスタムホストのドメインでも問題なく動作するかは、アプリケーション作り次第となる。

----
yourdomain.com: カスタマーがSaaSに設定したい独自ドメイン
saasprovider.com: Cloudflareにサイト登録しているドメイン
xxx.xx.xx.xxx: アプリを提供しているIPアドレスまたはドメイン
----
yourdomain.com (カスタムホスト)
  ↓ CNAME
customers.saasprovider.com (カスタマー向けのわかりやすいドメイン ※オプション)
  ↓ CNAME
proxy-fallbak.saasprovider.com (フォールバック オリジン)
  ↓ A or CNAME
xxx.xx.xx.xxx (SaaS本体)

これをCloudflare管理にはできないドメインのサブドメインをベースに置き換えると、以下のようになる。
Cloudflare PagesやWorkersで対象のアプリケーションを提供できるのであれば、カスタムドメイン登録すればいいだけなのでプロキシー経由のアクセスなどは不要。

----
sub.yourdomain.com: CloudflareがNSになってないドメインのサブドメイン
saasprovider.com: Cloudflareにサイト登録しているドメイン
xxx.xx.xx.xxx: アプリを提供しているIPアドレスまたはドメイン
----
sub.yourdomain.com (カスタムホスト)
  ↓ CNAME
proxy-fallbak.saasprovider.com (フォールバック オリジン)
  ↓ A or CNAME
xxx.xx.xx.xxx (アプリケーション本体)

どちらの場合もCloudflareにサイト登録しているドメインをプロキシーしてアクセスするため、CloudflareのCDNとしての機能を享受できるのだと考えればいいのかな。

この構成で困る部分はないのか調べる

個人的に気になる点だけ。

機能

Freeプラン

回避策

参考

Custom host

100個まで無料

ホスト名1個につき月額$0.10で追加可能

Custom origin

Fallback originは1つのみ

Enterpriseプランを契約
or Originで受け取った後に振り分ける
or もう一つサイト登録して増やす

Custom origin server · Cloudflare for Platforms docs

独自証明書

Cloudflare証明書のみ利用可能(ワイルドカードは不可)

Enterpriseプランを契約

※1

キャッシュキー

一通り利用できる

-

Cache Keys · Cloudflare Cache (CDN) docs

※1

総評

確かにCloudflareで管理していないドメインでもCloudflareをCDNとして利用することはできました。
Free版だといくつか制限があるので条件分岐や特殊な要件では使えないですが、趣味で使う分には十分な機能かと。

SaaS提供側のカスタムドメイン設定なんて一般的じゃないのもあり、Cloudflareに慣れてないのもあり、設定はわかりにくい。
CloudflareにNS移すの避けたいからって理由だけで使うにはちょっと合わないかも、そもそもそういう機能じゃないですしね。

他にもBusinessプラン以上で利用できる Set up a partial (CNAME) zone は気になったので、体験版あればこちらもどういう使用感になるのか確かめたいところ。