基本情報技術者 2018年 秋期 午前(科目A) 問13
問題文
Webシステムにおいて、Webサーバとアプリケーション(AP)サーバを異なる物理サーバに配置する場合のメリットとして、適切なものはどれか。
選択肢
ア:Webサーバにクライアントの実行環境が実装されているので、リクエストのたびにクライアントとAPサーバの間で画面データをやり取りする必要がなく、データ通信量が少なくて済む。
イ:Webブラウザの文字コード体系とAPサーバの文字コード体系の違いをWebサーバが吸収するので、文字化けが発生しない。
ウ:データへのアクセスを伴う業務ロジックは,Webサーバのプログラムに配置されているので、業務ロジックの変更に伴って,APサーバのプログラムを変更する必要がない。
エ:負荷が軽い静的コンテンツへのリクエストはWebサーバで処理し、負荷が重い動的コンテンツへのリクエストはAPサーバで処理するように、クライアントからのリクエストの種類に応じて処理を分担できる。(正解)
WebサーバとAPサーバを異なる物理サーバに配置する場合のメリット【午前2 解説】
要点まとめ
- 結論:WebサーバとAPサーバを別物理サーバに分離すると、静的と動的処理を役割分担して全体の負荷分散と応答性を向上できます。
- 根拠:Webサーバは静的コンテンツ配信やキャッシュ、SSL終端を効率的に処理し、APサーバは業務ロジックやDBアクセスに専念できるため処理効率が上がります。
- 差がつくポイント:静的通信量をWebサーバ側で捌き、動的処理はAP側でスケールさせる設計は、運用・拡張や障害切り分けで有利になります。
正解の理由
選択肢の中で正しいのは、静的コンテンツと動的コンテンツを処理の性質に応じて分担できる点を述べたものです。Webサーバは画像やCSSなど軽量で頻繁にアクセスされる静的ファイルを効率的に返し、APサーバはCPUやDBアクセスを伴う動的生成を担当します。これにより負荷の高い処理を専用サーバに集約してスケールアウトやチューニングが容易になり、全体の性能と可用性が向上します。したがって、正解は エ です。
よくある誤解
- Webサーバが「クライアントの実行環境」を内包していると誤解する:Webサーバはブラウザの実行環境を持たず、クライアント側処理はブラウザで行われます。
- 文字コードの不一致をWebサーバが自動解決すると考える:文字コードは送受信時のエンコーディング指定やアプリ側の変換処理が必要で、全自動で解決されるわけではありません。
- 業務ロジックをWebサーバに置けばAPサーバに手を入れなくてよいと誤認する:逆にロジック分散は保守性を低下させ、APサーバと役割を混乱させます。
解法ステップ
- 問題文を読み「Webサーバ」と「APサーバ」の役割分担(静的 vs 動的)を明確化する。
- 各選択肢がその役割分担に合致しているかを検証する(性能・負荷・文字コード・ロジック配置など)。
- 「静的は軽い、動的は重い」という観点で処理を分担できる記述を正解として選ぶ(該当はエ)。
選択肢別の誤答解説
- ア: Webサーバにクライアント実行環境がある、という前提が誤りです。クライアント実行はブラウザ等が担当し、Webサーバは静的配信やプロキシ等を行います。よって誤り。
- イ: 文字コードの変換は送受信時やアプリケーション側の処理で行う必要があり、Webサーバが全て吸収するわけではありません。文字化け対策はヘッダや内部処理で管理するため誤り。
- ウ: 業務ロジックをWebサーバ側に置くと、APサーバの利点(集中的な業務処理・スケール)が失われ、保守性も下がります。設問は別サーバ配置のメリットを問うため誤り。
- エ: 負荷の軽い静的コンテンツはWebサーバで処理し、負荷の高い動的コンテンツをAPサーバで処理することで負荷分散やスケールの利点が得られる点を正確に述べているため正解。
補足コラム
- 実運用ではWebサーバ(例:nginx, Apache)をリバースプロキシ/キャッシュとして使い、APサーバ(例:Tomcat, Node.js)へプロキシする構成が一般的です。
- SSL終端やキャッシュ、静的ファイル配信をWeb層に任せるとAP層のリソースを節約できます。さらにCDNを併用すると静的負荷をさらに削減できます。
- 注意点としてサーバ間通信のレイテンシやセッション管理(セッションの共有やステートレス設計)、ログの一元化など運用面の設計が必要です。
FAQ
Q: いつ必ず分離すべきですか?
A: 小規模サイトでは単一サーバでも問題ありませんが、トラフィック増加やセキュリティ要件、スケーラビリティを考えると分離が有利になります。
Q: セッション管理はどうするべきですか?
A: セッションをAPサーバで保持する場合は共有ストレージかステートレス化(JWTなど)やセッションDB/キャッシュを導入します。
Q: Webサーバにできる最適化例は?
A: 静的ファイルのキャッシュ制御、Gzip/Brotli圧縮、HTTP/2対応、SSL終端、リバースプロキシでの負荷分散などがあります。
A: 小規模サイトでは単一サーバでも問題ありませんが、トラフィック増加やセキュリティ要件、スケーラビリティを考えると分離が有利になります。
Q: セッション管理はどうするべきですか?
A: セッションをAPサーバで保持する場合は共有ストレージかステートレス化(JWTなど)やセッションDB/キャッシュを導入します。
Q: Webサーバにできる最適化例は?
A: 静的ファイルのキャッシュ制御、Gzip/Brotli圧縮、HTTP/2対応、SSL終端、リバースプロキシでの負荷分散などがあります。
関連キーワード: Webサーバ、APサーバ、静的コンテンツ、動的コンテンツ、負荷分散、スケーラビリティ、キャッシュ、リバースプロキシ、SSL終端、セッション管理

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

