はじめに
本記事は Google Cloud Next Tokyo 2025 で行われたセッション「複雑なサービスメッシュはもう古い?Cloud Run で手軽に始めるサービスメッシュ」のレポートとなります。
スピーカー:
Google Cloud
アプリケーションモダナイゼーションコンサルタント 伊藤 裕一様
セッション概要
サービスの運用において、トラフィック管理、セキュリティ、可観測性の向上を実現するサービス メッシュは非常に強力な技術です。
しかし、「サービス メッシュは Kubernetes の専門知識が必要で導入のハードルが高い」と感じている方も多いのではないでしょうか。
本セッションでは、そのようなイメージを覆し、サーバーレス環境である Cloud Run を活用することで、マネージドかつ手軽にサービス メッシュを導入できることをご紹介します。
Cloud Run であれば、複雑なインフラ管理に悩まされることなく、サービス メッシュの強力な機能を活用し始めることが可能です。
セッション内容
マイクロサービスの理想と現実
マイクロサービス・従来のサービスメッシュ(Kubernetes + Istio)の課題
現代のウェブサービスはマイクロサービスへと移行が進んでいますが、その中で新たな課題も出てきています。
- 障害発生時の特定が困難でどこで障害が起きているのか特定しにくい。
- 一部のパフォーマンス低下が他のサービスに波及する。
- サービス間の通信をセキュアに保ち、トラフィックを管理するのが難しい。
これらの課題を解決するために、サービスメッシュという技術が導入されますがこちらでも課題が存在します。
サービスメッシュで代表的なIstioをKubernetes上で利用すると便利ですが、運用負担が非常に大きいという問題があります。
- IstioやKubernetesクラスタの頻繁なアップグレードが必要で、そのたびに互換性を考慮しなければならない。
- 運用には高度な技術スキルが必要で、採用も難しい。
- Kubernetesの学習コストやバージョンアップの対応により負荷が高まる状況になりがち。
結果として、多くの企業では、サービスメッシュを導入しきれていないのが現状です。
そこでCloud Service Meshが登場します。
Cloud Service MeshとCloud Runの組み合わせにて課題を解決
Google Cloudは、これらの運用課題を解決するためにCloud Service Meshを提供しています。
こちらはIstioと互換性がありつつも、Google Cloudがマネージドで提供するサービスになります。
Cloud Runと組み合わせることで、サービスメッシュの導入と維持コストを削減する事ができます。
Cloud Service Mesh + Cloud Runで実現できること
1. シンプルなサービス間通信
◦ 複雑なCloud Runのドメイン名ではなく、target.mesh.apps.internalのような簡潔なホスト名でサービス間通信が可能になります。
2. サービス間認証の設定が容易となる
◦サービス間認証にはトークンの付与などが必要ですが、Cloud Service Meshが自動で処理するため、認証コードを記述する必要がなくなります。
3. IAMによるきめ細やかなアクセス制御
◦ IAMによるきめ細やかなアクセス制御: 誰がどのサービスにアクセスできるかをIAMで定義でき、不正な通信をブロックできます。
4. 高度なトラフィック管理
◦ HTTP Routeによりロードバランサーのように、サービスへのトラフィックを細かく制御できます。
◦ カナリアリリースやA/Bテストの設定がYAMLの設定一つで簡単に実現できます。
◦ その他
5. Cloud Traceとの自動連携
◦ Cloud Traceとの自動連携によりどこでどれくらいの時間がかかったか、障害がどこで発生したかなどを簡単に可視化・特定できます。
まとめ
KubernetesとIstioを自前で運用する場合と比較して、「2割の労力で8割の機能を実現できる」という感覚で利用できるとのことで、従来のCloud Run単体では実現できなかったものが、Cloud Service Meshがマネージドで提供することで、運用負荷をかけずに利用可能になる点は非常に魅力的に感じました!