コンテンツにスキップ

概要

このユースケースでは、Terraform を使って F5 Distributed Cloud 上の保護された Web アプリケーション配信経路 を、コントロールを 1 つずつ積み上げて構築します。イテレーション 1 では基盤を立ち上げます。オリジンプールを備えた HTTP ロードバランサーを構成し、その状態を Azure Blob Storage に保持し、GitHub Actions を通じてプルリクエスト時のプラン / マージ時の適用を実行します。以降のイテレーションでは、Web アプリケーションファイアウォールと API 保護を重ねていきます。

管理する対象(イテレーション 1)

Section titled “管理する対象(イテレーション 1)”
  • パブリックな httpbin サービスへ転送する xcsh_origin_pool。
  • F5 XC のパブリック VIP でアドバタイズし、そのプールへルーティングする xcsh_http_loadbalancer。
  • Azure 上のリモート Terraform 状態。これにより、オペレーターのマシンと CI の間で実行結果を共有できます。
レイヤー選択理由
プロバイダーf5-sales-demo/xcsh(Terraform レジストリ)F5 XC の OpenAPI から生成されており、xcsh_http_loadbalancer、xcsh_origin_pool、xcsh_app_firewall(WAF)、xcsh_api_definition(API 保護)をすでに提供しています。API トークン(Authorization: APIToken <token>)で認証します。
状態バックエンドazurerm(Azure Blob Storage)、アクセスキー認証永続的で共有される状態。DNS ユースケース向けにブートストラップされたアカウントを、別個の状態キーで再利用します。
自動化GitHub Actionsプルリクエストごとにプランを実行し、main へのマージで適用します。バックエンドの調整と入力はリポジトリの 変数 から、認証情報は シークレット から取得します。
  • イテレーション 1(本書): HTTP ロードバランサー + オリジンプール → httpbin。
  • 次: Web アプリケーションファイアウォール(xcsh_app_firewall)を接続する。
  • その次: API 保護(xcsh_api_definition、API ディスカバリー)を追加する。
  • 後で: ステージングからプリプロダクション環境へ昇格する。

デモ では、Terraform を使ってロードバランサーをエンドツーエンドでデプロイし検証する手順を解説します。