システム構成

マイクロサービスとは

まいくろさーびす / Microservices / マイクロサービスアーキテクチャ

1つのシステムを機能ごとに独立して開発・リリースできる小さなサービスの集まりとして構築する設計の考え方です。多くの会社ではまだ不要で、まず1つのシステムで構築するほうがよいです。

公開
2026.10.21
更新
2026.10.22
マイクロサービス

マイクロサービスとは

1つのシステムを受注、在庫、決済といった業務の単位で小さなサービスに分け、それぞれを独立して開発・リリースできるようにする設計の考え方です。サービス同士はネットワーク越しにAPI(Application Programming Interface)による呼び出しや、メッセージによる通知で連携します。対になるのはすべての機能を1つのシステムとしてまとめて構築する形で、モノリスと呼びます。

たとえるなら1つの大きな店舗を、テナントごとに鍵と営業時間を持つショッピングモールに作り替えるようなものです。各テナントは他の店を閉めずに改装できますが、モール全体の管理の手間は増えます。

なぜ必要か

システムが大規模になり、関わる開発者が増えると、1つのシステムを全員で変更することになります。ある機能の小さな修正でも他チームの変更と一緒にテストし、まとめてリリースしなければなりません。リリース日の調整やテスト待ちが増え、開発者を増やしても開発の速度が向上しなくなります。

同じ日にリリースするための調整とテスト待ちが発生する状態と、サービスごとに独立してリリースできる状態の比較

マイクロサービスはこの状態を解消する考え方で、業務の単位でシステムを分割し、分割したサービスごとに担当チームを決めます。これにより各チームは他チームの作業の完了とは関係なくリリースできます。

システムの分け方はチームの分け方と対応させる必要があります。チームが1つしかない会社では分ける理由がほとんどありません。

効果

  • チームごとに独立してリリースでき、リリースの頻度と速度を維持できる
  • 1つのサービスの障害が作りによっては全体の停止にならない
  • 負荷の高い機能だけを増強でき、インフラ費をかける対象を限定できる
  • サービス単位で技術を入れ替えられ、全体をまとめて作り直さずに済む
  • 担当範囲が明確になり、新規メンバーの把握すべき範囲が限定される

コストとリスク

  • 監視、ログ収集、リリース自動化の仕組みが必須になり、初期構築と継続的な運用に人と費用がかかる
  • 障害の原因がサービス間のどこにあるかを特定する調査が困難になる
  • 複数サービスにまたがる機能の変更は1つのシステムより調整が増える
  • サービスごとにデータを持つため、データの整合を取る設計が複雑になる。分析用にデータを収集する手間も増える
  • サーバーやネットワークの費用は多くの場合1つのシステムより増える
  • 複数のサービスにまたがる障害を調査して修正できる人材が必要で、採用と育成のコストがかかる
  • 分け方を誤ると影響が大きくなる
    • データベースの共有や呼び出しの連鎖のせいで、結局まとめてリリースしないと動作しなくなる。分散モノリスと呼ばれる状態で、運用の負担だけが増えた1つのシステムより悪い形になる
    • 後から分け方を変えるのが1つのシステム内の整理よりはるかに手間がかかる

受注・在庫・請求のサービスが1つのデータベースを共有し、呼び出しの連鎖で接続する分散モノリスの形

よくある誤解

マイクロサービスにすれば開発が速くなる

開発チームが2つまでの規模ではサービス間の連携や運用の手間が増えるぶん、むしろ遅くなることが多いです。

大量のアクセスを処理するにはマイクロサービスが必要

アクセス量への対応は1つのシステムのままでもサーバーを増やすことで多くの場合まかなえます。大規模なサービスでも1つのシステムのまま運用を続けている例はあります。EC(Electronic Commerce)プラットフォームのShopifyはマイクロサービスへ移行せず、1つのコードベースの中を業務単位で区切る構成を選択しました。その経緯を2019年に公表した記事で説明しています。

細かく分けるほど良い設計になる

サービスの数が増えるほど連携と運用の負担も増えます。サービスの数はチームの数に合わせて決定するもので、細かさそのものに価値はありません。どのサービスにも責任を持つチームが1つ決まっていることが前提になります。担当の決まらないサービスが出る分け方は、管理しきれないシステムの典型的な形です。

マイクロサービスは最新の考え方なので新規開発では採用すべき

新規開発はまず1つのシステムとして作り、規模が拡大してから分割する進め方が広く推奨されています。最初から分けるべきという反論もあります。事業の初期は業務の区切り自体が変化しやすく、早期に分割すると分け方の引き直しに多くの工数がかかります。新規開発はまず1つのシステムで構築するほうが安全です。