マイクロサービス

技術用語
約1分で読めます

アプリケーションをビジネス機能中心の独立した小規模なサービスに分割して構築・デプロイする、クラウドネイティブなアーキテクチャです。

別名
MicroserviceMSAMicroservice Architecture

詳しい説明

マイクロサービス(Microservices)は、1つの大きなアプリケーションを、小さく疎結合されたサービスの集合として設計する手法です。各サービスは独自のデータベースとビジネスロジックを持ち、主にREST APIやgRPCを介して通信します。モノリシックアーキテクチャとは異なり、特定の機能だけを独立してアップデートや拡張ができるため、開発の俊敏性と障害隔離能力に優れています。近年では、AIモデルの推論環境を別個のマイクロサービスとして分離し、リソースを効率的にデプロイする「Model-as-a-Service」パターンが普及しており、サービスメッシュやサーバーレス技術を活用して運用の複雑さを解決する傾向にあります。

ツール選定において重要な理由

AIツールやプラットフォームを導入する際、マイクロサービスアーキテクチャに対応しているかどうかは拡張性に直結します。AIモデルは一般的なビジネスロジックよりも多くの演算リソースを消費するため、これをシステム全体から分離して個別にスケール(Scaling)できるようにすることが、コスト効率の良い運用のために不可欠です。また、多様な技術スタックを許容するため、最新のAIフレームワークを既存システムに容易に統合できます。

ツール導入時の確認事項

  • 標準API(REST、gRPC)を介して既存システムと柔軟に通信できるか?
  • DockerやKubernetesなどのコンテナ環境において、独立したデプロイをサポートしているか?
  • 分散されたサービス間の状態を把握できるオブザーバビリティ(Observability)ツールを提供しているか?
  • 特定のサービス障害がシステム全体に波及するのを防ぐサーキットブレーカー機能を備えているか?

AIシステムへの適用例

Eコマースサービスにおいて、「商品検索」は通常のデータベースで処理し、「画像ベースの類似商品推薦」はGPUリソースが割り当てられた個別のマイクロサービスとして構成します。ユーザーが急増した際には、推薦エンジンサービスのみサーバーを増設して対応することで、システム全体の安定性を維持できます。

混同しやすい用語

モノリシック (Monolithic)

すべての機能が1つのコードベースとプロセスにまとめられており、デプロイやスケーリングが一括して行われる構造です。

モジュラーモノリス (Modular Monolith)

デプロイは一括して行いつつも、内部のコードはサービス単位で厳密に分離し、マイクロサービスの複雑さを避けながら構造的なメリットを得る中間段階です。

関連用語

サーバーレス