Oracle Cloud Hangout Cafe Season6 #1「Service Mesh がっつり入門!」(2022年9月7日開催)

2023年6月22日(木)
仁井田 拓也
連載第6回の今回は、2022年9月7日に開催された「Oracle Cloud Hangout Cafe Season6 #1『Service Mesh がっつり入門!』」の発表内容に基づいて紹介していきます。

AWS App Mesh

AWS App Meshは、AWSのサービスとして開発されているフルマネージドサービスメッシュプラットフォームです。サポート環境はFargate/ECS/EKS/Kubernetes on EC2などあります。サイドカープロキシにはEnvoyを採用し、コントロールプレーンをマネージドとして提供しています。他のAWSサービスとの連携も強力です。

OCI Service Mesh

OCI Service Meshは、Oracle社がOCI(Oracle Cloud Infrastructure)上で提供しているフルマネージドサービスメッシュプラットフォームです。サポートする環境はOKE(Oracle Container Engine for Kubernetes)のみで、将来的にはVMもサポートする予定です。サイドカープロキシはEnvoyベースとなっており、コントロールプレーンをOracle社が管理します。

OSOK(OCI Service Operator for Kubernetes)と呼ばれるOKE用のOperatorが必要であり、ユーザがインストールを行う必要があります。また、他のOCIサービスとの高い親和性があります。

ここまでがオープンソースプロダクト、ベンダーサービスを含めたService Meshプロダクトの紹介です。ここまでのプロダクトを以下にまとめます。

【オープンソースプロダクト】
Istio LINKERD Consul Connect Kuma Open Service Mesh
データプレーン Envoy Conduit 組み込みプロキシ
Envoy
Envoy Envoy
VMサポート 不可 不可
有償サポート
(ベンダーサービスあり)
GitHub Star数
(2023年5月現在)
32.9k 9.6k 26.4k 3.1k 2.6k
【ベンダーサービス】
Anthos Service Mesh AWS App Mesh OCI Service Mesh
提供ベンダー Google Amazon Oracle
データプレーン Envoy Envoy Envoy
コントロールプレーン実装 Istioベース 独自 独自
VMサポート(2023年5月現在) 不可(ロードマップあり)

ここで押さえておきたいポイントは、LINKRED以外のデータプレーンにEnvoyが利用されているという点です。Service Meshプロダクトに、なぜここまでEnvoyが利用されるのかを含めて、ここからはIstioをベースに詳細なアーキテクチャを掘り下げます。

Istio Deep Dive

前段でIstioのアーキテクチャについて少し触れ、コントロールプレーンとデータプレーンの2つのコンポーネントから構成されているという話をしました。この2つのコンポーネントについてもう少し掘り下げていきます。

Istioのコントロールプレーン

Istioのコントロールプレーンは、v1.4以前とv1.5以降で大きく異なります。v1.4以前では、以下のコンポーネントから構成されていました。

  • Pilotサービス:データプレーン(Envoy)へのconfig反映
  • Citadelサービス:サービス対サービスとエンドユーザ認証/認可を提供。SPIFFE(後述)の実装コンポーネント
  • Mixerサービス:Observability(Telemetry)関連機能やアクセス制御機能を提供
  • Galleyサービス:ユーザがカスタマイズしたconfig設定の提供

v1.5以降ではMixerサービスがEnvoyに統合され、他の3つのコンポーネントはistiodという1つのバイナリになりました。

Istioのデータプレーン

Istioのデータプレーンは、Envoyというプロキシから構成されています。

Envoyは2015年5月にLyft社が開発し、2016年9月にオープンソースとして公開されました。EnvoyはL4/L7両機能を持つプロキシソフトウェアであり、C++で実装されています。また、プラグイン開発としてWebAssembly/Luaをサポートしています。

Envoyは“xDS Protocol”という動的に制御できる仕組みを持っており、このxDS Protocolを制御するAPI(“xDS API”)を実装できます。このxDS APIを実装したものが前述したコントロールプレーンです。これらのAPIには、具体的に以下のようなものがあります。

  • EDS(Endpoint Discovery Service)
  • CDS(Cluster Discovery Service)
  • RDS(Route Discovery Service)

また、以下のようにAPIのリファレンス実装にはJavaとGoの2つの実装があります。

Java
Go

このEnvoyの拡張性の高さが、多くのService Meshプロダクトのデータプレーンに採用されている理由の1つであると言えます。

日本オラクル株式会社

Oracle Groundbreaker Advocate
Senior Cloud Solution Engineer

日本オラクル株式会社所属。SIerにて様々なOSSを活用したシステム開発を経験し現職。現在は、SIer時代の知見を活かし、ソリューションアーキテクトとしてクラウドでのアプリケーション開発やクラウドネイティブ技術に関する技術/案件支援に従事。

Community:
Oracle Cloud Hangout Cafe メンバー(#ochacafe)

連載バックナンバー

仮想化/コンテナ技術解説
第6回

Oracle Cloud Hangout Cafe Season6 #1「Service Mesh がっつり入門!」(2022年9月7日開催)

2023/6/22
連載第6回の今回は、2022年9月7日に開催された「Oracle Cloud Hangout Cafe Season6 #1『Service Mesh がっつり入門!』」の発表内容に基づいて紹介していきます。
仮想化/コンテナ技術解説
第5回

Oracle Cloud Hangout Cafe Season5 #5「実験! カオスエンジニアリング」(2022年5月11日開催)

2023/5/18
連載第5回の今回は、2022年5月11日に開催された「Oracle Cloud Hangout Cafe Season5 #5『実験! カオスエンジニアリング』」の発表内容に基づいて紹介していきます。
仮想化/コンテナ技術解説
第4回

Oracle Cloud Hangout Cafe Season5 #3「Kubernetes のセキュリティ」(2022年3月9日開催)

2023/4/18
連載第4回の今回は、2022年3月9日に開催された「Oracle Cloud Hangout Cafe Season5 #3『Kubernetes のセキュリティ』」の発表内容に基づいて紹介していきます。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています