グローバルロードバランサーの作成

eコマース・ウェブサイトや、アクセス可能な状態を維持しなければならないアプリケーションをホストしている場合、その可用性とパフォーマンスに懸念を抱いていることでしょう。

IBM Cloud Internet Services ( CIS ) で利用可能なグローバルロードバランサー機能は、アプリケーションの信頼性とスケーラビリティを向上させると同時に、可能な限り最高のユーザーエクスペリエンスを提供します。

グローバルロードバランサーは、ユーザートラフィックを複数の地域に分散し、可用性とパフォーマンスを向上させます。

コンソール、CLI、API、Terraformを使ってグローバルロードバランサーを設定できます。

開始前に

  • CIS インスタンスをプロビジョニングします。
  • CIS でドメインを設定する。
  • アプリケーション・オリジンのIPアドレスまたはFQDNを特定する。

CIS はプライベートIPアドレスを使うロードバランサープールをサポートできます。 ただし、プライベートIPプールはプロキシサービスやヘルスチェックをサポートしておらず、DNSベースのロードバランシングのみがサポートされている。 パブリックIPを持つプールの場合、ヘルスチェックは (ステップ1:ヘルスチェックの作成 )の説明に従って構成できる。

クイック・セットアップ

もしプールとヘルスチェックを既に知っていれば、 ロードバランサを作るときにインラインで作ることができます:

  1. CIS コンソールで、 「信頼性」>「グローバルロードバランサー」>「オリジンプール」の順にクリックし、「 作成 」をクリックします。

  2. プール名と起点を入力して、ヘルス・チェックを選択します。

    ヘルスチェックリストメニューで新規作成を選択し、情報を入力することで、ここで新しいヘルスチェックを作成することができます。

  3. 保存 をクリックします。

以下の手順は、ヘルスチェック、プール、グローバルロードバランサーを作成するための完全な手順です。

コンソールでグローバルロードバランサーを作成する

グローバルロードバランサーのページ (信頼性 > グローバルロードバランサー )を開くと、 ロードバランサーサーバーが過負荷にならないように、一連のサーバーに作業負荷を分散するソフトウェアまたはハードウェア。、オリジンプール、 ヘルスチェックシステムが効率的に実行されているかどうかを判別するために、システムのリソースと状態をモニターするプロセス。、イベントのタブが表示されます。 これらのタブには、グローバルロードバランサーとそのコンポーネントが、作成または更新されるたびに表示されます。

以下の手順に従って、次の図のような設定を行う方法を学びましょう。 この例では、アプリケーション・リソースは2つのデータセンター(米国西部と米国東部)に配置され、ユーザーはグローバルにアプリケーションにアクセスする。 世界中のユーザーがこのアプリケーションにアクセスする可能性があります。

コンソールでグローバルロードバランサーを作成し設定するには、以下の手順に従います:

ステップ1:ヘルスチェックの作成(オプション)

ヘルス・チェックは、起点プールに対するオプションの付加機能です。 特定のレスポンスボディまたはステータスコードをチェックし、プールの健全性を監視するために、設定可能な間隔で実行される。 ヘルス・チェックを作成した後、それを新規または既存の起点プールに追加できます。

カスタムヘルスチェックを定義しない場合、 CIS では、 / がデフォルトのヘルスチェックパスとして使用されます。

  1. CIS コンソールで、 [信頼性]>[グローバルロードバランサー]>[ヘルスチェック]の順にクリックし、[ 作成]をクリックします。

  2. 以下のフィールドを構成します。

    • 名前健康診断名
    • モニターの種類 :ヘルスチェックに使用するプロトコル。 (デフォルト: HTTP)。
    • ポート :矢印をクリックして、ポート番号を増減させます。
    • パス :ヘルスチェックを実行する対象となるエンドポイントのパス。 (デフォルト: /)
  3. 詳細オプションを展開して設定する:

    • テスト間隔: ヘルス・チェックの実行間隔 (秒単位)。 間隔を短くするとフェイルオーバー時間を短縮できますが、複数の場所からチェックが行われるため、オリジンへの負荷が増加します。 (デフォルト: 60)。
    • 方法: ヘルスチェックに使用する HTTP メソッド。 (デフォルト: GET)
    • タイムアウト(秒) :ヘルスチェックが失敗と判定されるまでの時間。 (デフォルト: 5)
    • 再試行回数 :タイムアウトが発生した場合、オリジンを「正常でない」状態としてマークする前に試行する再試行の回数。 CIS はすぐにリトライを試みる。 (デフォルト: 2)
    • 期待される応答コード :ヘルスチェックの HTTP で期待される応答コード、または応答コードの範囲。 この値は 200~299 の範囲でなければならず、ワイルドカードは「 x 」で表されます。
    • レスポンス本文 :レスポンス本文内で照合する、大文字小文字を区別しない部分文字列。 CIS、この文字列が見つからない場合、オリジンを不健康とマークする。
    • 健全性のしきい値 :オリジンをヘルシーとマークする前に、 CIS、連続してヘルスチェックに成功した応答の数。 この設定により、 CIS、1回のプローブ成功後に原点がヘルシーマークされるのを防ぎ、断続的なリカバリー時のバタつきを防ぐことができる。 (デフォルト: 1)
    • 不健康のしきい値 : CIS、オリジンを不健康とマークするまでに発生する、連続した健康チェックの失敗応答数。 この設定により、一時的なネットワークやアプリケーションの問題が即座にフェイルオーバーのトリガーとなるのを防ぐことができます。 (デフォルト: 1)
    • リダイレクトに従う : HTTP 3xx リダイレクトレスポンスをヘルスチェックが自動的にフォローするかどうかを決定します。 有効にすると、ヘルスチェックはリダイレクトされた場所まで続き、設定された成功基準(ステータスコードとオプションのレスポンスボディ)に対して最終レスポンスを評価する。 無効にすると、リダイレクト応答は期待される応答コードに対して直接評価される。
  4. [ リクエストヘッダーの設定(オプション) ] を展開し、ヘルスチェックで送信する HTTP のリクエストヘッダーを追加および設定します。

    デフォルトで「Host」ヘッダーを設定します。 User-Agent ヘッダーはオーバーライドできません。

  5. **「作成」**をクリックして、ヘルス・チェックの構成を完了します。

健康診断イベントとの連携

グローバルロードバランサーに関連付けられているオリジンとプールのヘルスステータスの変化を監視および調査するには、[ イベント ]タブを使用します。 ヘルスチェックイベントは、設定されたヘルスチェックが検出するステータスの変化を表す。 オリジンのステータスが変更されると、対応するイベントエントリーが詳細とともに表示されます。

以下のフィルタリングオプションが利用可能です:

  • 開始日:選択した日付範囲の開始日でイベントをフィルタリングします。
  • 終了日:選択した日付範囲の終了日でイベントをフィルタリングします。
  • オリジンの健全性:オリジンのステータス(例えば、HealthyまたはCritical)によってイベントをフィルタリングします。
  • オリジン特定の起源によってイベントをフィルタリングします。
  • プールの健全性:プールの状態(HealthyやCriticalなど)でイベントをフィルタリングする。
  • プール:特定のオリジンプールによってイベントをフィルタリングする。

ヘルスチェックイベントを表示するには、 [信頼性]>[グローバルロードバランサー]>[イベント]の順にクリックします。

ステップ2:オリジンプールの作成

プロビジョンしたロード・バランサーごとに、少なくとも 1 つのプールが必要です。 ロードバランサーが使用するプールグループの起源を指定します。

  1. CIS コンソールで、 「信頼性」>「グローバルロードバランサー」>「オリジンプール」の順にクリックし、「 作成 」をクリックします。

  2. このプールを有効にするかどうかを選択する。 障害者用プールはトラフィックを受けず、 CIS、ヘルスチェックから除外される。 プールを無効にすると、そのプールを使っているロードバランサーは、もしあれば、次のプールにフェイルオーバーします。

  3. 必須フィールドを設定します:

    • 名前: プールの短縮名 (タグ)。 英数字、ハイフン、下線のみを使用できます。
    • 起点: このプールに含める起点のリスト。 CIS このプール自体が正常な状態であれば、このプール宛てのトラフィックを、現在正常なすべての発信元間で分散させます。

    アプリケーションサーバーが、 IBM Cloud ロードバランサーなどのローカルロードバランサーの背後に配置されている場合は、個々のサーバーを追加する代わりに、そのロードバランサーのFQDNまたは仮想IPをオリジンとして追加してください。

  4. 必要に応じてオプションのフィールドを設定します:

    • 正常な起点のしきい値: このプールでトラフィックを処理するために必要とする正常な起点の最小数。 正常なオリジンの数がこの数値を下回った場合、 CIS は当該プールを「正常でない」状態としてマークし、次に利用可能なプールへフェイルオーバーを行います。 (デフォルト: 1)
    • プール・ヘルスチェック対象地域 :ヘルスチェックによる監視が行われる地域。
    • ヘルス・チェック: このプールに含まれている起点を検査するために使用するヘルス・チェック (デフォルト: ヘルスチェックなし )
  5. Save をクリックして、オリジンプールの設定を完了します。

起点プールは最初、**「異常 (Unhealthy)」**という状態になります。 CIS によるヘルスチェックが正常に完了すると、この状態は「 Healthy 」に変わります。 状態の変化を確認するには、ブラウザーを最新表示する必要がある場合があります。

存在するアプリケーション・ファームの数と同数の起点プールを定義します。 これらのファームは同じリージョンにあっても、異なるリージョンにあってもかまいません。

ステップ 3: グローバルロードバランサーの設定

ロードバランサーは、トラフィックを複数のオリジンプールに分散させるのに役立ちます。

  1. CIS コンソールで、 [信頼性]>[グローバルロードバランサー]>[ロードバランサー]の順にクリックし、[ 作成 ]をクリックします。

  2. ロードバランサーを有効にする。

  3. プロキシについては、 CIS 上のセキュリティ機能およびパフォーマンス機能を通じてトラフィックが流れるかどうかを確認してください。 「オフ」にするとこれらのシステムを迂回します。

  4. 以下の情報を設定する:

    • 名前 (オプション) :ロードバランサに関連付ける名前。

    • TTL: このロード・バランサーから返される IP アドレスの DNS エントリーの存続時間 (TTL)。 このオプションは、プロキシーしないロード・バランサーにのみ適用されます。その他の場合は、デフォルトでAutomaticになります。

    • トラフィックステアリング : CIS が各リクエストを処理するデータセンター(プール)を決定するために使用するアルゴ リズムを決定することによって、受信するユーザーリクエストを構成されたオリジン プール全体に分散する方法を制御します。 詳細については、 トラフィック・ステアリングの最適 化を参照してください。

    • セッション・アフィニティー: 常に同じパフォーマンスおよびメトリック・インスタンスを使用して転送します。 このオプションは、 プロキシが有効になっている場合にのみ利用可能です。

    • ジオルート :地域または国コードを、指定された地域におけるプールの一覧(フェイルオーバー優先順位順)にマッピングしたものです。 リージョンが明示的に定義されていない場合は、デフォルトのプールを使用するようにフォールバックされます。

      IBM の地理的地域は、 CIS が使用している地域とは異なる。 地理的地域の詳細については、 Geoステアリングを 参照してください。

  5. [ 作成 ] をクリックして、グローバルロードバランサーの設定を完了します。

ステップ4:接続性の確認

最後に、ブラウザでFQDN URL にアクセスして、アプリケーションへの接続性を確認する。

コンソールでのグローバルロードバランサー、ヘルスチェック、オリジンプールの更新と削除の詳細については、 グローバルロードバランサーの管理を 参照してください。

CLIからグローバルロードバランサーを設定する

CLIからグローバルロードバランサーを作成し設定するには、以下の順序でステップを実行します:

  1. ヘルスチェックを作成します(任意)
  2. 起点プールを作成します。
  3. グローバル・ロード・バランサーを作成します。

ステップ1:CLIからヘルスチェックを作成する(オプション)

ヘルス・チェックは、起点プールに対するオプションの付加機能です。 カスタムヘルスチェックを定義しない場合、システムはデフォルトのヘルスチェックパスとして / を使用します。

CLI からヘルスチェックを作成するには、次のコマンドを実行します

ibmcloud cis glb-monitor-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

ここで、

--json

ヘルスチェックを記述するために使用されるJSONファイルまたはJSON文字列。 必須。

  • JSON データ内の必須フィールドは type です。
    • type: ヘルスチェックに使用するプロトコル。 有効な値は、 HTTPHTTPS、および TCP です。
  • オプション・フィールドは、descriptiontimeoutretriesinterval です。
    • description: ヘルスチェックの説明。
    • timeout: ヘルスチェックを「失敗」と判定するまでのタイムアウト(秒単位)。
    • retries: オリジンが「正常でない」とマークされる前にタイムアウトが発生した場合に、再試行を行う回数。
    • interval: 各ヘルスチェックの間隔。
  • TCP タイプのヘルス・チェックの場合。 追加の必須フィールドは port です。
    • port: ヘルスチェックに使用する TCP ポート。
  • HTTP/HTTPS タイプのヘルス・チェックの場合。 追加のオプション・フィールドは、 portexpected_bodyexpected_codesmethodpathheaderfollow_redirectsallow_insecureです。
    • port: ヘルスチェックに使用する TCP ポート。
    • expected_body: レスポンス本文内で検索する、大文字小文字を区別しない部分文字列。
    • expected_codes: ヘルスチェックで期待される HTTP の応答コードまたはコードの範囲。
    • method: ヘルスチェックに使用する HTTP メソッド。
    • path: ヘルスチェックの対象となるエンドポイントのパス。
    • header: ヘルスチェックで送信する HTTP リクエストヘッダー。
    • follow_redirects: オリジンからリダイレクトが返された場合は、そのリダイレクトに従う。
    • allow_insecure: モニターが HTTPS を使用している場合は、証明書の検証を行わないでください。
    • probe_zone: プローブ実行中に、このモニターを指定されたゾーンをエミュレートするように割り当てます。

サンプル JSON データ:

HTTP/HTTPS の場合:

{
  "description": "Health monitor of web service",
  "type": "https",
  "method": "GET",
  "path": "/health",
  "header": {
     "Host": [
        "example.com"
     ],
     "X-App-ID": [
        "abc123"
     ]
  },
  "timeout": 5,
  "retries": 2,
  "interval": 90,
  "follow_redirects": true,
  "allow_insecure": false,
  "expected_codes": "2xx",
  "expected_body": "alive",
  "probe_zone": "example.com"
}

TCP の場合:

{
  "description": "Health monitor of TCP",
  "type": "tcp",
  "port": 80,
  "timeout": 5,
  "retries": 2,
  "interval": 90
}
-i, --instance

インスタンスの名前または ID。 インスタンス名またはIDを設定しない場合、コマンドはコンテキスト・インスタンス(ibmcloud cis instance-set INSTANCE)を使用する。

--output

出力形式。 現在、サポートされている値は「 json 」のみです。

ステップ2:CLIからのオリジンプールの作成

CLI からオリジンプールを作成するには、次のコマンドを実行します

ibmcloud cis glb-pool-create (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

ここで、

--json
オリジンプールを記述するために使用されるJSONファイルまたはJSON文字列。 必須。
  • JSONデータで必須となるフィールドは、 nameorigins 、および check_regions です:
    • name: プールの略称(タグ)。
    • origins: このプールに含まれる起源の一覧。
    • check_regions: 地理的地域コードの一覧。
  • オプション・フィールドは、descriptionminimum_originsenabledmonitor です。

サンプル JSON データ:

{
   "name": "us-pool",
   "description": "application server pool in US",
   "origins": [
      {
            "name": "us-app-dal01",
            "address": "1.1.1.1",
            "enabled": true,
            "header": {
               "host": ["test.com"]
            }
      },
      {
            "name": "us-app-dal02",
            "address": "2.2.2.2",
            "enabled": true,
            "header": {
               "host": ["example.com"]
            }
      }
   ],
   "minimum_origins": 1,
   "check_regions": [ "WNAM" ],
   "monitor": "f1aba936b94213e5b8dca0c0dbf1f9cc",
   "enabled": true
}
-i, --instance
インスタンスの名前または ID。 インスタンス名またはIDを設定しない場合、コマンドはコンテキスト・インスタンス(ibmcloud cis instance-set INSTANCE)を使用する。
--output
出力形式。 現在、サポートされている値は「 json 」のみです。

ステップ3:CLIからグローバルロードバランサーを作成する

CLI からグローバルロードバランサーを作成するには、次のコマンドを実行します

cis glb-create DNS_DOMAIN_ID (--json @JSON_FILE | JSON_STRING) [-i, --instance INSTANCE] [--output FORMAT]

ここで、

DNS_DOMAIN_ID
DNSドメインのID。 必須。
--json
グローバルロードバランサーを記述するために使用されるJSONファイルまたはJSON文字列。 必須。
  • JSONデータで必須となるフィールドは、 namefallback_pool、および default_pools です:
    • name: ロードバランサーに関連付けるDNSホスト名。
    • fallback_pool CIS、他のすべてのプールが不健康であると検出された場合に使用するプールID。
    • default_pools: フェイルオーバーの優先順位順に並べられたプールIDの一覧。
  • オプションのフィールドは、descriptionttlregion_poolsproxiedenabledsession_affinitysession_affinity_ttlsteering_policy です。
    • description: ロードバランサーの説明。
    • ttl: このロードバランサーが返すIPアドレスに対応するDNSエントリの有効期間(TTL)。
    • region_pools: リージョンおよび国コードと、そのリージョンにおけるプールIDの一覧(フェイルオーバー優先度順)との対応関係。
    • proxied: CIS 上のセキュリティ機能およびパフォーマンス機能を通過するトラフィックの有無を制御します。
    • enabled: このロードバランサーを有効にするかどうか(デフォルトは有効)。
    • session_affinity: セッション中、 CIS が一貫してユーザーのリクエストを同じバックエンドサーバーに向けるようにします。 有効な値は cookienone
    • session_affinity_ttl このロードバランサのセッションアフィニティクッキーが CIS に作成されてから期限切れになるまでの時間。 有効な値は [1800, 604800] の範囲内です。 デフォルト値は82800です。
    • steering_policy : steering_policy の有効な値は、 offgeorandomdynamic_latency です。
      • off : default_pools`` を使用してください。
      • geo : region_pools/pop_pools`` を使用してください。
      • random: プールをランダムに選択してください。
      • dynamic_latency: 往復時間を基に、 default_pools で最も近いプールを選択します(プールのヘルスチェックが必要です)。

サンプル JSON データ:

{
      "name": "www.example.com",
      "fallback_pool": "17b5962d775c646f3f9725cbc7a53df4",
      "default_pools": [
         "17b5962d775c646f3f9725cbc7a53df4",
         "9290f38c5d07c2e2f4df57b1f61d4196"
      ],
      "description": "Example global load balancer.",
      "ttl": 60,
      "region_pools": {
         "WNAM": [
               "de90f38ced07c2e2f4df50b1f61d4194",
               "9290f38c5d07c2e2f4df57b1f61d4196"
         ],
         "ENAM": [
               "00920f38ce07c2e2f4df50b1f61d4194"
         ]
      }
}
-i, --instance
インスタンスの名前または ID。 インスタンス名またはIDを設定しない場合、コマンドはコンテキスト・インスタンス(ibmcloud cis instance-set INSTANCE)を使用する。
--output
出力形式。 現在、サポートされている値は「 json 」のみです。

グローバルロードバランサー、ヘルスチェック、オリジンプールの作成、更新、削除の詳細については、 グローバルロードバランサーのCLIコマンドを 参照してください。

APIでグローバルロードバランサーを設定する

APIを使ってグローバルロードバランサーを作成し、設定するには、以下の順番に従ってください:

  1. ヘルスチェックを作成します(任意)
  2. 起点プールを作成します。
  3. グローバル・ロード・バランサーを作成します。

ステップ1:APIを使用してヘルスチェックを作成する(オプション)

ヘルス・チェックは、起点プールに対するオプションの付加機能です。 カスタムヘルスチェックを定義しない場合、システムはデフォルトのヘルスチェックパスとして / を使用します。

以下の手順に従って、APIを使用してヘルスチェックを作成してください:

  1. 正しい変数を使用して API 環境をセットアップします。
  2. API コマンドで使用する変数に、以下の値を格納してください:

CRN: サービス・インスタンスの URL エンコードされた完全な CRN。

  1. すべての変数の初期化が完了したら、ヘルスチェックを作成します:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/monitors
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "type": "http",
        "interval": 60,
        "retries": 2,
        "timeout": 5,
        "expected_body": "",
        "expected_codes": "200",
        "follow_redirects": true,
        "allow_insecure": false,
        "path": "/status",
        "header": {
     	   "Host": ["www.example.com"],
     	   "X-App-ID": ["abc123"]
        },
        "method": "GET"
    }'
    

ステップ2:APIを使ったオリジンプールの作成

以下の手順に従って、APIを使用してオリジン・プールを作成してください:

  1. 正しい変数を使用して API 環境をセットアップします。
  2. API コマンドで使用する変数に、以下の値を格納してください:

CRN: サービス・インスタンスの URL エンコードされた完全な CRN。

  1. すべての変数の初期化が完了したら、オリジンプールを作成します:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/load_balancers/pools
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "enabled": true,
        "minimum_origins": 1,
        "monitor": "92859a0f6b4d3e55b953e0e29bb96338",
        "name": "eu-pool",
        "notification_email": "",
        "check_regions": [
            "EEU"
        ],
        "origins": [
            {
                "name": "eu-origin1",
                "address": "150.0.0.1",
                "enabled": true,
                "weight": 1
            },
            {
                "name": "eu-origin2",
                "address": "150.0.0.2",
                "enabled": true,
                "weight": 1
            }
        ]
    }'
    

ステップ3:APIを使ったグローバルロードバランサーの作成

以下の手順に従って、APIを使ってグローバルロードバランサーを作成してください:

  1. 正しい変数を使用して API 環境をセットアップします。
  2. API コマンドで使用する以下の値を変数に格納します。

CRN: サービス・インスタンスの URL エンコードされた完全な CRN。

ZONE_ID: ドメイン ID。

  1. すべての変数が開始されたら、グローバルロードバランサーを作成する:

    curl -X POST https://api.cis.cloud.ibm.com/v1/:crn/zones/:zone_id/load_balancers
      -H 'content-type: application/json'
      -H 'x-auth-user-token: Bearer xxxxxx'
      -d '{
        "description": "",
        "proxied": true,
        "enabled": true,
        "name": "www.example.com",
        "session_affinity": "none",
        "session_affinity_ttl": 5000,
        "steering_policy": "geo",
        "fallback_pool": "4112ba6c2974ec43886f90736968e838",
        "default_pools": [
         "6563ebae141638f92ebbdc4a821bef8c",
         "4112ba6c2974ec43886f90736968e838"
        ],
        "pop_pools": {},
        "region_pools": {
            "EEU": [
                "4112ba6c2974ec43886f90736968e838"
            ],
            "ENAM": [
                "6563ebae141638f92ebbdc4a821bef8c"
            ],
            "WEU": [
                "4112ba6c2974ec43886f90736968e838"
            ],
            "WNAM": [
                "6563ebae141638f92ebbdc4a821bef8c"
            ]
        }
    }'
    

グローバルロードバランサ、ヘルスチェック、オリジンプールの作成、更新、削除の詳細については、 API Global load balancerを 参照してください。

Terraformでグローバルロードバランサーを設定する

始める前に、 Terraform for CIS のセットアップ 手順を完了していることを確認してください。

Terraformでグローバルロードバランサーを作成・設定するには、以下の手順を順番に実行してください:

  1. ヘルス・チェックの作成
  2. オリジンプールの作成
  3. グローバル・ロード・バランサーを作成する

ステップ1:Terraformでヘルスチェックを作成する(オプション)

ヘルス・チェックは、起点プールに対するオプションの付加機能です。 カスタムヘルスチェックを定義しない場合、システムはデフォルトのヘルスチェックパスとして / を使用します。

Terraformでヘルスチェックを作成するには、 ibm_cis_healthcheck

resource "ibm_cis_healthcheck" "health_check" {
  cis_id         = ibm_cis.instance.id
  description    = "Health check for web servers"
  expected_body  = "alive"
  expected_codes = "200"
  method         = "GET"
  timeout        = 5
  path           = "/health"
  interval       = 60
  retries        = 2
  type           = "http"
  port           = 80
  allow_insecure = false
  follow_redirects = true
}

ステップ2:Terraformでオリジンプールを作成する

Terraformでオリジンプールを作成するには、 ibm_cis_origin_pool リソースを使用します:

resource "ibm_cis_origin_pool" "origin_pool" {
  cis_id = ibm_cis.instance.id
  name   = "us-pool"
  origins {
    name    = "us-app-dal01"
    address = "1.1.1.1"
    enabled = true
  }
  origins {
    name    = "us-app-dal02"
    address = "2.2.2.2"
    enabled = true
  }
  description        = "Application server pool in US"
  enabled            = true
  minimum_origins    = 1
  monitor            = ibm_cis_healthcheck.health_check.id
  notification_email = ""
  check_regions = [
    "WNAM"
  ]
}

ステップ3:Terraformでグローバルロードバランサーを作る

Terraformでグローバルロードバランサーを作成するには、 ibm_cis_global_load_balancer リソースを使います:

resource "ibm_cis_global_load_balancer" "global_load_balancer" {
  cis_id           = ibm_cis.instance.id
  domain_id        = ibm_cis_domain.domain.id
  name             = "www.example.com"
  fallback_pool_id = ibm_cis_origin_pool.origin_pool.id
  default_pool_ids = [
    ibm_cis_origin_pool.origin_pool.id
  ]
  description      = "Global load balancer for example.com"
  proxied          = true
  enabled          = true
  session_affinity = "cookie"
  steering_policy  = "geo"
  pop_pools {
    pop = "LAX"
    pool_ids = [
      ibm_cis_origin_pool.origin_pool.id
    ]
  }
  region_pools {
    region = "WNAM"
    pool_ids = [
      ibm_cis_origin_pool.origin_pool.id
    ]
  }
}

グローバルロードバランサー、ヘルスチェック、オリジンプール用のTerraformリソースの詳細については、 IBM Cloud Provider Terraformレジストリの以下のリソースを参照してください: