このチュートリアルは、Cloudflare のグローバルトラフィック管理の使い方を示す入門用の例です。
以降のセクションでは、Cloudflare Pages をエンドポイントの 1 つにした アクティブ-パッシブフェイルオーバー のロードバランサーを設定します。あわせて、Load Balancing ダッシュボードの操作、重要なフィールド値、トラブルシューティングも説明します。
本番サイトやアプリケーションを Pages へ移行する場合や、プライマリオリジンがダウンしたときのバックアップやカスタムページが必要な場合に役立ちます。
次を確認してください。
- Cloudflare の Load Balancing の構成要素 を理解している。
- ドメインを所有し、Cloudflare を プライマリ DNS プロバイダー として使っている。
- Cloudflare Pages で ウェブサイトまたはアプリケーションをデプロイ している。
- アカウントで Load Balancing を有効化 している。
構成要素はすべて Create Load Balancer のワークフローで作成できます。ただし、Manage Monitors と Manage Pools を分けて使うと、ロードバランサーにまとめる前に各構成をテストし、トラブルシュートしやすくなります。
モニターは、エンドポイントを健全とみなすかどうかを決める基準です。次の手順でモニターを設定します。
-
Cloudflare ダッシュボードで Load Balancing ページを開きます。
Load Balancing を開く ↗ -
Monitors タブを選び、Create monitor を選びます。
-
モニターに分かりやすい名前を付け、他のフィールドが次のとおりであることを確認します。
| フィールド | 値 |
|---|---|
| Type | HTTP |
| Path | / |
| Port | 80 |
-
Advanced health check settings ではデフォルト値のまま、Follow Redirects を有効にします。
Cloudflare Pages のようなサービスでは、ヘルスモニターのリクエストも訪問者のリクエストも、宛先に届く前にリダイレクトされることがあります。このオプションを有効にすると、実際にはリダイレクトされただけ(たとえば
301)なのに、モニターがエンドポイントを不健全と報告するのを防げます。
- Save を選び、確定します。
プールには、ヘルスモニターのリクエストと訪問者のリクエストの送信先情報が入ります。
上記の ユースケース を想定し、本番サイト用のオリジンサーバーと Cloudflare Pages インスタンスがそれぞれ 1 台だけの場合は、エンドポイントを 1 つずつ持つプールを 2 つ作成します。
-
Cloudflare ダッシュボードで Load Balancing ページを開きます。
Load Balancing を開く ↗ -
Pools タブを選び、Create monitor を選びます。
-
1 つ目のプールでは、まず次のフィールドを入力します。
- プール名(一意である必要があります)。推奨:
primary - 名前を補足する説明。推奨:
production website
-
Endpoint Steering の選択はそのままにします。各プールのエンドポイントは 1 つだけなので、このステアリング方法は影響しません。
-
オリジンサーバーを、次の情報でエンドポイントとして追加します。
-
エンドポイント名(一意である必要があります)。推奨:
my-website。 -
エンドポイントの IP アドレスまたはホスト名。
-
エンドポイントの ウェイト。
1にできます。各プールのエンドポイントは 1 つだけなので、このケースではエンドポイントのウェイトは影響しません。 -
Add host header を選んで ホスト名 を指定します。
- 1 つ目のプールの設定を、次の情報で完了します。
- Health Threshold は
1のままにします。各プールのエンドポイントは 1 つだけなので、このフィールドに入れられる値はこの値だけです。 - 前の手順で設定した Monitor を選びます。
- Health Check Regions を選び、Cloudflare がエンドポイントのヘルスを定期的にテストする ロケーション を選びます。
-
Save を選びます。
-
2 つ目のプールでも同じ手順を繰り返し、次の値を使います。
| フィールド | 値 |
|---|---|
| Pool name | secondary |
| Description | Pages version |
| Endpoint steering | <default> |
| Endpoint name | my-pages-website |
| Endpoint address | <your custom domain or Pages subdomain> |
| Weight | 1 |
| Host(Add host header) | <your custom domain or Pages subdomain> |
| Health threshold | 1 |
| Monitor | <monitor defined on previous step> |
| Health check regions | <select region of your choice> |
ロードバランサーを設定する前に、次を確認します。
-
Cloudflare ダッシュボードで Load Balancing ページを開きます。
Load Balancing を開く ↗ -
Pools タブを開きます。
-
リストで作成したプールを探し、ステータスが
Healthyかを確認します。ページの更新が必要な場合があります。 -
各プールのエントリを展開し、中のエンドポイントのヘルスステータスも
Healthyであることを確認します。
基本は、本番サイトと Cloudflare Pages プロジェクトの両方が公開されていて、ブラウザーから直接アクセスできるなら、モニターも HTTP 応答として 200 を受け取れるはずです。
上記の手順どおりか、プールとモニターの設定を見直します。まだ問題がある場合は トラブルシューティング または FAQ を参照してください。
エンドポイントとモニターが正しく設定され、想定どおりのヘルスステータスを返すことを確認したら、ロードバランサーを作成します。
-
Cloudflare ダッシュボードで Load Balancing ページを開きます。
Load Balancing を開く ↗ -
Create load balancer を選びます。
-
Hostname ページで次を設定し、Next を選びます。
- ロードバランサーが利用可能になる DNS 名である Hostname を入力します。推奨: 当面は
lbのような一時的なホスト名で構いません(フィールド全体はlb.<your_domain>のようになります)。 - オレンジの雲アイコンを切り替えて プロキシモード を更新します。トラフィックのルーティング方法と広報される IP アドレスが変わります。
- セッションアフィニティ と アダプティブルーティング の希望するオプションを選びます。
- ロードバランサーが利用可能になる DNS 名である Hostname を入力します。推奨: 当面は
-
Add a Pool ページで次を設定し、Next を選びます。
- 先ほど作成した 1 つ目のプールを選び、Add Pool を選びます。
- 2 つ目のプールでも同じ操作をし、必要なら順序を入れ替えます。このチュートリアルでは、本番サイトのプールが 1 番目(
primary)、Cloudflare Pages のプールが 2 番目(secondary)です。 - 必要なら Fallback Pool を更新します。このチュートリアルでは、セカンダリプールを指したままで構いません。
-
Monitors ページで、プールに付いているモニターと想定されるヘルスステータスを確認し、Next を選びます。
-
Traffic Steering ページで、Off が選ばれていることを確認します。これにより、ロードバランサーは Add a Pool セクション(上記の手順 3)で決めた順序に従い、アクティブ-パッシブフェイルオーバー 構成になります。
-
このチュートリアルでは、Custom Rules は空のままにします。
-
Review ページで設定を確認し、Save as Draft を選びます。
定義したホスト名で、タイプ LB の DNS レコードが DNS > Records ↗ に作成され、対応するロードバランサーが Load Balancing ↗ に追加されます。
ロードバランサーに一時的なホスト名を使った場合は、次の手順でデプロイしてテストします。
-
Cloudflare ダッシュボードで Load Balancing ページを開きます。
Load Balancing を開く ↗ -
Load Balancers リストで、テスト用ホスト名(
lbなど)のロードバランサーを探し、有効にします。 -
ブラウザーで一時的なホスト名(
lb.example.com)をリクエストします。プライマリオリジンサーバーでホストしているウェブサイトまたはアプリケーションが表示されるはずです。 -
Manage Load Balancers リストに戻り、テスト用ロードバランサーを展開し、プライマリプールを無効にします。
-
ブラウザーの新しいシークレットウィンドウで、一時的なホスト名をもう一度リクエストします。今度はセカンダリオリジンサーバーでホストしているウェブサイトまたはアプリケーションが表示されるはずです。
問題がある場合は、プール、モニター、ロードバランサーの設定が上記の手順どおりかを見直します。必要なら トラブルシューティング または FAQ も参照してください。
ロードバランサーを設定し、正しく動くことを確認したら、本番ドメインまたはサブドメインに載せられます。
-
本番ホスト名の DNS レコードの 優先順位 が正しく、SSL/TLS 証明書 でカバーされていることを確認します。
Enterprise アカウントの場合は、除外するパスがないかも確認します。たとえば
/adminへのリクエストはロードバランサーで分散したくない場合があります。例外には Origin rule を設定します。 -
既存のロードバランサーの Hostname を編集し、本番トラフィックを受け取れるようにします。