マイクロサービス
用語名をコピー
技術用語約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)
デプロイは一括して行いつつも、内部のコードはサービス単位で厳密に分離し、マイクロサービスの複雑さを避けながら構造的なメリットを得る中間段階です。
関連用語
サーバーレス
インフラの管理なしでコードやサービスを実行し、実際の使用量(呼び出し回数、実行時間)に応じて自動スケーリングおよび課金が行われるクラウドコンピューティングモデルです。