Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する連載。今回は、近年注目を集める「サービスメッシュ」と、そのツールとして人気の高い「Istio」について解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
コンテナ技術やクラウドネイティブを語る文脈の中で、「サービスメッシュ」という単語を耳にする機会が増えてきたのではないでしょうか。Linux Foundation傘下のCloud Native Computing Foundation(CNCF)が2020年5〜6月に行った調査「CNCF SURVEY 2020」でも、調査対象のうち27%の組織が既に商用環境でサービスメッシュを利用しており、42%の組織が評価および計画フェーズにあると回答しています。
このように注目のサービスメッシュとは何なのでしょうか。
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する本連載「Cloud Nativeチートシート」。今回から数回に分けてサービスメッシュの基本的な概念や、サービスメッシュのツールとして人気の高い「Istio」について説明します。
サービスメッシュとは一言で表すと、「マイクロサービスアーキテクチャにおけるネットワーク面での課題を解決する機能群」といえます。そのため、サービスメッシュの説明をする前に、あらためて「マイクロサービスアーキテクチャ」とは何か、またどのような課題があるのかを解説します。
従来のシステム開発では、アプリケーションに必要な全ての機能を1つのコンポーネント(サーバなど)にまとめて実装する「モノリシックアーキテクチャ」が主流でした。
近年はコンテナ技術の台頭により、アプリケーションに必要な機能を1つのサービスと見なしてコンポーネント分離し、各サービス間を連携させることでアプリケーション全体を構成するマイクロサービスアーキテクチャが脚光を浴びています。マイクロサービスアーキテクチャを採用することで各サービス間の依存関係を疎結合にしたアーキテクチャを設計しやすくなるので、再利用性の向上や開発単位の最小化によるリリースサイクルの高速化、サービス単位でのスケールイン/スケールアウトのしやすさといったメリットが得られるようになります。
マイクロサービスアーキテクチャでは、複数のサービスが連携して1つのシステムを構成する特徴からモノリシックアーキテクチャでは考慮する必要のなかった以下のような点が課題となります。
サービスメッシュという言葉を直訳すると「サービスの網」、つまりはマイクロサービスのように多数のサービスが複雑に接続された状態を指します。そこから転じて、一般的には上記のようなサービス間のトラフィック制御やセキュリティ、可観測性の確保といったマイクロサービスアーキテクチャを用いる場合に発生する課題を解決するための機能群を提供するプロダクトを指すケースが多いです。
またマイクロサービスアーキテクチャは上記で述べた通り、多数のサービスを柔軟に起動、管理できる必要があることから、仮想マシンと比べてサービス起動やスケールコストの低いコンテナを用いて構成し、そこにサービスメッシュの機能を持たせることが一般的です。
そのため、以下ではコンテナ基盤として代表的なKubernetes上でマイクロサービスアーキテクチャおよびサービスメッシュを扱う前提で説明を進めます。
Copyright © ITmedia, Inc. All Rights Reserved.