セキュリティとガバナンス

サービスメッシュは何を解決するのか?マイクロサービスと絡めて詳しく解説

ITサービスの開発において、単一OSに複数アプリケーション実行環境を構築できる「コンテナ」の活用が拡大しています。コンテナの普及に伴って、近年注目されているのが「サービスメッシュ」です。
本記事ではサービスメッシュについて、マイクロサービスと併せて詳しく解説します。

サービスメッシュは何を解決するのか?マイクロサービスと絡めて詳しく解説

クラウド時代に求められる情報セキュリティとは? 〜Microsoft Defender for Cloudも解説〜

マイクロサービスアーキテクチャとは?

マイクロサービスアーキテクチャは、サービスメッシュと関わりが深い概念です。まずは、マイクロサービスアーキテクチャの概要について解説します。

マイクロサービスアーキテクチャの概要

マイクロサービスアーキテクチャとは、サービスの各機能を「マイクロサービス」として独立させ、それぞれを連携させることで1つのサービスを実現する概念です。通常、1つのサービスにさまざまな機能を実装すると機能間の依存関係が複雑となり、プログラムの開発やメンテナンスがしづらくなります。

その点、マイクロサービスアーキテクチャを用いれば、個々の機能の独立性を高められます。結果として機能の再利用性が高まる、機能ごとに作業分担がしやすくなる、などのメリットが得られるのです。開発効率の向上や運用・保守の負担軽減を実現できるため、昨今のサービス開発で注目されています。

国内外のIoT先進事例100選
Azure Cosmos DB 自習書 - Azure Cosmos DB Gremlin API 編 -

マイクロサービスアーキテクチャが抱える課題

マイクロサービスアーキテクチャは有力な概念ではあるものの、その実現には以下の4つの課題があります。1つずつ、順番に解説します。

  • トラフィック制御
  • セキュリティ
  • 可観測性
  • パフォーマンス

トラフィック制御

マイクロサービスアーキテクチャでは、マイクロサービス間でデータのやり取りが頻繁に発生します。このときトラフィック制御が適切に行われないと、1つのマイクロサービスの障害によって、サービス全体が停止する恐れもあるのです。

具体的には、下記のような事項を設計段階でしっかり検討する必要があります。

  • あるマイクロサービスで障害が発生したときに、どうやって切り離すか
  • データの送信先が複数バージョンを持っていた場合、どのバージョンのマイクロサービスに送信するか
  • 許容範囲を超えた量のデータが送られた場合、どのように処理するか

セキュリティ

通常であれば、機能間のやり取りは1つのサービスに内包されています。しかしマイクロサービスアーキテクチャの場合は、マイクロサービス間の通信が外部から盗聴されやすくなります。こうしたセキュリティリスクを防ぐためには、通信をどのように暗号化するか、なども考慮しなければなりません。

可観測性

マイクロサービスを適切に連携させて1つのサービスを構成するうえで、全体把握が欠かせません。しかし、1つのマイクロサービスが複数のマイクロサービスと通信することになり、システム構成や通信の流れは煩雑となるのです。マイクロサービス化することで各機能を単体で扱いやすくなる一方、こうした可観測性の確保が課題となります。

パフォーマンス

マイクロサービス間の通信は、専用のAPIを呼び出すことで行います。しかし、APIのコールはネットワークを経由する必要があるため、一定のオーバーヘッドが発生します。APIの仕様を十分に検討しないと通信に多くの時間がかかり、サービス全体のパフォーマンス低下につながるのです。また、個々のマイクロサービスは異なるプロセスで動作させるため、メモリの消費量も増大しやすいでしょう。

サービスメッシュとは?

マイクロサービスアーキテクチャの実現にあたって生じる上記課題のソリューションとなるのが、サービスメッシュです。サービスメッシュとは、マイクロサービス間の通信を「プロキシ」で中継することで、通信を制御する仕組みを指します。

マイクロサービスアーキテクチャでは、複数のマイクロサービスを迅速に起動・制御する必要があります。そのため、通常の仮想サーバーよりも軽量なコンテナを採用することが多いでしょう。サービスメッシュは、コンテナ化したマイクロサービスを制御して、1つのサービスを構成するために用いられます。

サービスメッシュのメリット

サービスメッシュを用いるメリットは、主に次の3つです。1つずつ、順番に解説します。

  • 相互運用性の向上
  • リアルタイムでの監視と分析
  • マイクロサービスの検出

相互運用性の向上

サービスメッシュを用いることでマイクロサービス間の連携が強化され、相互運用性の向上につながります。データ送信先のルーティングが自動化されることで、マイクロサービス間で適切な通信が実現するでしょう。例えば、特定のマイクロサービスだけをアップデートする場合でも、新しいバージョンへの送信先切り替えが容易となります。

リアルタイムでの監視と分析

マイクロサービス間の通信においてプロキシを経由させることで、リアルタイムでの監視・分析が可能になります。これによって、マイクロサービスの異常を迅速に把握したり、時間のかかる通信を特定したりすることも可能です。運用・保守の負担軽減や、ネットワークの問題改善につながるでしょう。

マイクロサービスの検出

マイクロサービス間の通信を適切に行うためには、起動・終了したマイクロサービスを迅速に把握しなければなりません。サービスメッシュを用いることで、こうしたマイクロサービスの変化をリアルタイムに検出することが可能です。これによって、新しいマイクロサービスの立ち上げが迅速になる、などのメリットが得られます。

サービスメッシュを実現できるソフトウェア

サービスメッシュの実現には、専用のソフトウェアを用います。それらのうち次の2つが代表的です。それぞれ詳しく紹介します。

  • Istio
  • Linkerd

Istio

「Istio(イスティオ)」とは、Google社やIBM社などによって開発されたオープンソースソフトウェアです。コンテナ管理ソフトウェアの中でもポピュラーな「Kubernetes」に対応しています。Istioは、大まかに「データプレーン」と「コントロールプレーン」の2要素で構成されます。

データプレーンは前述したプロキシによって、マイクロサービス間の通信を制御するものです。このデータプレーンには、Lyft社が開発した「Envoy」と呼ばれるソフトウェアが用いられています。一方のコントロールプレーンは、プロキシのポリシー管理を行います。

Istioを用いることで、アップデート時などのサービスへの影響を最小化でき、運用や保守の負担軽減につながるでしょう。

Linkerd

「Linkerd(リンカーディー)」とは、Buoyant社によって開発されたオープンソースソフトウェアです。CNCF(Cloud Native Computing Foundation)がホストしており、Istioと同様Kubernetesに対応しています。アーキテクチャもIstioと似ていますが、こちらの方が少し先にリリースされました。

各マイクロサービス内にLinkerdインスタンスを配置し、マイクロサービス間の通信はこれらを介して行われます。また、マイクロサービスとは別に「namerd」と呼ばれるサービスがあり、コントロールプレーンとしてLinkerdインスタンスのルーティング情報を一元管理します。

Microsoft Azureとは何か?入門から応用まで徹底解説

クラウドとは何か?Azureとは何か?導入のメリットや構成、コストに至るまでの基礎的な知識から、どのように活用すべきかまでを徹底的に解説しています。

Microsoft Azureとは何か?入門から応用まで徹底解説

ブログ記事を見る

まとめ

マイクロサービスアーキテクチャは有力ながら、実現にはトラフィック制御やセキュリティなどの課題が存在します。それらを解決するのが、サービスメッシュです。
サービスメッシュを利用するためには、IstioやLinkerdなどのソフトウェアが必要ですが、Azure Kubernetes Service であればこれらのソフトウェアも使用できます。

Microsoft Azure製品カタログ
  • fb-button
  • line-button
  • linkedin-button

関連記事

VDI(仮想デスクトップ)とシンクライアントとの違いは?各方式の特徴
仮想デスクトップ
仮想デスクトップ(VDI)導入で変わる業務のメリット・デメリットを解説
仮想デスクトップ
大規模なVDIを成功に導くポイントとは?導入失敗から学ぶ法則を紹介
仮想デスクトップ
製造部門がCAD環境をVDI化するメリット
仮想デスクトップ
仮想デスクトップを導入するメリットについて【ユーザー視点、管理者視点で解説!】
仮想デスクトップ
DaaSとは?VDIとの違いについても解説
仮想デスクトップ
主要クラウド型VDI(仮想デスクトップ)を徹底比較!
仮想デスクトップ
Horizon Cloud on Azureとは?AVDとの違いも解説
仮想デスクトップ
VMware Horizonとは?その基本を解説
仮想デスクトップ
導入前におさえておくDaaSのメリット・デメリット
仮想デスクトップ
AVDの導入から運用まで成功に導くLakeside SysTrackとは?
仮想デスクトップ
デスクトップ仮想化とアプリケーション仮想化の違い
仮想デスクトップ
インターネット分離とは?AVDの登場で身近なセキュリティ対策へ
仮想デスクトップ
CADをクラウド化するメリットとは
仮想デスクトップ
AzureのVDI、期待が集まるAzure Virtual Desktop(旧Windows Virtual Desktop)‎(AVD)
仮想デスクトップ
よくあるVDIのトラブルと対処法!ユーザー体験の可視化が重要
仮想デスクトップ
テレワーク推進企業が知っておきたい助成金について
仮想デスクトップ
Azure Virtual Desktop(旧Windows Virtual Desktop)(AVD)とは?そのメリットを解説
仮想デスクトップ
「リモートワーク」と「テレワーク」の違いとは?
仮想デスクトップ
RELATED SITES

関連サイト

CONTACT

サイト掲載の
お問い合わせ

TOP