基本情報技術者 2017年 春期 午前(科目A) 問12
問題文
システムの性能を向上させるために、スケールアウトが適しているシステムはどれか。
選択肢
ア:一連の大きな処理を一括して実行しなければならないので、並列処理が困難な処理が中心のシステム
イ:参照系のトランザクションが多いので、複数のサーバで分散処理を行っているシステム(正解)
ウ:データを追加するトランザクションが多いので、データの整合性を取るためのオーバヘッドを小さくしなければならないシステム
エ:同一のマスタデータベースがシステム内に複数配置されているので、マスタを更新する際にはデータベース間で整合性を保持しなければならないシステム
🔒 解説は解答すると表示されます
スケールアウト適用領域【午前解説】
正解の理由
正解: イ
イは「参照系のトランザクションが多いので、複数のサーバで分散処理を行っているシステム」です。参照(読み取り)中心の負荷は、ステートレスなリクエストとして複数サーバに分散しやすく、レプリカ(読み取り専用レプリカ)やロードバランサを追加するだけで処理能力を水平に増やせます。スケールアウトの本来の利点(ノード追加による並列処理、可用性向上、コスト効率)が最大限活きる典型的なケースです。
イは「参照系のトランザクションが多いので、複数のサーバで分散処理を行っているシステム」です。参照(読み取り)中心の負荷は、ステートレスなリクエストとして複数サーバに分散しやすく、レプリカ(読み取り専用レプリカ)やロードバランサを追加するだけで処理能力を水平に増やせます。スケールアウトの本来の利点(ノード追加による並列処理、可用性向上、コスト効率)が最大限活きる典型的なケースです。
解法ステップ
- 問題文で「読み取り(参照)」「書き込み(更新)」「大規模一括処理」など負荷の種類を識別する。
- 読み取り中心なら状態共有が少ないと判断し、スケールアウトが有利と結論づける。
- 書き込み集中や強整合性が必要ならスケールアップや分割(シャーディング)設計を検討する。
- 選択肢と照合して、読み取り分散を明示しているものを選ぶ。
選択肢別の誤答解説
- ア: 一連の大きな処理を一括して実行しなければならないので、並列処理が困難な処理が中心のシステム
→ 誤り。大きな一括処理やシリアル処理が中心なら並列化が難しく、単一ノードの高性能化(スケールアップ)やバッチ最適化が適します。 - イ: 参照系のトランザクションが多いので、複数のサーバで分散処理を行っているシステム
→ 正解。読み取り中心で状態共有が少ないため、読み取りレプリカやロードバランサを追加して性能を向上できます。 - ウ: データを追加するトランザクションが多いので、データの整合性を取るためのオーバヘッドを小さくしなければならないシステム
→ 誤り。書き込みが多い場合、スケールアウトで整合性維持のオーバヘッドが増えるためスケールアップや慎重なシャーディング・同期設計が必要です。 - エ: 同一のマスタデータベースがシステム内に複数配置されているので、マスタを更新する際にはデータベース間で整合性を保持しなければならないシステム
→ 誤り。マスタ更新時の整合性確保が問題であり、単純な水平スケールでは整合性管理が複雑になります。書き込み同期や分散トランザクション設計が必要です。
よくある誤解
- スケールアウトはすべての性能問題を解決する:書き込み集約や強い整合性が必要な処理では、ネットワークや同期オーバーヘッドで逆に劣化することがあります。
- マスタデータが複数あるならスケールアウトで簡単に対応できる:更新時の整合性維持が難しく、同期方式やコンフリクト解決を設計する必要があります。
補足コラム
- 実務での典型例:Webサイトの閲覧(商品一覧、記事閲覧)は読み取りが多いため、読み取りレプリカ+ロードバランサでスケールアウトしやすいです。
- 技術要素:読み取りキャッシュ(Redis等)、読み取りレプリカ、CDN、ロードバランサがスケールアウトを支える主要技術です。
- 留意点:スケールアウトはノード間のネットワークやデータ整合性戦略(整合性レベル:強整合性 vs 最終整合性)を設計に組み込む必要があります。
FAQ
Q1: スケールアウトとスケールアップの違いは何ですか?
A1: スケールアウトはノードを横に増やす(水平拡張)、スケールアップは既存ノードのCPUやメモリなどを強化する(垂直拡張)手法です。
A1: スケールアウトはノードを横に増やす(水平拡張)、スケールアップは既存ノードのCPUやメモリなどを強化する(垂直拡張)手法です。
Q2: 読み取り中心なら必ずスケールアウトすべきですか?
A2: 多くの場合有効ですが、データ整合性や運用コスト、アプリケーションのステートフル性などを総合的に判断すべきです。
A2: 多くの場合有効ですが、データ整合性や運用コスト、アプリケーションのステートフル性などを総合的に判断すべきです。
Q3: 書き込みが多い場合にスケールアウトは完全に無効ですか?
A3: 無効ではありません。シャーディングや分散トランザクション、最終整合性を許容する設計を組み合わせれば可能ですが、設計と運用が複雑になります。
A3: 無効ではありません。シャーディングや分散トランザクション、最終整合性を許容する設計を組み合わせれば可能ですが、設計と運用が複雑になります。
関連キーワード: スケールアウト、スケールアップ、レプリケーション、シャーディング、ロードバランサ、読み取りキャッシュ、整合性管理、負荷分散、最終整合性、可用性

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

