外部トラフィックに対してリバースプロキシ・ロードバランサーが持つようなネットワークのルーティング・セキュリティと可用性の向上に加え、以下のような機能横断的な要件を扱う役割
- 認証
- 認可
- レートリミット
- リトライ
- サーキットブレーカー etc.
commited date: 2024-12-29
外部トラフィックに対してリバースプロキシ・ロードバランサーが持つようなネットワークのルーティング・セキュリティと可用性の向上に加え、以下のような機能横断的な要件を扱う役割
ブルーグリーン戦略
#Continuous Delivery リリース時に旧環境と新環境を同時に稼働させ、リバースプロキシ/ロードバランサー/APIゲートウェイ相当のポイントで旧環境から新環境へ完全に切り替えるリリース手法 旧環境をブルー、新環境をグリーンとする
Kubernetes Gateway API
#API Architecture #Cloud Native #Network OSI参照モデルのL4/L7を扱うKubernetes公式のAPIゲートウェイ GatewayClass Gateway HTTPRoute の3つを定義し実装する GatewayClassはGKEのようなクラウドサービスが用意するケースがあり、外部or内部を選択できる Introduction - Kubernetes Gateway API
マスタリングAPIアーキテクチャ
Ambassador Edge Stack
レートリミット
#Security #API Architecture 以下のような目的でAPIの使用回数を制限する、制限を超過した時はHTTPの場合一般に429エラーを返す処理 STRIDEにあるようなDenial of Service(サービス拒否)からアプリケーションを保護する カスケード障害の可能性を制限する リソースの使用量を測定し従量課金に利用できる レートリミットの実装アルゴリズムには以下のようなものがある 固定ウインドウ(Fixed window) 固定期間内の制限 スライディングウインドウ(Sliding window) 直近の期間内の制限 トークンバケット方式(Token bucket) 総リクエスト数(トークンのバケツ)を定義しリクエストごとにトークンが利用される。バケツは定期的に充填される リーキーバケット方式(Leaky bucket) リクエストが処理される速度は固定で、バケツから溢れ出るリクエストを漏れ(リーキー)として扱う APIゲートウェイを利用している場合、ゲートウェイに配置するとよい
Envoy