API7 Gateway如何通过高可用性策略应对异常
April 8, 2024
高可用性はAPIゲートウェイのデプロイにおける重要な設計目標です。ゲートウェイはアプリケーションとサービス間のリクエストルーティングを担いますが、エンドツーエンドの可用性にはゲートウェイ構成、ネットワーク、アップストリームサービス、運用も含めて考える必要があります。
本記事では、Apache APISIXを基盤とするエンタープライズAPI管理プラットフォームAPI7 Enterpriseと、コントロールプレーンやネットワークの異常による影響を軽減するためのデータプレーンの仕組みを説明します。実際の可用性は、お客様が管理するデプロイとそのインフラストラクチャに左右されます。
エンタープライズレベルの高可用性アーキテクチャ
API7のエンタープライズ高可用性ソリューションで説明したとおり、ステートレスなコンポーネントは障害回復とリソーススケジューリングを支援できます。これらの設計特性は耐障害性を高めますが、本番環境で実現される可用性は、お客様のトポロジー、インフラストラクチャの依存関係、運用に左右されます。

API7 Enterpriseの高可用性戦略
Apache APISIXを基盤とするAPI7 Gatewayは、異常時にも利用可能な設定を保持し、中断リスクを軽減することを目的とした設定回復の仕組みを備えています。これらは次の3段階で動作します。
-
起動時の設定回復;
-
完全な設定同期とローカルストレージ;
-
動的な設定変更と永続化。
これらは、DNS、ネットワーク、コントロールプレーンなどの重大な不確実性によりデータプレーンがコントロールプレーンに接続できない極端な状況に対処するために設計されています。
起動時の設定回復
API7 Gatewayの起動時にコントロールプレーンへ接続できない場合、ゲートウェイはローカルストレージから最新の設定を取得しようとします。有効なローカルスナップショットがあれば、以前の設定でルーティングを再開しやすくなりますが、回復の成否はそのスナップショットと周辺インフラストラクチャに左右されます。
さらに極端なケースでは、インスタンスのローカル設定ファイルを変更することができ、これがAPI7 Gatewayの起動設定として使用されます。
完全な設定同期とローカルストレージ
API7 Gatewayは設定センターへの接続後に設定情報を同期し、ローカルファイルシステムへJSON形式で保存します。その後接続が中断した場合、稼働中のゲートウェイはメモリ上またはローカルの設定を利用できますが、その動作は設定の有効性と他のデプロイ依存関係に左右されます。
動的な設定変更と永続化
コントロールプレーンから設定更新を受け取ると、API7 Gatewayは変更を適用し、ローカル設定ファイルも更新します。この永続化によって再起動後の回復時間を短縮できますが、あらゆるサービス中断をなくすものではありません。
極端な状況への対応設計
API7 Gatewayは、ネットワーク分離、コントロールプレーン障害、ローカルリソース制約などに対応する設定の永続化と回復ロジックを備えています。これらの仕組みはゲートウェイの耐障害性を高めますが、エンドツーエンドの事業継続性は、冗長なデータプレーン容量、負荷分散、アップストリームサービス、お客様の運用にも左右されます。
結論
設定の回復、同期、ローカル保存、永続化により、コントロールプレーンの停止時やインスタンス再起動時にAPI7 Gatewayが最後に利用可能だった設定を使いやすくなります。結果はお客様が管理するアーキテクチャと運用に左右され、API7 Enterpriseの稼働率を約束するものではありません。
API7 Enterprise は、お客様が管理するデプロイ向けに高可用性の仕組みを提供します。これらの仕組みによって障害の影響を軽減できますが、実際のサービス可用性は、お客様のデプロイ構成、インフラストラクチャの依存関係、運用に左右されます。



