【面接対策】スロットリング / 流量制御とは?中学生でもわかる例え話と理想的な回答例

システム設計パターン
博士

【スロットリング / 流量制御(読み方:スロットリング / りゅうりょうせいぎょ)】
お店のレジが混雑して、お客さんが入り口で待たされること、ありますよね? スロットリングは、これと同じように、システムへのアクセスが集中しすぎないように、交通整理をする技術です。サーバーがパンクしないように、入り口でアクセスを少しずつ制限するイメージです。
💡 面接でのベスト回答
想定質問:「スロットリング / 流量制御について教えてください」

面接官:スロットリング / 流量制御について説明してください。

私:スロットリングとは、システムのリソースを保護するために、一定期間内に処理できるリクエスト数を制限する技術です。また流量制御は、ネットワークにおけるデータ転送量を調整し、輻輳を防ぐための仕組みです。これらは密接に関連しており、システム全体の安定性とパフォーマンスを維持するために重要な役割を果たします。

以前のプロジェクトで、APIサーバーがDDoS攻撃(分散型サービス拒否攻撃)に近い状態になったことがありました。大量のリクエストが短時間に集中し、サーバーの応答速度が著しく低下し、一部のサービスが停止寸前まで追い込まれました。

そこで、スロットリングを導入し、特定のIPアドレスからのリクエスト数を制限しました。具体的には、1分間に許可するリクエスト数を設定し、それを超えるリクエストは一時的に拒否するようにしました。

結果として、DDoS攻撃のような大量のリクエストを効果的に抑制し、サーバーの負荷を大幅に軽減することができました。また、正常なユーザーからのリクエストは引き続き処理できるため、サービスへの影響を最小限に抑えることができました。

現役エンジニアによる深掘り解説

スロットリングのメリット

システム負荷の軽減: 大量のトラフィックによるサーバーダウンを防ぎます。

リソースの保護: 特定のユーザーやAPIによるリソースの過剰な消費を制限します。

サービスの安定性向上: 負荷が高い状況でも、一定の品質を維持します。

セキュリティの強化: DDoS攻撃などの悪意のあるアクセスを防御します。

スロットリングのデメリット

正常なユーザーへの影響: スロットリング設定によっては、正常なユーザーのリクエストも制限される可能性があります。

設定の複雑さ: 適切なスロットリング設定を見つけるには、システムの特性やトラフィックパターンを理解する必要があります。

実装のオーバーヘッド: スロットリングの実装には、追加のコードやインフラストラクチャが必要になる場合があります。

監視の必要性: スロットリングが正しく機能しているか、継続的に監視する必要があります。

⚠️ 面接突破のワンポイント

  • 「スロットリングを実装する際に考慮すべき要素(例えば、リクエスト数、期間、ユーザーの識別方法、拒否時の対応など)について説明できますか?」と聞かれる可能性があります。
  • 「スロットリングと似た概念であるレートリミットとの違いを説明できますか?」と聞かれる可能性があります。
タイトルとURLをコピーしました