Kubernetes クラスターでは、外部トラフィックをバックエンドサービスにルーティングするためにイングレスゲートウェイが必要ですが、ゲートウェイの選択を誤ると、パフォーマンスのボトルネック、運用上の負担、またはセキュリティギャップにつながる可能性があります。Container Service for Kubernetes (ACK) のマネージドクラスター、ACK Serverless クラスター、および Container Compute Service (ACS) クラスターでは、NGINX Ingress ゲートウェイまたは Microservices Engine (MSE) Ingress ゲートウェイのいずれかを使用できます。この比較では、アーキテクチャ、パフォーマンス、ルーティング、セキュリティ、可観測性などの側面を網羅し、お客様が適切なゲートウェイを選択できるよう支援します。
クイック意思決定ガイド
NGINX Ingress を選択する場合:
トラフィック量が少なく、セキュリティ、スケーラビリティ、安定性に対する要件が低い場合。
高度にカスタマイズ可能な自己管理型のゲートウェイが必要な場合。
MSE Ingress を選択する場合:
トラフィック量が多く、強力なセキュリティ、スケーラビリティ、安定性の保証が必要な場合。
ゲートウェイのメンテナンスオーバーヘッドなしで、フルマネージドの運用を希望する場合。
複数のサービス検出方法 (Kubernetes、Nacos、Eureka、DNS、固定 IP アドレス) が必要な場合。
統合された Web Application Firewall (WAF) 保護と高度な認証 (JWT、OIDC、IDaaS、カスタム認証) が必要な場合。
アクセスログ、分散トレーシング、メトリック、アラートを備えたエンドツーエンドの可観測性が必要な場合。
アーキテクチャ
| 側面 | NGINX Ingress | MSE Ingress |
|---|---|---|
| エンジン | NGINX と Lua プラグイン | Istiod + Envoy |
| テナンシー | 自己管理コンポーネント | ユーザーごとの専用インスタンス |
| リソース管理 | 手動でのレプリカ数とリソース制限の設定 | フルマネージド |
| トラフィック転送 | -- | リクエスト転送のために Pod の IP アドレスに直接接続 |
パフォーマンス
| メトリック | NGINX Ingress | MSE Ingress |
|---|---|---|
| 最適化 | 手動でのチューニングが必要 | OS レベルでの最適化と内部改善 |
| HTTPS アクセラレーション | 利用不可 | ハードウェアアクセラレーションにより HTTPS パフォーマンスが約 80% 向上 |
| オープンソース NGINX とのスループット比較 | ベースライン | OS と内部の最適化により約 40% 向上 |
| CPU 使用率 30%~40% での TPS | ベースライン | オープンソースの NGINX Ingress より約 90% 高い |
| プラグインの影響 | Lua スクリプトを多用するとパフォーマンスが大幅に低下 | -- |
ルーティングと負荷分散
| 機能 | NGINX Ingress | MSE Ingress |
|---|---|---|
| コンテンツベースのルーティング | はい | はい |
| HTTP ヘッダーの書き換え | はい | はい |
| リダイレクトと URL の書き換え | はい | はい |
| スロットリング | はい | はい |
| オリジン間リソース共有 (CORS) | -- | はい |
| タイムアウトとリトライ | -- | はい |
| 負荷分散アルゴリズム | -- | ラウンドロビン、ランダム、最小リクエスト、一貫性ハッシュ法 |
| トラフィックのウォームアップ (プリフェッチ) | いいえ | はい。新しいバックエンド Pod へのトラフィックは、設定可能なタイムウィンドウにわたって徐々に増加します。 |
設定変更
| 動作 | NGINX Ingress | MSE Ingress |
|---|---|---|
| 設定変更 | Lua プラグインによるローリングアップデート (証明書を除く) | ローリングアップデートをサポート |
| 証明書の更新 | リロードが必要で、接続保持が中断される | ローリングアップデートをサポート |
| プラグインの更新 | リロードが必要 | WebAssembly プラグインのローリングアップデート |
| 更新メカニズム | リロードベース | ほぼリアルタイムの設定反映のための List-Watch |
サービス検出とガバナンス
| 機能 | NGINX Ingress | MSE Ingress |
|---|---|---|
| サービス検出 | Kubernetes のみ | Kubernetes、Nacos、Eureka、DNS、固定 IP アドレス |
| カナリアリリース | はい | はい |
| タグベースのルーティング | いいえ | はい |
| パーセンテージによるトラフィック分散 | いいえ | はい (カナリアリリース、A/B テスト、ブルーグリーンデプロイメント) |
| スロットリング | はい | はい |
| サーキットブレーカーとサービス低下 | いいえ | はい、Application High Availability Service (AHAS) と統合 |
| サービスモッキング | いいえ | はい |
セキュリティ
| 機能 | NGINX Ingress | MSE Ingress |
|---|---|---|
| HTTPS | はい | はい、Certificate Management Service と統合 |
| WAF 保護 | いいえ | はい、Alibaba Cloud WAF |
| IP ベースのアクセス制御 (ブラックリストとホワイトリスト) | はい | はい |
認証
| メソッド | NGINX Ingress | MSE Ingress |
|---|---|---|
| BasicAuth | はい | はい |
| OAuth | はい | はい |
| JWT | いいえ | はい |
| OIDC | いいえ | はい |
| IDaaS | いいえ | はい |
| カスタム認証 | いいえ | はい |
運用とメンテナンス
| 側面 | NGINX Ingress | MSE Ingress |
|---|---|---|
| 管理モデル | 自己管理 | フルマネージド |
| スケーリング | Horizontal Pod Autoscaler (HPA) | HPA (開発中) |
| 仕様のチューニング | 手動での設定が必要 | -- |
プロトコルと変換
| 機能 | NGINX Ingress | MSE Ingress |
|---|---|---|
| HTTP | はい | はい |
| HTTPS | はい | はい |
| HTTP から Dubbo への変換 | いいえ | はい |
| HTTPS から Dubbo への変換 | いいえ | はい |
Ingress とクラウドネイティブの統合
| 機能 | NGINX Ingress | MSE Ingress |
|---|---|---|
| Kubernetes Ingress リソース | はい | はい |
| NGINX Ingress アノテーションの変換 | N/A | 自動変換をサポートしています。詳細については、「MSE Ingress ゲートウェイでサポートされているアノテーション」をご参照ください。 |
| サポートされているクラスタータイプ | ACK マネージドクラスター、ACK Serverless クラスター、ACS クラスター | ACK マネージドクラスター、ACK Serverless クラスター、ACS クラスター |
拡張性
| アプローチ | NGINX Ingress | MSE Ingress |
|---|---|---|
| プラグイン言語 | Lua | WebAssembly (複数のプログラミング言語をサポート) |
| Lua プラグイン | はい | 開発中 |
可観測性
| 機能 | NGINX Ingress | MSE Ingress |
|---|---|---|
| アクセスログ | はい | はい、統合されています。Simple Log Service (SLS)およびApplication Real-Time Monitoring Service (ARMS) |
| メトリックとアラート | Prometheus | ARMS および Managed Service for Prometheus |
| 分散トレーシング | いいえ | はい、OpenTelemetry 向けマネージドサービス |
エコシステム
| 統合 | NGINX Ingress | MSE Ingress |
|---|---|---|
| サービスメッシュ | Nginx Service Mesh | Istio サービスメッシュ (デファクトスタンダード) |
典型的なユースケース
NGINX Ingress ゲートウェイは、オープンソースの NGINX 上に構築されており、デフォルトの Kubernetes Ingress ゲートウェイとして機能します。以下の用途に最適です。
高度にカスタマイズされたゲートウェイ設定を必要とするワークロード。
自己管理型の運用が許容される、トラフィック量の少ない環境。
ゲートウェイを直接制御したい、既存の NGINX の専門知識を持つチーム。
カナリアリリースやブルーグリーンデプロイメントを使用するクラウドネイティブアプリケーション。
MSE Ingress ゲートウェイは、MSE のクラウドネイティブゲートウェイに基づいて構築されており、トラフィックゲートウェイ、マイクロサービスゲートウェイ、およびセキュリティゲートウェイの機能を単一のマネージドプラットフォームに統合します。これらは、以下のような用途に最適です。
強力なセキュリティ、スケーラビリティ、安定性を必要とする高トラフィックの本番環境。
複数のサービス検出方法を使用する、またはプロトコル変換 (HTTP/HTTPS から Dubbo へ) を必要とするアーキテクチャ。
Nacos、Kubernetes、DNS、または固定 IP アドレスを介したバックエンドサービス検出を伴うノースサウストラフィックのシナリオ。
シームレスなサービスメッシュ統合により、ハイブリッドクラウド、マルチデータセンター、またはマルチサービスドメインの相互運用性を必要とするイーストウエストトラフィックのシナリオ。