San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
DevSecOps

コントロールプレーンとは? Wallarm解説

ネットワーキング、クラウド基盤、ルーティングは、アプリの通信を支える重要な三本柱です。しかし、コントロールプレーンがなければ、これらは着信トラフィックに対応できません。データ転送の方向や原則、プロセスに関するすべてが、このネットワーク要素で決定され、その後データプレーンにより実行されます。

より明確な理解を求めるなら、本記事をお読みいただくと、実践的な詳細が分かりやすく説明されています。

著者
コントロールプレーンとは? Wallarm解説

コントロールプレーン - 知っておくべきすべてのこと

このプレーンは、データパケットの流れと転送を管理するネットワークルーティングの要素です。基本的には、特定のネットワークにおける適切なトラフィックのルーティングと、アプリがリクエストに対する応答を提供することを保証します。

複数のネットワーク間で情報をどのように制御できるか理解する際の基本フレームワークとも言えます。

もっと簡単な説明をお求めなら、航空管制システムのようなものだと考えてください。飛行機が目的地に到着するための経路を決定するのと同様に、ネットワークルーティングでは、コントロールプレーンが着信トラフィックの経路を決めます。

機能

  • ネットワークトポロジーの構築
  • ネットワークパスの特定
  • ルーティングテーブルの作成
  • ルーティングテーブルへのパス詳細の格納
  • データパケット転送方法の指示
  • ルーティングアルゴリズムの管理
  • ネットワーク関連設定の保存
  • ルーティングプロトコルへの参加
  • 24時間体制のサービス提供の保証

動作の仕組み

ここまでで、データプレーンとコントロールプレーンが共にトラフィックとデータパケットの行先を決めることを理解いただけたと思います。では、次はコントロールプレーンの動作について見ていきます。

  • ネットワークルーティングの段階で、ルーティングプロトコルを用いてトラフィックの行先を決定します。トラフィックのIPアドレスを詳細に確認し、後にデータプレーンが適切な宛先へ誘導するためのルーティングテーブルを作成します。
  • データパケットを転送するか破棄するか、その優先順位も決定します。さらに、ポリシー、データ転送、およびカスタマイズを効率的に扱うフレームワークとして機能します。
  • 特にクラウドサービスを活用する組織では、密な分散ネットワーク内で効果的なデータパケット転送に欠かせない存在です。
Control Plane vs Data Plane vs Management Plane
コントロールプレーン vs データプレーン vs マネジメントプレーン

コントロールプレーンとデータプレーン - その違いは何か

データプレーン

コントロールプレーンの一部として、パケット転送に関する命令を受け取ります。パケットをそれぞれの宛先へ転送するため、転送プレーンと呼ばれることもあります。

どちらもネットワークインフラの一部であり、データパケットの転送を担います。共存しているため混同されがちですが、実際には大きく異なります。

コントロールプレーンは判断を下す役割をもち、データプレーンはその実装を行う場所です。しかし、データパケットの作成は主にコントロールプレーンが担います。

コントロールプレーンは完全に独立した存在ですが、データプレーンは単独では存在できません。

実際、データプレーンは単独では意味をなしません。何をすべきか判断するために、コントロールプレーンが必要です。

ルーターはこれらに対して異なる役割をもち、データプレーン向けにデータパケットを転送します。

お急ぎですか?

この表で、コントロールプレーンとデータプレーンの違いを簡潔に説明しています。

コントロールプレーンデータプレーン
独立したコンポーネント依存するコンポーネント
判断を下す判断を実行する
ルーティングを担当スイッチングを担当
ルーターがデータパケットを構築ルーターはパケットの通過のみを許可
着信トラフィックの転送ルールを決定コントロールプレーンの指示を受け、データパケットの最終的な宛先を決定
サービスメッシュでは、サイドカーがコントロールプレーンへの設定を転送データプレーンは、サービスメッシュ内のサイドカーを用いて構築される

Kubernetesコントロールプレーン

多くの企業に採用されているKubernetesは、コンテナを用いる開発環境で世界的に認知されたオープンソースソフトです。このシステムにより、コンテナの迅速なスケールアップが容易になります。基本的には、統一されたワーカーマシンからなるKubernetesクラスターを特徴とします。

ワーカーマシン(ノード)はさらに、コンテナを円滑に実行するポッドを持ちます。

より複雑なシステムでは、数十のクラスターおよび数百のノードが共存します。それら全てのノードやポッドの管理は、ポッドの停止や不具合の発生を把握するのが容易でないため、大変です。

ここで、Kubernetes(またはk8s)コントロールプレーンが解決策として登場します。

従来のコントロールプレーンとは異なり、重要なクラスターの判断を担う複数の要素から構成されます。

さらに、クラスターイベントの対応や検出も担当します。Kubernetesコントロールプレーンは、etcdキーバリューストア、複数のコントローラー、APIサーバ、スケジューラーからなり、これらの要素はAPIサーバと緊密に連携します。

Kubernetes Control Plane
Kubernetesコントロールプレーン

サービスメッシュコントロールプレーン

サービスメッシュにおいて、コントロールプレーンは別の意味を持ちます。ここでは、ポリシーの実施や設定の一部として機能します。サービスメッシュでは、複数の独立したサービスが集まり、一つのアプリを形成し、内部および外部の通信を実現します。

これらのアプリが異なる地域に存在するため、管理はより困難になります。標準化されたセキュリティ、認証、接続性、サービスディスカバリを実現するのは非常に難しいです。

プロキシの利用は、こうした複雑さを軽減する優れた方法です。サービスメッシュでは、コンテナと連携したサイドカーを利用するプロキシが用いられ、各サービスレプリカにおいて着信および発信リクエストの処理を担います。

サービスメッシュコントロールプレーンは、最新の設定情報を一元管理することで、これらの設定が正しいプロキシに届くようにしています。

サービスメッシュやKubernetesを扱う企業では、構成の展開資源としてコントロールプレーンを利用し、大規模なスケールアップを目指します。

コントロールプレーンとAPI

一般に、APIが使用されない場合、コントロールプレーンは設定ファイルを作成し、ネットワーク上で共有する必要があります。この作業は1000回以上繰り返されるため、遅延を避けるためにAPIが用いられます。

プロキシサーバは、データプレーンとコントロールプレーン間の円滑で効率的な通信を実現するため、API定義プロトコルを備えています。プロキシサーバの設定に変更があった場合、必要な変更情報が関連するすべてのプロキシサーバに自動的に転送されます。

プロキシサーバが変更された設定情報を受け取ると、それを検証・採用し、実装します。提案通りに変更が適用されると、データプレーンとコントロールプレーン間の相互作用が円滑になります。

このような変更をもたらすAPIはデータプレーンAPIと呼ばれ、多くの主要なプロキシサーバで利用されています。代表的な例としては、Nginx Controller APIやEnvoy xDS APIが挙げられます。

コントロールプレーンAPIも理解すべき重要な概念です。これは、データプレーンが受け入れる設定を確認するために、コントロールプレーンが使用するAPIの一種です。データプレーンAPIとコントロールプレーンAPIは、意味が異なります。

Control Planes and APIs
コントロールプレーンとAPI

例えば、データプレーンAPIは主に必要とされますが、コントロールプレーンAPIは必ずしも要求されません。それでも、コントロールプレーンAPIは、ソフトウェア各層間の標準的な運用フローを維持する上で重要な資源です。

これら両方のAPIはサービスメッシュの一部です。利用する前に、提供形態、つまりオープンソースとして提供されるのか、独自資産として提供されるのかを理解することが大切です。

独自のコントロールAPIを使用すると、特定ブランドの機能を利用できます。プロキシサーバの管理には、そのブランド固有のコントロールプレーンを使用する必要があります。例えば、Nginx Controller APIを利用する場合は、Nginxのコントロールプレーンを用いなければなりません。

オープンAPIの場合、特定の実装に縛られることはありません。オープンなコントロールプレーンAPIは変更が容易で、完全なカスタマイズが可能です。Envoy xDSコントロールプレーンAPIがその例です。

Traffic Directorは、バックエンドサービスや転送ルールなどの無料サービスと組み合わせやすく、あらかじめ定義された設定ファイルを持ちながらも柔軟な変更が可能です。ConsulやGCP Traffic Directorなどのコントロールプレーンは、この柔軟性を活かしています。

コントロールプレーンAPIを利用し、より良いAPIセキュリティを求める際は、コントロールプレーンAPIにもセキュリティ対策を適用してください。

簡単なまとめ

長い記事でしたね。コントロールプレーンの重要性を踏まえ、重要な事実と側面を紹介しました。以下にまとめます。

  • コントロールプレーンは、データパケットに関するすべてを決定する頭脳として機能し、パケットの行先を左右する設定ファイルを作成します。
  • データプレーンはコントロールプレーンと密接に関連していますが、同一ではなく、大きな違いがあります。
  • Kubernetesとサービスメッシュでは動作が異なり、サービスメッシュのコントロールプレーンは関連する設定ファイルを集約し、Kubernetesのコントロールプレーンはクラスターの判断を担う要素から構成されます。
  • コントロールプレーンAPIはオープンと独自の両形態で提供され、円滑な通信を支えます。

参考になれば幸いです。ネットワークコンポーネントの理解が深まるほど、データ転送は円滑になります。

FAQ

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック
関連トピック