過去問ドリル

LinuCレベル4 システムアーキテクト 性能・拡張性の設計 問27

性能・拡張性の設計/性能の拡張

外部決済APIへの同時接続数が増え、外部API側のレート制限に頻繁に抵触するようになった。内部のアプリサーバーは水平スケールしており、台数が増えるほど同時接続数も比例して増える。この問題を設計で解決する方針として最も適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「性能・拡張性の設計」に対応。実際の試験問題ではありません)

正解:B

解説

アプリサーバーの台数増加と外部APIへの同時接続数が比例する構成では、スケールアウトを続けるほど問題が悪化します。外部APIへの呼び出しをメッセージキュー経由に変えてワーカー台数(共有資源へのアクセス数)を固定することで、アプリサーバーの台数にかかわらず外部APIへの同時接続数をレート制限以内に抑えられます。スケールアップも外部APIへの同時接続数の問題の根本解決にはなりません。ベンダーへの申請は設計上の解決ではなく、レート制限が再び引き上げられない保証もありません。

選択肢ごとの解説

  • A誤り。スケールアウトすると外部APIへの同時接続数がさらに増え、問題が悪化します。
  • B正しい。メッセージキューを介してワーカー数を固定することで、アプリサーバーの台数にかかわらず外部APIへの同時接続数を一定に抑えられます。これは共有資源(外部API)へのアクセスを制限する設計です。
  • C誤り。スケールアップは1台の処理能力を上げますが、アプリサーバー台数が同じなら外部APIへの同時接続数は変わらず、問題の根本解決にはなりません。
  • D誤り。ベンダーへの申請は設計上の解決策ではなく、レート制限が恒久的に引き上げられる保証もありません。
LinuCレベル4 システムアーキテクトの問題を演習モードで解く