ページをロードバランシングのオリジンとして使用する
このチュートリアルは、Cloudflareのグローバルトラフィック管理を活用する方法の入門例として意図されています。
以下のセクションでは、Cloudflare Pagesをエンドポイントの1つとして使用したアクティブ-パッシブフェイルオーバーロードバランサーの設定方法を案内し、ロードバランシングダッシュボードのワークフロー、重要なフィールド値、およびトラブルシューティングについて詳しく説明します。
この設定は、プロダクションのウェブサイトやアプリケーションをPagesに移行する場合や、プライマリオリジンがダウンしたときのバックアップやパーソナライズされたウェブページを持ちたい場合に役立ちます。
以下のことを確認してください:
- Cloudflareのロードバランシングコンポーネントに精通していること。
- ドメインを所有し、CloudflareをプライマリDNSプロバイダーとして使用していること。
- Cloudflare Pagesでウェブサイトまたはアプリケーションをデプロイしていること。
- アカウントでロードバランシングを有効にしていること。
ロードバランサーの作成ワークフロー内ですべてのコンポーネントを作成できますが、モニターの管理およびプールの管理セクションを別々に使用することで、ロードバランサーに統合する前に各コンポーネントの設定をテストおよびトラブルシューティングしやすくなります。
モニターは、エンドポイントが正常かどうかを判断する基準を定義します。次の手順でモニターを設定します。
- Cloudflareアカウントにログインし、ドメインを選択します。
- トラフィック > ロードバランシングに移動します。
- モニターの管理を選択し、次に作成を選択します。
- モニターに説明的な名前を付け、他のフィールドが以下のように入力されていることを確認します:
| フィールド | 値 |
|---|---|
| Type | HTTP |
| Path | / |
| Port | 80 |
-
高度なヘルスチェック設定の下で、デフォルト値を保持し、リダイレクトを追跡オプションを有効にします。
Cloudflare Pagesのようなサービスを使用している場合、ヘルスモニターからのリクエストや訪問者からのリクエストが、目的地に到達する前にリダイレクトされる可能性があります。このオプションを有効にすると、実際にはリダイレクトされただけであるエンドポイントを、モニターが不健康として報告するのを防ぎます(例えば、
301コードで)。
- 保存を選択して確認します。
プールは、ヘルスモニターのリクエストと訪問者のリクエストがどこに向かうかに関する情報を保持します。
上記の使用例をサポートするために、プロダクションのウェブサイト用のオリジンサーバーが1つ、Cloudflare Pagesインスタンス用のオリジンサーバーが1つあると仮定して、各プールに1つのエンドポイントを持つ2つのプールを作成します:
-
トラフィック > ロードバランシングに移動します。
-
プールの管理を選択し、次に作成を選択します。
-
最初のプールについて、以下のフィールドを入力します:
- プールの名前(ユニークである必要があります)。提案:
primary - 名前に関する詳細を提供する説明。提案:
プロダクションウェブサイト
-
エンドポイントスティアリングの選択はそのままにします。各プールには1つのエンドポイントしかないため、このスティアリング方法はこの場合に干渉しません。
-
オリジンサーバーをエンドポイントとして以下の情報で追加します:
-
エンドポイントの名前(ユニークである必要があります)。提案:
my-website。 -
エンドポイントのIPアドレスまたはホスト名。
-
エンドポイントの重み、これは
1に設定できます。各プールには1つのエンドポイントしかないため、この場合エンドポイントの重みは影響しません。 -
ホスト名をホストヘッダーを追加を選択して追加します。
- 最初のプールの設定を以下の情報で完了します:
- ヘルス閾値は
1のままにします。各プールには1つのエンドポイントしかないため、このフィールドの唯一の可能な値です。 - 前のステップで設定したモニターを選択します。
- ヘルスチェック地域を選択して、Cloudflareがエンドポイントのヘルスを定期的にテストするためにモニターリクエストを送信する場所を選択します。
-
保存を選択します。
-
次の値を使用して2番目のプールのプロセスを繰り返します:
| フィールド | 値 |
|---|---|
| プール名 | secondary |
| 説明 | Pagesバージョン |
| エンドポイントスティアリング | <default> |
| エンドポイント名 | my-pages-website |
| エンドポイントアドレス | <your custom domain or Pages subdomain> |
| 重み | 1 |
| ホスト(ホストヘッダーを追加) | <your custom domain or Pages subdomain> |
| ヘルス閾値 | 1 |
| モニター | <monitor defined on previous step> |
| ヘルスチェック地域 | <select region of your choice> |
ロードバランサーを設定する前に:
- トラフィック > ロードバランシング > プールの管理に移動します。
- 作成したプールをリストで見つけ、そのステータスが
Healthyであることを確認します。ページを更新する必要があるかもしれません。 - 各プールエントリを展開して、その中のエンドポイントのヘルスステータスも
Healthyであることを確認します。
基本的な原則は、プロダクションのウェブサイトとCloudflare Pagesプロジェクトの両方がライブでブラウザから直接アクセス可能であれば、モニターもHTTPレスポンスとして200コードを取得できるはずです。
プールとモニターの設定を見直して、上記の指示に従っていることを確認してください。まだ問題がある場合は、トラブルシューティングやFAQを参照してください。
エンドポイントとモニターが正しく設定され、期待されるヘルスステータスを返すことを確認したら、ロードバランサーを作成します:
-
トラフィック > ロードバランシング > ロードバランサーの作成に移動します。
-
ホスト名ページで、以下を設定し、次へを選択します。
- ロードバランサーが利用可能なDNS名であるホスト名を入力します。提案:今のところ、
lbのような一時的なホスト名を追加できます(完全なフィールド値はlb.<your_domain>のようになります)。 - オレンジの雲のアイコンを切り替えて、トラフィックのルーティング方法や広告されるIPアドレスに影響を与えるプロキシモードを更新します。
- セッションアフィニティと適応ルーティングの好みのオプションを選択します。
- ロードバランサーが利用可能なDNS名であるホスト名を入力します。提案:今のところ、
-
プールを追加ページで、以下を設定し、次へを選択します。
- 前に作成した最初のプールを選択し、プールを追加を選択します。
- 2番目のプールについても同様に行い、必要に応じて順序を変更します。このチュートリアルの目的では、プロダクションウェブサイトプールが最初(
primary)で、Cloudflare Pagesプールが2番目(secondary)になります。 - 必要に応じて、フォールバックプールを更新します。このチュートリアルの目的では、これをセカンダリプールに指し続けることができます。
-
モニターページで、プールに添付されたモニターと期待されるヘルスステータスを確認し、次へを選択します。
-
トラフィックスティアリングページで、オフが選択されていることを確認します。これは、ロードバランサーがプールを追加セクション(上記のステップ3)で確立された順序に従うことを意味し、アクティブ - パッシブフェイルオーバー構成を実現します。
-
このチュートリアルの目的では、カスタムルールオプションは空のままにします。
-
レビューページで、設定を確認し、ドラフトとして保存を選択します。
LBタイプのDNSレコードがDNS > レコード ↗の下に作成され、定義したホスト名に対応するロードバランサーがトラフィック > ロードバランシング > ロードバランサーの管理 ↗に追加されます。
一時的なホスト名をロードバランサーに使用した場合、以下の手順に従ってデプロイしてテストします。
-
トラフィック > ロードバランシングに移動します。
-
ロードバランサーの管理リストで、テストホスト名(
lbなど)で作成したロードバランサーを見つけて有効にします。 -
ブラウザで一時的なホスト名(
lb.example.com)をリクエストします。プロダクションオリジンサーバーにホストされているウェブサイトまたはアプリケーションが表示されるはずです。 -
ロードバランサーの管理リストに戻り、テストロードバランサーを展開してプライマリプールを無効にします。
-
ブラウザの新しいシークレットウィンドウで、一時的なホスト名を再度リクエストします。今度はセカンダリオリジンサーバーにホストされているウェブサイトまたはアプリケーションが表示されるはずです。
問題が見つかった場合は、プール、モニター、およびロードバランサーの設定を見直して、上記の指示に従っていることを確認してください。また、必要に応じてトラブルシューティングやFAQを参照してください。
ロードバランサーを設定し、すべてが正しく機能していることを確認したので、ロードバランサーをライブドメインまたはサブドメインに配置できます:
-
プロダクションホスト名が正しい優先順位のDNSレコードの順序を持ち、SSL/TLS証明書でカバーされていることを確認します。
エンタープライズアカウントをお持ちの場合は、除外されたパスについてアプリケーションを評価することも検討してください。例えば、
/adminパスに向けられたリクエストをロードバランサーが分配しないようにしたいかもしれません。例外がある場合は、オリジンルールまたはページルールを設定します。 -
既存のロードバランサーのホスト名を編集して、プロダクショントラフィックを受信するようにロードバランサーを設定します。