ロードバランサーとAPIゲートウェイって何が違うの?
ロードバランサーは「同じサービスの複数のサーバーにリクエストを分散する」のが主な仕事。APIゲートウェイは「URLのパターンによって振り先を変える(/users→ユーザーサービス、/orders→注文サービス)」や「認証トークンのチェック」など、より賢い処理をするんだよ。
認証ってAPIゲートウェイでやるの?各サービスでやるんじゃないの?
各サービスで認証を実装すると、全サービスに同じコードを書く必要がある。APIゲートウェイで一元的に認証すれば、内部サービスは「ゲートウェイを通ってきたリクエストは認証済みだ」と信頼できる。認証ロジックの変更も一か所で済むのが便利なんだ。
レート制限って何のためにあるの?
「1秒間に1000回以上リクエストしてきたら遮断する」みたいな設定で、APIの過負荷やDDoS攻撃から守るためだよ。1ユーザーが大量のリクエストを送って他のユーザーの体験が悪くなるのを防ぐ効果もある。
APIゲートウェイがSPOF(単一障害点)にならないの?ゲートウェイが落ちたら全部のAPIが使えなくなりそう。
まさにAPIゲートウェイ導入時の重要な検討事項で、ゲートウェイ自体を複数インスタンスで冗長化するのが必須なんだ。Amazon API GatewayやAWS ALBならAWSが冗長性を管理してくれる。自前でKongを運営する場合はKong自体のクラスター構成を組む必要がある。ゲートウェイが「賢くなるほど複雑になり、複雑なほど壊れやすくなる」というトレードオフがあるから、どの機能をゲートウェイに持たせるかの設計が重要なんだよ。