サービスメッシュ、Istioがマイクロサービスのトラフィック制御、セキュリティ、可観測性に欠かせない理由:Cloud Nativeチートシート(9)
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する連載。今回は、近年注目を集める「サービスメッシュ」と、そのツールとして人気の高い「Istio」について解説します。
近年注目のサービスメッシュ
コンテナ技術やクラウドネイティブを語る文脈の中で、「サービスメッシュ」という単語を耳にする機会が増えてきたのではないでしょうか。Linux Foundation傘下のCloud Native Computing Foundation(CNCF)が2020年5〜6月に行った調査「CNCF SURVEY 2020」でも、調査対象のうち27%の組織が既に商用環境でサービスメッシュを利用しており、42%の組織が評価および計画フェーズにあると回答しています。
このように注目のサービスメッシュとは何なのでしょうか。
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する本連載「Cloud Nativeチートシート」。今回から数回に分けてサービスメッシュの基本的な概念や、サービスメッシュのツールとして人気の高い「Istio」について説明します。
目次
「サービスメッシュ」とは
サービスメッシュとは一言で表すと、「マイクロサービスアーキテクチャにおけるネットワーク面での課題を解決する機能群」といえます。そのため、サービスメッシュの説明をする前に、あらためて「マイクロサービスアーキテクチャ」とは何か、またどのような課題があるのかを解説します。
マイクロサービスアーキテクチャ
従来のシステム開発では、アプリケーションに必要な全ての機能を1つのコンポーネント(サーバなど)にまとめて実装する「モノリシックアーキテクチャ」が主流でした。
近年はコンテナ技術の台頭により、アプリケーションに必要な機能を1つのサービスと見なしてコンポーネント分離し、各サービス間を連携させることでアプリケーション全体を構成するマイクロサービスアーキテクチャが脚光を浴びています。マイクロサービスアーキテクチャを採用することで各サービス間の依存関係を疎結合にしたアーキテクチャを設計しやすくなるので、再利用性の向上や開発単位の最小化によるリリースサイクルの高速化、サービス単位でのスケールイン/スケールアウトのしやすさといったメリットが得られるようになります。
マイクロサービスアーキテクチャの課題
マイクロサービスアーキテクチャでは、複数のサービスが連携して1つのシステムを構成する特徴からモノリシックアーキテクチャでは考慮する必要のなかった以下のような点が課題となります。
- サービス間のトラフィック制御
- あるサービスから複数バージョンを有するサービスへのルーティングをどのように制御するか(BlueGreen Deployment、Canary Releaseをどのように行うか)
- あるサービスが障害によって応答できなくなった場合の影響を局所化するために、障害が発生したサービスをどのように切り離すか
- 特定のサービスに向けた想定を上回るリクエストが発生した際、リクエストをどう処理するか
- サービス間通信のセキュリティ確保
- サービス間の通信をどのように保護するか
- サービス間の通信可否をどのように制御するか
- アーキテクチャ全体像やサービス間のつながりの把握
- 多数のサービスを連携させることで複雑になったシステム構成や通信の流れをどのように把握するか
あらためてサービスメッシュとは
サービスメッシュという言葉を直訳すると「サービスの網」、つまりはマイクロサービスのように多数のサービスが複雑に接続された状態を指します。そこから転じて、一般的には上記のようなサービス間のトラフィック制御やセキュリティ、可観測性の確保といったマイクロサービスアーキテクチャを用いる場合に発生する課題を解決するための機能群を提供するプロダクトを指すケースが多いです。
またマイクロサービスアーキテクチャは上記で述べた通り、多数のサービスを柔軟に起動、管理できる必要があることから、仮想マシンと比べてサービス起動やスケールコストの低いコンテナを用いて構成し、そこにサービスメッシュの機能を持たせることが一般的です。
そのため、以下ではコンテナ基盤として代表的なKubernetes上でマイクロサービスアーキテクチャおよびサービスメッシュを扱う前提で説明を進めます。
サービスメッシュの基本アーキテクチャ
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- そのモノリス、本当にマイクロサービス化が必要? サービスメッシュも?
2020年2月13〜14日に開催された「Developers Summit 2020」のセッションに、アマゾンウェブサービスジャパンのHara Tori氏が登壇。サービスメッシュの必要性や、採用する際に考慮すべきポイントを解説した。 - マイクロサービスを支える「Istio」の実力は? サービスメッシュの利点と課題
マイクロサービスアーキテクチャを適用したアプリケーションは、規模の拡大に伴い運用が煩雑化してしまう。その課題の解決策として登場した「サービスメッシュ」という考え方とその実装として期待が高まっている「Istio」は、どの程度有用なのか。日立製作所の井出貴也氏が、検証の成果をもとに解説した。 - 「サービスメッシュ戦争」も、クラウドネイティブな世界のダイナミズムとCNCF
2019年5月20〜23日にスペイン・バルセロナで開催された「KubeCon+CloudNativeCon Europe 2019」では、クラウドネイティブな世界のダイナミズムを感じさせる動きが相次いだ。本記事では、OpenTracingとOpenCensusの統合によるOpenTelemetryの発足、およびMicrosoftなどによるService Mesh Interfaceの発表を取り上げ、CNCFのCOO(最高執行責任者)/CTO(最高技術責任者)であるクリス・アニズィック氏のコメントを交えてお届けする。