API Gatewayに必要なリソースを決定する方法
January 25, 2024
背景
APIゲートウェイは、企業の外部サービスに対する統一的なエントリーポイントとして機能し、その重要性は言うまでもありません。APIゲートウェイ自体の可用性に問題が発生すると、企業が提供するすべてのサービスに直接影響を及ぼします。これは許容できない大惨事です。したがって、APIゲートウェイの適切なデプロイメント規模を決定することは、生産シナリオにおいて非常に重要です。
必要なリソースを決定することは、APIゲートウェイのパフォーマンス、可用性、安定性を確保し、リソースの利用効率とコスト効果を最適化するために不可欠です。リソースが不足している場合、リクエストのタイムアウト、輻輳、パケットロスなどの問題が発生し、ユーザーエクスペリエンスとサービス品質に影響を与える可能性があります。逆に、リソースが過剰であると、リソースの浪費、運用の複雑さの増加、コストとリスクの上昇につながります。
したがって、APIゲートウェイに必要なリソースを決定することは重要なステップであり、ビジネス要件、トラフィック予測、パフォーマンステストに基づいて慎重に計画し、調整する必要があります。本記事では、さまざまな業界のベストプラクティスを参考に、以下の3つのステップでプロセスを説明します。
- ゲートウェイの選択: シングルコアQPS
- ビジネスタイプ: 金融または非金融サービス
- 高可用性要件
ゲートウェイの選択
APIゲートウェイの基本コンポーネントのボトルネックは通常、CPUにあります。ネットワーク、ディスク、メモリではありません。APIゲートウェイのシングルコアCPU処理能力は、その優劣を判断する重要な指標です。同じAPIリクエストトラフィックに対してリソース消費が少ないほど、必要なマシン数が少なくなり、運用管理が簡素化され、サービスの可用性が向上します。
Apache APISIXは、オープンソースのAPIゲートウェイであり、監視、レート制限などの一般的な企業向けプラグインが有効な場合、シングルコアCPUで少なくとも10,000 QPSをサポートすると保守的に見積もっています。企業は、有効なプラグイン、ハードウェア環境、ネットワーク条件、APIリクエスト特性の違いを考慮して、具体的なテストを実施し、結果を収集することができます。
ビジネスタイプ
ほとんどの非金融企業では、APIゲートウェイのCPUリソース使用率を20〜30%の範囲に抑えることが理想的です。これにより、サービスコールが3〜5倍に増加しても効果的に対処できます。ニュース、エンターテイメント、インターネットなどの業界では、この負荷を使用できます。
しかし、銀行、金融、証券などの業界では、APIの価値が高いため、日常のCPU負荷を5〜10%に維持することが理想的です。これにより、APIゲートウェイは通常の10〜20倍の急激なトラフィック増加に対処できます。
高可用性の要件
可用性に対する要件が高い場合、APIゲートウェイのプロキシインスタンスは少なくとも2ノード必要です。
実践例
金融サービス業界のユーザー
企業例:
- 日次APIコールのQPSは100,000
- APIゲートウェイの日次負荷は10%
- ゲートウェイ選択: Apache APISIX (シングルコアQPS: 10,000)
上記の情報に基づいて、必要なCPU数は100,000 / 10,000 / 10% = 100です。4コアのマシンを使用する場合、25台のマシンが必要です。8コアのマシンを使用する場合、13台のマシンが必要です。
非金融サービス業界のユーザー
企業例:
- 日次APIコールのQPSは100,000
- APIゲートウェイの日次負荷は25%
- ゲートウェイ選択: Apache APISIX (シングルコアQPS: 10,000)
上記の情報に基づいて、必要なCPU数は100,000 / 10,000 / 25% = 40です。4コアのマシンを使用する場合、10台のマシンが必要です。8コアのマシンを使用する場合、5台のマシンが必要です。
結論
実際の使用では、トラフィックは複雑で変動しやすいため、平均値を柔軟に調整する必要があります。APISIXのような優れたAPIゲートウェイを採用し、ハードウェアリソースを賢明に設定することで、企業はコストとサービスの要件をより良くバランスさせ、エンドユーザーに対して安全で安定した効率的な企業APIの公開を確保できます。