NGINX(エンジンエックス)|日本公式サイト

NGINXはF5ファミリーの一員となりました。新体制の詳細はこちらを御覧ください。

The New Stackによると、サービスメッシュとは「分散システムのセキュリティ、オブザーバビリティ(可観測性)、トラフィック制御を向上させる」ことを目的としたテクノロジーです。さらに具体的に言うと、Kubernetesなどのコンテナ環境向けオーケストレーションツールの一部であり、一般的にはコンテナ化されたアプリケーション間におけるトラフィックのルーティングなどの機能を担います。自律的なサービス間の相互TLS(mTLS)ポリシーを定義・適用し、アプリケーションの可用性とセキュリティの可視化を提供するためのインターフェイスとして動作します。サービスメッシュは、Kubernetes全体と同様に、コントロールプレーン、管理プレーン、データプレーンで構成されます。

一般的に、サービスメッシュのトラフィック管理とセキュリティは、コンテナ化されたアプリケーションに対して透過的に処理されます。サービスメッシュがSSL/TLSやロードバランシングなどの機能をオフロードすることで、開発者はアプリケーションごとにセキュリティやサービスの可用性を実装しなくても済むようになります。エンタープライズグレードのサービスメッシュは、以下のようにさまざまな問題に対するソリューションを提供します。

  • エンドツーエンドの暗号化とmTLSによるトラフィックの安全性確保
  • インジェクションやサイドカーの管理によるオーケストレーション、およびKubernetes APIの統合
  • ロードバランシング、トラフィック制御(レート制限、サーキットブレーカー)、トラフィックシェーピング(カナリアデプロイメント、A/Bテスト、ブルーグリーンデプロイメント)を含むサービストラフィックの管理
  • PrometheusやGrafanaなどの一般的なツールによるサービス間トラフィックの監視と可視性の向上
  • Ingressコントローラーとのネイティブな統合により、KubernetesのIngress/Egressトラフィックの管理を簡素化

サービスメッシュは、小規模で焦点を絞ったものから、ネットワークやクラスターの管理ツール(Istioなど)を包括的に備えた大規模なものまで、対象範囲が多様です。サービスメッシュがより大規模で複雑になるほど、管理プレーンの有用性と独立性が高くなります。

サービスメッシュ使用の判断

サービスメッシュは、マネージドクラスターにおけるアプリケーションのトラフィック管理用ツールとして優れていますが、Kubernetesで欠かせない要素というわけではありません。どのような追加ツールにも言えることですが、ユーザのトレーニング、新たな管理要件、既存のCI/CDパイプラインへの統合などのオーバーヘッドを伴います。サービスメッシュに投資する前に、現在のユースケースと計画中のユースケースの中で、どのようなものがサービスメッシュの恩恵を受けるかを特定することが重要です。

メッシュの準備ができているかどうかを判断し、次のステップに進むには、当社ブログ「サービスメッシュの選び方」をお読みください。

  • 準備ができているかどうかを判断するための6つのチェックリスト
  • 最適なメッシュを選択するための3ステップのプロセス
  • NGINX Service Meshの概要

NGINXはどのように役立ちますか?

サービスメッシュが必要であると判断した際に、どれを採用するかはユースケース次第です。「メッシュで何を管理するのか?」と自分自身に問いかけてみましょう。

  • 答えが「アプリケーションのトラフィック管理、セキュリティ、ガバナンス」であれば、NGINX Service Meshのように、コントロールプレーンではなく、データプレーンに焦点を当てたメッシュを選択します。軽量でありながら包括的な機能を備え、NGINX Plusを活用してエンタープライズグレードのトラフィック管理とセキュリティツールをKubernetes環境に提供します。
  • 答えが「Kubernetesのクラスターとネットワークの管理」であれば、Istioのような機能豊富なメッシュでF5のAspen Meshを独立した管理プレーンとして使用することをお勧めします。

最新アプリのデリバリーを支援するNGINXにご興味ある方は、ぜひお問い合わせください。