フェーズ 3 — フェイルオーバー
フェーズ 3 は、フェーズ 1 のゾーンの上にヘルスチェック付きフェイルオーバーを追加します。F5 XC の DNS ロードバランサーは、プールのヘルス状態に基づいて名前に対して異なる応答を返すため、トラフィックは自動的に正常なプールに移動します。
DNS ロードバランサースタックは、3 つの F5 XC リソースとゾーン内の 1 つのレコードで構成されます。
| リソース | 役割 |
|---|---|
xcsh_dns_lb_health_check | 各メンバーをプローブし(HTTP、HTTPS、TCP、ICMP、または UDP)、プールのヘルス状態を判定します |
xcsh_dns_lb_pool | ロードバランシングモード(ROUND_ROBIN、PRIORITY など)とヘルスチェックへの参照を持つメンバーのセット |
xcsh_dns_load_balancer | リクエストごとにプールを選択するルール(フォールバックプール付き) |
lb_record(xcsh_dns_zone 内) | ゾーン内の名前を DNS ロードバランサーにバインドします |
dns-lb モジュールはこれらを表現し、ゾーンモジュールはロードバランサーを指す lb_record エントリを持つように拡張されます — これにより、単一の terraform apply でフェイルオーバーパス全体が構築されます。
モジュールがリリースされると、フェイルオーバーデモでは以下を実施します。
- ヘルスチェックを使用して、DNS ロードバランサーの背後に 2 つのプール(プライマリとセカンダリ)をデプロイします。
- ロードバランシングされた名前を解決し、プライマリプールの応答が返されることを確認します。
- プライマリを非正常な状態にし、解決がセカンダリにフェイルオーバーすることを確認します — レディネスゲートは応答が変わるまで
digをポーリングします。 - プライマリを復元し、フェイルバックを確認します。
それまでは、フェーズ 4 — ティアダウンに進んで、フェーズ 1 のゾーンを削除してください。