API Gatewayに必要なリソースを決定する方法

January 25, 2024

Technology

背景

APIゲートウェイは、企業の外部サービスに対する統一的なエントリーポイントとして機能し、その重要性は言うまでもありません。APIゲートウェイ自体の可用性に問題が発生すると、企業が提供するすべてのサービスに直接影響を及ぼします。これは許容できない大惨事です。したがって、APIゲートウェイの適切なデプロイメント規模を決定することは、生産シナリオにおいて非常に重要です。

必要なリソースを決定することは、APIゲートウェイのパフォーマンス、可用性、安定性を確保し、リソースの利用効率とコスト効果を最適化するために不可欠です。リソースが不足している場合、リクエストのタイムアウト、輻輳、パケットロスなどの問題が発生し、ユーザーエクスペリエンスとサービス品質に影響を与える可能性があります。逆に、リソースが過剰であると、リソースの浪費、運用の複雑さの増加、コストとリスクの上昇につながります。

APIゲートウェイ図

したがって、APIゲートウェイに必要なリソースを決定することは重要なステップであり、ビジネス要件、トラフィック予測、パフォーマンステストに基づいて慎重に計画し、調整する必要があります。本記事では、さまざまな業界のベストプラクティスを参考に、以下の3つのステップでプロセスを説明します。

  • ゲートウェイの選択: シングルコアQPS
  • ビジネスタイプ: 金融または非金融サービス
  • 高可用性要件

ゲートウェイの選択

APIゲートウェイの基本コンポーネントのボトルネックは通常、CPUにあります。ネットワーク、ディスク、メモリではありません。APIゲートウェイのシングルコアCPU処理能力は、その優劣を判断する重要な指標です。同じAPIリクエストトラフィックに対してリソース消費が少ないほど、必要なマシン数が少なくなり、運用管理が簡素化され、サービスの可用性が向上します。

Apache APISIXは、オープンソースのAPIゲートウェイであり、監視、レート制限などの一般的な企業向けプラグインが有効な場合、シングルコアCPUで少なくとも10,000 QPSをサポートすると保守的に見積もっています。企業は、有効なプラグイン、ハードウェア環境、ネットワーク条件、APIリクエスト特性の違いを考慮して、具体的なテストを実施し、結果を収集することができます。

APISIX QPS 15000~18000

ビジネスタイプ

ほとんどの非金融企業では、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の公開を確保できます。

Tags: