こんにちわ、サイオステクノロジーの原です。
今回はNGINX PlusのAPIゲートウェイ機能に焦点を当てたいと思います。
APIゲートウェイとは
Web APIを用いたクラウドインテグレーションを行なう為に必要となるアーキテクチャです。
企業ネットワーク内にデプロイされているアプリケーションとパブリッククラウドサービスとの間
にゲートウェイとして機能し、全ての通信はこのAPIゲートウェイを介して行ないます。
例えば、通常はクライアントからバックエンドの各マイクロサービスのAPIを数回に渡って
呼び出すことが必要であり、クライアント側で各マイクロサービスのAPIを管理する必要が
ありました。
このAPIゲートウェイを導入することにより、クライアントはAPIゲートウェイに対して1回だけ
APIを呼び出すだけで、後はAPIゲートウェイが各マイクロサービスのAPIの呼び出しを肩代わり
してくれます。
APIゲートウェイの使用例
下記の表はAPIゲートウェイとしてのNGINX Plusが外部ソースからのAPIリクエストを管理し、
内部サービスにルーティングするための要件を満たす方法を示しています。
APIゲートウェイ要件 | NGINX Plusソリューション | |
---|---|---|
コアプロトコル | REST(HTTPS)、gRPC | HTTP、HTTPS、HTTP / 2、gRPC |
その他のプロトコル | TCP-borneメッセージキュー | WebSocket、TCP、UDP |
リクエストルーティング | リクエストは、サービス(ホストヘッダー)、APIメソッド(HTTP URL)、およびパラメーターに基づいてルーティングされます | ホストヘッダー、URL、およびその他の要求ヘッダーに基づいた非常に柔軟なリクエストルーティング |
APIライフサイクルの 管理 | 従来のAPIリクエストの書き換え、廃止予定のAPIへの呼び出しの拒否 | 要求に直接ルーティングまたは応答するための包括的な要求書き換えと豊富な意思決定エンジン |
脆弱なアプリケーションの保護 | APIとメソッドによるレート制限 | 送信元アドレス、要求パラメータを含む複数の基準によるレート制限。バックエンドサービスへの接続制限 |
オフロード認証 | 着信要求の認証トークンの検査 | JWT、APIキー、外部認証サービス、OpenID Connectなどの複数の認証方法のサポート |
変化するアプリケーショントポロジの管理 | 構成変更を受け入れ、青緑のワークフローをサポートするためのさまざまなAPIの実装 | エンドポイントを特定するためのAPIとサービスディスカバリーの統合 ブルーグリーンデプロイメントやその他のユースケース用にAPIを編成できます |
NGINX PlusではWebトラフィックを容易に管理出来、プロトコル(HTTP/2, HTTP, FastCGI, uwsgi)を変換し、一貫した設定とモニタリングGUIの提供が可能です。
NGINX PlusのAPIゲートウェイ機能
NGINXコミュニティ版はもとはHTTP(Web)トラフィックのゲートウェイとして開発されており、設定されているプリミティブはHTTPリクエストの観点から表現されています。
NGINX Plusではより複雑なAPIをマップし、多くの一般的なAPIゲートウェイタスクを処理します。
NGINX PlusによるAPIゲートウェイの各処理方法の詳細については以下のリンクを参照下さい。
- APIリクエストの書き換え
- エラーに正しく応答する
- アクセス制御のためのAPIキーの管理
- ユーザー認証のためのJWTトークンの検査
- レート制限
- 特定のリクエスト方法の実施
- きめ細かなアクセス制御の適用
- 要求サイズの制御
- 要求団体の検証
- gRPCトラフィックのルーティング、認証、検査、および保護
【参考URL】
https://www.nginx.com/blog/consolidating-your-api-gateway-and-load-balancer-with-nginx/