Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

サーバーとプールの健全性

最終更新 Markdown で表示Agent セットアップ

前述のとおり、モニターはヘルスチェックを定期的に発行し、プール内の各サーバーの健全性を評価します。

    flowchart RL
      accTitle: ロードバランシングのモニターの流れ
      accDescr: モニターはヘルスモニターリクエストを送り、各プール内のサーバーの現在の状態を確認します。
      Monitor[モニター] -- ヘルスモニター ----> Endpoint2
      Endpoint2 -- 応答 ----> Monitor
      subgraph Pool[プール]
      Endpoint1((エンドポイント 1))
      Endpoint2((エンドポイント 2))
      end

モニターが定期的に発行するリクエストです。モニター設定に応じて pass または fail を返し、エンドポイントが引き続きトラフィックを受けられるかを確認します。

各ヘルスモニターリクエストは、次の 2 つの問いに答えようとします。

  1. エンドポイントはオフラインか?: エンドポイントはヘルスモニターリクエストに応答するか。応答する場合、十分に速く応答するか(モニターの Timeout フィールドで指定)。
  2. エンドポイントは想定どおり動作しているか?: エンドポイントは想定した HTTP レスポンスコードを返すか。レスポンス本文に特定の情報が含まれるか。

いずれかの答えが「いいえ」の場合、そのエンドポイントはヘルスモニターリクエストに失敗します。


カスタマイズ

サーバープールの特性に応じて、サーバーを不健全とみなすかどうか、またその判断方法を変えるカスタマイズがあります。

プールレベルの設定

健全性しきい値

Health Threshold は、プール全体を Healthy とみなし、ロードバランサーのプール順に従ってトラフィックを受け取るために必要な、健全なエンドポイント数です。この数を大きくするとプールの信頼性は上がりますが、unhealthy にもなりやすくなります。


ヘルスモニターのリージョン

プールの Health Monitor Regions で選んだ各オプションについて、Cloudflare はそのリージョン内の 3 つのデータセンターからヘルスモニターリクエストを送信します。

ヘルスモニターリクエストは、選択した各リージョン内の 3 つのデータセンターから送信されます。

そのリージョンの過半数のデータセンターでヘルスモニターが成功すると、そのリージョンは健全とみなされます。健全なリージョンが過半数なら、エンドポイント自体も健全とみなされます。

構成

All Data Centers(Enterprise のみ)

ヘルスモニタープローブは、Cloudflare ネットワーク内のすべてのデータセンターから、関連プール内のエンドポイントへ送信されます。お客様が設定した間隔で、各エンドポイントにプローブが届きます。

All Regions(Enterprise のみ)

関連プール内の各エンドポイントに対して、リージョンあたり 3 本のヘルスモニタープローブを送信します。リージョンは合計 13 あるため、プローブは 39 本になります。

Regional

プール設定で指定した各リージョンから、3 本のヘルスモニタープローブを送信します。


モニターレベルの設定

モニターを作成する とき、接続先プールの特性に合わせて調整できる設定がいくつかあります。

基本設定

  • Type: ヘルスモニターに使うプロトコルです
    • Enterprise 以外のお客様: HTTPHTTPSTCP から選びます。
    • Enterprise のお客様: HTTPHTTPSTCPUDP ICMPICMP PingSMTP から選びます。
  • Path: ヘルスモニターリクエストを送るエンドポイントのパスです
  • Port: ヘルスモニターの宛先ポートです

詳細設定

  • Interval:
    • デフォルトを大きくすると、フェイルオーバー時間を改善できますが、エンドポイントの負荷も増える場合があります。
    • 最小間隔(秒)は 60(Pro)、15(Business)、10(Enterprise)です。
  • TimeoutRetries:
    • ヘルスモニターリクエストが Timeout で指定した時間を超え(かつ、その超過回数が指定した Retries 回数を超えた)場合、unhealthy を返します。
  • Expected Code(s): 期待する HTTP レスポンスコード。個別に指定する(200302)か、範囲で指定します(たとえば 2xx と入力すると、200 番台のすべてのレスポンスコードが対象になります)。
  • Response Body:
    • レスポンス本文内の、大文字小文字を区別しない部分文字列を探します。
    • 値は比較的静的で、HTML ページの先頭 10 KB 以内にあることを確認してください。
  • Simulate Zone:
  • Follow Redirects:
    • 301 または 302 コードを unhealthy として報告する代わりに、ヘルスモニターリクエストは最終エンドポイントまでリダイレクトをたどります。
  • Configure Request Header(s):
    • エンドポイントが特定の受信ヘッダーを期待している場合に便利です。
  • Header:
    • ヘルスモニターで送信する HTTP リクエストヘッダーです。デフォルトで Host ヘッダーを設定することを推奨します。User-Agent ヘッダーは上書きできません。このパラメーターは HTTP および HTTPS モニターでのみ有効です。

フォールバックプール

ロードバランサーに関連付けたプールのうち、どれをフォールバックプールにするかも決める必要があります。

このプールは最終手段のプールです。トラフィックを振り分けるとき、このプールのヘルスは考慮されません。

フォールバックプールは重要です。すべてのプールに到達できない(無効または異常)場合でも、ロードバランサーへトラフィックが届くことがあります。ロードバランサーはこのトラフィックの送り先が必要なため、フォールバックプールへ送ります。

役に立ちましたか?