忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【ネットワーク】システムの生存確認!「ハートビート」|情報処理問題1000本ノック

心臓の鼓動(Heartbeat)のように、一定の間隔で信号を送ることで、相手が正常に動いているかを遠隔で監視する仕組みを攻略しましょう。

1. 問題:稼働状況の確認手法

【 問題 】 ネットワークに接続されたコンピュータやソフトウェアが、外部に対して「自分は正常に稼働している」ことを知らせるために、一定の間隔で送信する信号のことを何と呼ぶでしょうか?

ア、ハンドシェイク   イ、ハートビート   ウ、キープアライブ   エ、ポーリング

2. 正解:可用性管理に関する正解

正解: イ、ハートビート(Heartbeat)

3. 解説:沈黙は「異常」のサイン

ハートビートは、特に冗長化(二重化)されたシステムにおいて、相方の故障を検知するために非常に重要です。

【図解:ハートビートの役割と仕組み】

■ 生存確認の流れ
・稼働中のサーバーが、監視役の装置へ定期的に「トントン(生きてるよ)」と短いパケットを送ります。
・信号が途切れた(一定時間届かない)場合、監視役は「あいつは死んだ(故障した)」と判断します。

■ 活用例:フェイルオーバー
・メイン機からのハートビートが途絶えた瞬間、待機していたサブ機が「自分の出番だ!」と判断して処理を引き継ぎます。
[ 紛らわしい用語との違い ]
キープアライブ:通信セッションを維持するために送る信号。ほぼ同じ意味で使われることもありますが、ハートビートはより「システムの死活監視(OSやアプリが生きてるか)」の文脈で使われます。
ポーリング:監視側が「生きてる?」と毎回聞きに行くこと。ハートビートは基本、自分から「生きてるよ!」と発信するスタイルです。

1. 理解のコツ: 登山のパーティで、先頭の人が後ろの人に向かって「おーい!」と声を出し続けるようなものです。声(信号)が聞こえなくなったら、何かトラブルがあったとすぐにわかります。
2. 試験対策の視点: 「一定間隔で送信」「正常稼働の通知」「死活監視」という言葉がキーワードです。高可用性(HA)クラスター構成の話題とセットで登場することが多い用語です。


4. まとめ

「ネットワーク上で稼働状況を知らせるために送る信号」。これがハートビートです。システムが沈黙した瞬間に異常を検知し、素早く切り替える。そんな「止まらないシステム」を支える心臓の鼓動です。


PR

【システム構成】サービスを止めずに進化させる!「ローリングアップデート」|情報処理問題1000本ノック

システム全体を一時停止させる「計画停止」は、現代の24時間365日稼働するサービスでは許容されないことが増えています。無停止で新バージョンへ切り替える手法を攻略しましょう。

1. 問題:稼働継続とアップデートの両立

【 問題 】 複数のサーバーやノードで構成されるシステムにおいて、稼働中のノードを一つ、あるいは数個ずつ順番に新しいバージョンへと入れ替えていく手法を何と呼ぶでしょうか?

ア、一斉アップデート   イ、ブルーグリーンデプロイメント   ウ、ローリングアップデート   エ、カナリアリリース

2. 正解:リリース管理に関する正解

正解: ウ、ローリングアップデート(Rolling Update)

3. 解説:サービスを維持しながら「波」のように更新する

「Rolling」という名の通り、車輪が転がるように次々と対象をスライドさせて更新していきます。

【図解:ローリングアップデートの手順】

■ 手順
1. 全4台のうち、まず1台を切り離してアップデートし、復帰させる。
2. 残りの旧バージョンが動いている間に、次の1台をアップデートする。
3. これを繰り返し、最終的にすべてのノードを新バージョンに置き換える。

■ メリット
システム停止が不要:常に一部のノードが稼働しているため、ユーザーはサービスを使い続けられます。
リソース効率が良い:予備のサーバー群を丸ごと用意する必要がなく、既存のリソース内で完結できます。
[ 比較して覚えたい:ブルーグリーンデプロイメント ]
ブルーグリーン:現行環境(Blue)と同じ規模の新しい環境(Green)を丸ごと用意し、ロードバランサーの向きを一気に切り替える手法。瞬時に切り替わりますが、2倍のリソースが必要になります。

1. 理解のコツ: 4人組のアイドルグループが、一人ずつ順番に舞台裏で着替えてステージに戻るようなイメージです。常に誰かが歌っている(サービスが動いている)ため、ライブ(システム)を止める必要がありません。
2. 試験対策の視点: 「順番に」「一部ずつ」「システム停止を避ける」というフレーズが特徴です。クラウドやマイクロサービスの運用において、最も一般的なデプロイ方法の一つとして頻出します。


4. まとめ

「複数のノードを順番に更新し、サービスを維持する」。これがローリングアップデートです。ユーザーに不便を強いることなく、常に最新の機能やセキュリティパッチを適用し続けるための、止まらないシステム運営の基本技術です。

【システム構成】二度届いても動じない!「冪等性(べきとうせい)の担保」|情報処理問題1000本ノック

ネットワークの不安定な環境では、同じリクエストが重複して届くことは珍しくありません。そんな時、システムが二重処理を防ぎ、常に正しい結果を保つための必須概念を攻略しましょう。

1. 問題:重複リクエストへの耐性

【 問題 】 ある操作を1回行っても、失敗したと思って複数回繰り返して行っても、結果が常に同じ(副作用が1回分しか発生しない)ようになる性質を何と呼ぶでしょうか?

ア、一貫性(Consistency)   イ、可用性(Availability)   ウ、冪等性(Idempotency)   エ、原子性(Atomicity)

2. 正解:システム設計・APIに関する正解

正解: ウ、冪等性(べきとうせい)

3. 解説:「何度やっても結果が同じ」という安心感

特に決済システムやメッセージキューを利用した分散システムにおいて、冪等性の担保は設計上の最優先事項の一つです。

【図解:冪等性がある場合とない場合】

■ 冪等性がない例(銀行振込)
・「1万円送金する」という命令を2回送ると、2万円引き落とされる。
・通信エラーで結果が分からない時に再送するのが怖くなる。

■ 冪等性を担保した例
・命令に「リクエストID:A100」を付与する。
・サーバー側で「A100は処理済み」と記録しておけば、2回目が届いても「既に完了しています」と安全に回答できる。
[ HTTPメソッドと冪等性 ]
GET, PUT, DELETE:原則として冪等であるべきとされています(何度消しても、無い状態は変わらない)。
POST:原則として冪等ではありません(送るたびに新しいデータが作られる可能性がある)。

1. 理解のコツ: エレベーターの「行先階ボタン」をイメージしてください。1回押しても、連打しても、結局その階に止まるという「結果」は変わりません。これが冪等性です。
2. 試験対策の視点: 「同じデータが複数回届いても正常に処理できる」「ある操作を何度繰り返しても結果が同一」という表現があれば冪等性です。分散システムにおける「リトライ処理」とセットで出題されることが多いです。


4. まとめ

「同じデータが複数回届いても、正常に処理できることを担保する」。これが冪等性(べきとうせい)です。ネットワークの「もしも」を想定し、二重実行によるデータの不整合を防ぐ、堅牢なシステム設計の要(かなめ)です。


【システム構成】止まらない仕組みの二大巨頭!「冗長化の構成方式」|情報処理問題1000本ノック

システムを多重化する際、予備の機材をどう待機させておくかによって、コストや性能、切り替え時間が大きく変わります。現場でも頻出の2つの構成をマスターしましょう。

1. 問題:冗長化構成の分類

【 問題 】 クラスター構成において、複数のコンポーネントがすべて同時に稼働し、通常時から負荷を分散して処理を行う方式を[   A   ]、稼働系(Active)のみが処理を行い、待機系(Standby)は故障時に備えて待機する方式を[   B   ]と呼びます。空欄に入る適切な組み合わせはどれでしょうか?

ア、A:アクティブ・スタンバイ B:アクティブ・アクティブ
イ、A:アクティブ・アクティブ B:アクティブ・スタンバイ
ウ、A:ホットスタンバイ    B:コールドスタンバイ
エ、A:デュプレックスシステム B:デュアルシステム

2. 正解:高可用性設計に関する正解

正解: イ、A:アクティブ・アクティブ B:アクティブ・スタンバイ

3. 解説:効率重視か、確実性重視か

それぞれの方式には、リソースの活用効率や障害発生時の挙動に明確な違いがあります。

【図解:2つの冗長化方式】

■ Active-Active(アクティブ・アクティブ) ★A
状態:すべての機器が同時に稼働。
メリット:複数台で処理を分担(負荷分散)するため、システム全体の性能が高まる。無駄なリソースがない。
注意点:1台故障すると、残った方の負荷が急増し、性能が低下する可能性がある。

■ Active-Standby(アクティブ・スタンバイ) ★B
状態:1台が本番用として働き、他方は予備として待機。
メリット:構成がシンプルで、切り替え後の性能変化が予測しやすい。
注意点:通常時は予備機が何も処理しないため、リソースのコストパフォーマンスは低い。
[ スタンバイ側の「温まり具合」による分類 ]
アクティブ・スタンバイは、待機状態によってさらに細分化されます。
ホットスタンバイ:予備機もOSを起動し、即座に切り替え可能。
ウォームスタンバイ:OSは起動しているが、アプリケーションは準備中。
コールドスタンバイ:予備機は電源オフ(または別の用途で使用)。

1. 理解のコツ: アクティブ・アクティブは「2人で協力して荷物を運ぶ」イメージ、アクティブ・スタンバイは「1人が運び、もう1人は後ろからついてくる(交代要員)」イメージです。
2. 試験対策の視点: 「負荷分散(ロードバランシング)」というキーワードがあればアクティブ・アクティブ、「切り替え(フェイルオーバー)」という言葉が強調されていればアクティブ・スタンバイを意識しましょう。また、デュアルシステム(同じ処理を2系統で行い結果を照合)との違いもよく問われます。


4. まとめ

「全員で働くか、予備を置いておくか」。これがActive-ActiveActive-Standbyの違いです。システムの要求性能やコスト、許容されるダウンタイムに応じて、最適な構成を選択することが設計の鍵となります。

【システム構成】たった一つの故障が命取り!「単一障害点(SPOF)」|情報処理問題1000本ノック

どれだけ高価なサーバーを並べても、たった一つの部品や回線が共有されているだけで、システム全体が止まってしまうリスクがあります。その「急所」を見つけ出し、対策する考え方を攻略しましょう。

1. 問題:システムの脆弱性と信頼性

【 問題 】 システム構成において、その箇所が故障するとシステム全体が停止してしまうような、冗長化(多重化)されていない単一の箇所を何と呼ぶでしょうか?

ア、ボトルネック   イ、デッドロック   ウ、SPOF(Single Point of Failure)   エ、フェイルセーフ

2. 正解:信頼性設計に関する正解

正解: ウ、SPOF(Single Point of Failure)

※日本語では「単一障害点(たんいつしょうがいてん)」と呼びます。

3. 解説:「鎖の強さは、最も弱い環で決まる」

SPOFをなくすことは、高可用性(ハイアベイラビリティ)を実現するための第一歩です。

【図解:SPOFの具体例と対策】

■ よくあるSPOFの例
ネットワーク:2台のサーバーを繋いでいるが、大元のルーターが1台しかない。
電源:サーバーは二重化したが、電源タップが1つでそこから全ての電力を取っている。
ストレージ:計算機はたくさんあるが、データ保存先が1台のNASに集中している。

■ 対策:冗長化(Redundancy)
・同じ機能を持つ機器を2つ以上用意(多重化)し、一方が故障しても他方が処理を引き継げるように設計します。
[ 関連用語:ボトルネックとの違い ]
SPOF:壊れると「停止」するもの(有無の問題)。
ボトルネック:そこが詰まると「低速」になるもの(性能の問題)。

1. 理解のコツ: どんなに頑丈な吊り橋でも、メインのワイヤーが1本しかなければ、それが切れた瞬間に終わりです。その「1本しかないワイヤー」がSPOFです。ITシステムでは、サーバー、スイッチ、ディスク、さらには電源や回線、時には「特定の作業ができる唯一の担当者」さえもSPOFになり得ます。
2. 実務・試験の視点: システムの稼働率(可用性)を計算する際、SPOFがある構成では、その箇所の稼働率がシステム全体の最大稼働率を制限してしまいます。設計図(構成図)を見て「ここが死んだら全部止まるな」という場所を探す訓練が重要です。


4. まとめ

「多重化されておらず、故障がシステム全体の停止に直結する箇所」。これがSPOF(単一障害点)です。これを見つけ出し、一つずつ消していく作業こそが、止まらないシステムを作るための基本となります。



【コンピュータシステム】外からの合図に即座に対応!「外部割込み」|情報処理問題1000本ノック

CPUがプログラムを実行中に、外部の機器や内部のタイマーから緊急の知らせが入ることがあります。これらを整理して正しく分類できるようにしましょう。

1. 問題:外部割込みの要因

【 問題 】 コンピュータの割込み処理のうち、CPUの外部にある装置やタイマーなど、プログラムの実行状態とは直接関係なく発生する「外部割込み」に該当するものはどれでしょうか?

1. ゼロによる除算(ゼロ除算)
2. 存在しない命令コード(不正命令)の実行
3. タイマーによる設定時間の通知
4. ページフォールト(主記憶にないページへのアクセス)の発生

2. 正解:割込み処理に関する正解

正解: 3. タイマーによる通知

3. 解説:「内部」か「外部」かの境界線

割込みは、その原因が「CPU内部のプログラム実行によるもの」か「CPU外部の要因によるもの」かで大きく2つに分けられます。

【図解:割込みの種類と具体例】

■ 外部割込み ★今回の正解
要因:CPUの外側から発生するイベント。
具体例
 - タイマー割込み:設定した時間が経過した。
 - 入出力割込み:キーボード入力やディスクの読み書き完了。
 - コンソール割込み:オペレーターによる操作。
 - 機械チェック割込み:電源異常やメモリのパリティエラーなど。

■ 内部割込み(ソフトウエア割込み・例外)
要因:プログラムの実行中に、その内容によって発生するもの。
具体例
 - プログラム割込み:ゼロ除算(選択肢1)、不正命令(選択肢2)、オーバーフロー。
 - SVC割込み:OSの機能(システムコール)を呼び出す時。
 - ページフォールト:仮想記憶の制御(選択肢4)。
[ 覚え方のポイント ]
内部割込み:そのプログラムを実行したから「自業自得」で起きたもの(計算ミスやOSへの依頼)。
外部割込み:プログラムの都合に関わらず「外から勝手に」やってくるもの。

1. 理解のコツ: 外部割込みは、いわば「外からの呼び鈴」です。作業の手を止めて玄関へ向かうように、CPUは現在の状態を一時保存して、割り込んできた緊急事態(入力対応や時間管理)を優先して処理します。
2. 試験対策の視点: 「ゼロ除算」と「タイマー」は、内部と外部を区別する問題で最もよく使われる典型的なキーワードです。この2つの違いを基準に覚えるのが効率的です。


4. まとめ

「プログラムの実行とは無関係に外から発生する」。これが外部割込みです。コンピュータが時間通りに動作したり、私たちの入力に即座に反応したりできるのは、この割込みの仕組みがあるおかげです。

【システム構成】拡張性の切り札!「シェアードナッシング・アーキテクチャ」|情報処理問題1000本ノック

膨大なデータを扱う現代のシステムでは、1台の性能を上げる(スケールアップ)よりも、台数を増やして性能を上げる(スケールアウト)設計が主流です。その中核となる「共有しない」設計思想を攻略しましょう。

1. 問題:データベースの分散構成

【 問題 】 複数のノード(サーバ)で構成されるシステムにおいて、各ノードが自身のCPU、メモリ、およびディスク(データベース)を専有し、他のノードとリソースを共有せずに独立して処理を行うアーキテクチャを何と呼ぶでしょうか?

ア、シェアードディスク   イ、シェアードナッシング   ウ、メインフレーム   エ、密結合マルチプロセッサ

2. 正解:システム構成要素に関する正解

正解: イ、シェアードナッシング

3. 解説:リソースの競合を徹底的に排除する

シェアードナッシング(Shared Nothing)は、その名の通り「何も共有しない」構成です。データベースを物理的・論理的に分離し、各プロセスが自分の担当するデータだけを処理します。

【図解:シェアードナッシングの特徴】

■ 独立したリソース
・各ノードが「CPU+メモリ+ディスク」のセットを持ち、自分専用のデータベースを扱います。

■ 高いスケーラビリティ
・リソースの奪い合い(排他制御の待ち時間)が発生しにくいため、ノードを増やした分だけ直線的に性能が向上しやすくなります。

■ 障害の局所化
・1つのノードが故障しても、他のノードのリソースは独立しているため、システム全体が停止するリスクを抑えられます。
[ 他の方式との比較 ]
シェアードディスク:複数のノードで1つの大きなディスク(DB)を共有する方式。データの整合性は取りやすいが、ディスクアクセスがボトルネックになりやすい。
パーティショニング:データを特定の規則で分割して各ノードに配置する技術。シェアードナッシングを実現するための重要な要素です。

1. 理解のコツ: 「1つの大きなピザをみんなで囲んで食べる(シェアードディスク)」のではなく、「それぞれが自分の弁当箱を持っている(シェアードナッシング)」状態をイメージしてください。自分の弁当を食べるだけなら、隣の人と手がぶつかる心配(競合)がなく、人数が増えてもスムーズに食事が進みます。
2. 試験対策の視点: 「スケーラビリティ(拡張性)」や「ノードの追加による性能向上」という文脈でよく出題されます。また、Google CloudのAlloyDBやTiDBなどの最新データベースも、内部的にはこの分散思想を高度に応用しているため、実務でも非常に重要な概念です。


4. まとめ

「DBを分離し、プロセスごとに独立して利用する」。これがシェアードナッシングです。リソースの競合という壁を壊し、無限に近い拡張性を実現するための現代的なシステム構成であることを押さえておきましょう!



【システム構成要素】複雑な通信をスマートに管理!「サービスメッシュ」|情報処理問題1000本ノック


システムを小さなサービスの集合体として構築する「マイクロサービス」。サービスが増えるほど難しくなる「サービス間の通信」を一括管理する仕組みを攻略しましょう。

1. 問題:マイクロサービス間の通信制御

【 問題 】 マイクロサービスアーキテクチャにおいて、サービス間の通信(サービス間連携)を制御するためのインフラ層のことを何と呼ぶでしょうか? 認証・認可、暗号化、リトライ(再送)、動的なルーティングなどをアプリケーションコードから分離して実現します。

① APIゲートウェイ   ② サービスメッシュ   ③ コンテナオーケストレーション   ④ ロードバランサ

2. 正解:システムアーキテクチャに関する正解

正解: ② サービスメッシュ

3. 解説:アプリケーションを通信の悩みから解放する

サービスメッシュは、各サービスの横に「サイドカー(プロキシ)」を配置し、通信処理をすべてそのプロキシに任せる仕組みです。これにより、開発者は「通信が失敗したらどうするか」というコードを書かずに、ビジネスロジックに集中できます。

【図解:サイドカーパターンのイメージ】

[ サービスA ] ─── [ プロキシ ]
                      │ (認証・暗号化・再送)
[ サービスB ] ─── [ プロキシ ]

サービスメッシュが提供する主な機能
可観測性:どのサービス間が混雑しているか可視化する。
トラフィック制御:A/Bテストやカナリアリリースを容易にする。
セキュリティ:サービス間の通信を自動で暗号化(mTLS)する。
回復性:タイムアウト設定や再送、サーキットブレーカーを適用する。
[ 関連用語の整理 ]
サイドカー (Sidecar):主となるアプリケーションと同じ場所に配置される補助的なプロキシ(例:Envoy)。
コントロールプレーン:メッシュ全体のポリシーを管理・配布する司令塔(例:Istio)。
サーキットブレーカー:通信エラーが続く際、一時的に遮断して連鎖的なシステムダウンを防ぐ仕組み。

1. 理解のコツ: サービス同士が直接話すのではなく、それぞれに「専属の秘書(プロキシ)」をつけて、秘書同士が複雑な調整(認証や再送)を行うイメージです。網目(メッシュ)のように張り巡らされた通信経路を、一元管理する「見えないインフラ」だと考えましょう。
2. 試験対策の視点: 「マイクロサービス間」「認証・認可」「再送処理の一括管理」というキーワードが出たらサービスメッシュです。APIゲートウェイとの違いは、APIゲートウェイが「外部からの入り口」を守るのに対し、サービスメッシュは「内部同士の通信」を支える構成要素である点にあります。


4. まとめ

「サービス間の通信機能をインフラ層として切り出し、網目状に管理する」。これがサービスメッシュです。システムの規模が大きくなっても、安全かつ確実に通信を繋ぎ続けるための現代的なアーキテクチャであることを押さえておきましょう!



【システム構成要素】すべてを共有して処理する!シェアードエブリシングの定義|情報処理問題1000本ノック

複数の処理装置が一つの大きなリソースを分かち合う。並列システムにおける基本的な設計思想の一つである「シェアードエブリシング」の概念を整理しましょう。

1. 問題:同一のリソースを共有するアーキテクチャ

【 問題 】 システム構成において、複数のプロセッサが同一のメインメモリやディスク装置(データベース)を共有し、各プロセッサがすべてのデータに直接アクセスして処理を行うアーキテクチャを何と呼ぶでしょうか?

① シェアードナッシング   ② シェアードエブリシング   ③ マイクロサービス   ④ マルチテナント

2. 正解:システム構成の分類に関する正解

正解: ② シェアードエブリシング

3. 解説:リソースの共有による密な連携

名前の通り、メモリやディスクといったすべてのリソースを「エブリシング(すべて)」共有する仕組みです。どのプロセスからでも同じデータにアクセスできるため、プロセッサ間でのデータ転送が不要であり、複雑なデータ整合性の管理が比較的容易になるという特徴があります。

[ シェアードエブリシングのポイント ]
定義:複数のプロセッサが、単一のメモリや共有ディスクを介して同一のデータベースを操作する構造。
メリット:負荷分散(ロードバランシング)が行いやすく、小中規模の構成では高い効率を発揮します。
課題:プロセッサ数が増えると、共有メモリやディスクへのアクセス競合(渋滞)が発生し、拡張性に限界が生じやすくなります。

[ 他の選択肢との違い ]
シェアードナッシング:各ノードが独自のメモリとディスクを持ち、何も共有しない構成。大規模拡張に向きます。
マイクロサービス:システム全体をビジネス機能単位で小さな独立したサービスに分割する設計思想。
マルチテナント:一つのシステム環境を、論理的に複数の顧客(テナント)で共有して利用する形態。

1. 理解のコツ: 「みんなで一つの机(リソース)を囲んで作業する」のがシェアードエブリシング、「一人一台ずつ専用の机を持つ」のがシェアードナッシングだとイメージすると、違いが明確になります。
2. 試験対策の視点: システムアーキテクチャの設計において、高可用性を実現するクラスタ構成などの文脈で頻出します。特に「共有ディスク(同一のデータベース)を使っているかどうか」が、シェアードナッシングとの判別ポイントです。


4. まとめ

「複数のプロセスで、同一のデータベースを共有する」。これがシェアードエブリシングの核となる定義です。システムを拡張する際の「リソース競合」がボトルネックになりやすいという弱点とセットで覚えておきましょう!



【システム構成要素】ビジネス単位で小さく分ける!マイクロサービスの定義|情報処理問題1000本ノック

巨大な一つの塊(モノリス)としてシステムを作る時代から、小さな独立したサービスを組み合わせる時代へ。現代のシステム設計における基本思想となった「マイクロサービス」の定義を整理しましょう。

1. 問題:小さなアプリケーションを組み合わせる構造

【 問題 】 システム全体を一塊として構築するのではなく、ビジネス上の関心ごとに基づいて独立した「可能な限り小さなアプリケーション」に分割し、それらを連携させて一つの大きなシステムを構成する手法を何と呼ぶでしょうか?

① サービス指向アーキテクチャ (SOA)   ② マイクロサービス   ③ 3層アーキテクチャ   ④ サーバレスアーキテクチャ

2. 正解:アーキテクチャの分類に関する正解

正解: ② マイクロサービス

3. 解説:ビジネスの単位でシステムを切り分ける

「注文管理」「在庫管理」「配送管理」といったビジネス機能ごとに、独立したサービスとして作成します。一つの機能を修正しても他の機能に影響を与えにくいため、特定の機能だけを迅速にアップデートしたり、必要な部分だけを拡張したりすることが可能になります。



[ マイクロサービスのポイント ]
構成単位:ビジネス上の関心ごとに基づき、可能な限り小さく分割されたアプリケーション。
独立性:各サービスは独自のデータベースを持ち、個別にデプロイ(展開)が可能です。
連携:APIなどの軽量な通信手段を用いて、互いにサービスを呼び出し合います。

[ 他の選択肢との違い ]
SOA (Service Oriented Architecture):企業全体の業務プロセスを「サービス」として統合する、より大規模・重厚な連携の考え方。
3層アーキテクチャ:UI・ビジネスロジック・データの「階層」で分ける、垂直的な設計手法。
サーバレス:インフラの存在を意識せずにプログラムを実行する「プラットフォーム」の形態。

1. 理解のコツ: マイクロサービスは、単なる技術的な分割ではなく「ビジネスの柔軟性」を高めるための戦略です。試験では「ビジネス上の関心ごと」「独立性」「小さなアプリケーションの集合」といったキーワードが正解の決め手となります。
2. 最新トレンドの視点: マイクロサービス化を進めると、管理すべきサービス数が膨大になります。そのため、各サービスの健全性を監視する技術や、サービス同士の通信を制御する「サービスメッシュ」といった技術がセットで語られることが多くなっています。


4. まとめ

「ビジネスの関心ごとで、可能な限り小さく作る」。これがマイクロサービスの核となる考え方です。この定義をしっかり押さえておけば、モノリス(一塊)やSOAとの違いを問う問題にも迷わず解答できます!