Web 3層構成

作成: 2026.03.24更新: 2026.03.24

Web 3層構成とは

Web 3層構成(3-Tier Architecture)は、システムを Web サーバーAP サーバー(アプリケーションサーバー)DB サーバー(データベースサーバー) の 3 つの層に分離して構築するアーキテクチャである。SIer の業務システムにおいて最も一般的なサーバー構成であり、エンタープライズシステムの基本形といえる。

なぜ SIer で重要か

SIer が構築する業務システム(社内業務システム、ECサイト、金融システム等)のほとんどは、この 3 層構成をベースに設計されている。設計書のインフラ構成図を読む際も、障害発生時にどのサーバーに問題があるかを切り分ける際も、3 層構成の理解が前提となる。

新人であっても「この処理は AP サーバーで動いている」「DB サーバーとの通信がタイムアウトした」といった会話を日常的に耳にするため、各層の役割を正しく理解しておく必要がある。

基本概念

3層構成の全体像

                          Web 3層構成

  クライアント         Web 層            AP 層            DB 層
 ┌────────┐     ┌──────────┐    ┌──────────┐    ┌──────────┐
 │          │     │            │    │            │    │            │
 │ ブラウザ  │────→│ Web サーバー │───→│ AP サーバー │───→│ DB サーバー │
 │          │←────│            │←───│            │←───│            │
 │          │     │ Apache     │    │ Tomcat     │    │ PostgreSQL │
 │          │     │ Nginx      │    │ WildFly    │    │ Oracle     │
 └────────┘     └──────────┘    └──────────┘    └──────────┘
                   静的コンテンツ     ビジネスロジック    データの
                   リバースプロキシ   セッション管理     永続化

各層の役割

Web 層(プレゼンテーション層)

クライアント(ブラウザ)からのリクエストを最初に受け付ける層である。

  • 静的コンテンツの配信 --- HTML、CSS、JavaScript、画像ファイル等をクライアントに返す
  • リバースプロキシ --- 受け取ったリクエストを後段の AP サーバーに転送する
  • SSL/TLS 終端 --- HTTPS 通信の暗号化・復号をここで処理する
  • 負荷分散 --- 複数の AP サーバーにリクエストを振り分ける

代表的な製品は Apache HTTP ServerNginx である。

AP 層(アプリケーション層)

ビジネスロジック(業務処理)を実行する層である。システムの中核を担う。

  • ビジネスロジックの実行 --- 業務ルールに基づくデータの処理・計算・判定
  • セッション管理 --- ログイン状態などのユーザー情報の保持
  • トランザクション管理 --- DB への更新処理の整合性を制御
  • 外部システム連携 --- API 呼び出しやメッセージキューとの連携

代表的な製品は Apache TomcatWildFly(旧 JBoss)WebLogic である。

DB 層(データ層)

データの永続的な保存と検索・更新処理を担う層である。

  • データの永続化 --- 業務データをテーブルに保存
  • クエリ処理 --- SQL による検索・挿入・更新・削除の実行
  • データの整合性保証 --- 制約やトランザクションによるデータ品質の維持
  • バックアップ・リカバリ --- データの損失防止と復旧

代表的な製品は PostgreSQLOracle DatabaseMySQLSQL Server である。

なぜ 3 層に分離するか

観点説明
役割分離各層が独立した責務を持つことで、設計・開発・運用がしやすくなる
スケーラビリティ負荷が高い層だけサーバーを増設できる(例: AP サーバーだけ 2 台→4 台)
セキュリティ層ごとにネットワークを分離し、外部から DB サーバーに直接アクセスさせない
保守性Web サーバーの設定変更が AP サーバーやDB に影響しない

SIer での使われ方

冗長化構成

本番環境では、各層のサーバーを 2 台以上配置して冗長化することが一般的である。1 台が故障してもシステムが停止しないようにするためである。

                     冗長化された 3層構成

                     ┌──────────┐
               ┌────→│ Web サーバー①│────┐
 [ロードバランサー]──┤    └──────────┘    ├→[AP①]──┐
               └────→┌──────────┐    │  [AP②]──┼→[DB(主系)]
                     │ Web サーバー②│────┘         │  [DB(副系)]
                     └──────────┘              └→  ↑
                                                  レプリケーション
  • ロードバランサー(LB) が複数の Web サーバーにリクエストを振り分ける
  • AP サーバーも複数台構成にし、Web サーバーから負荷分散する
  • DB サーバーは主系(プライマリ)と副系(スタンバイ)でレプリケーションを行う

環境の種類

SIer のプロジェクトでは、同じ 3 層構成を複数の環境で用意する。

環境用途規模
開発環境開発者がコーディング・単体テストを行う最小構成(1 台ずつ)
検証環境(ステージング)結合テスト・総合テストを行う本番に近い構成
本番環境実際のユーザーが利用する冗長化された完全構成

MVC パターンとの対応関係

アプリケーション設計で使われる MVC パターンと 3 層構成は、以下のように対応する。

MVC の役割3層構成での対応
View(画面表示)Web 層で配信される HTML/CSS/JavaScript
Controller + Model(処理)AP 層で実行されるビジネスロジック
データ永続化DB 層で管理されるデータ

ただし、この対応は厳密なものではない。例えば、JSP や Thymeleaf による View の生成は AP サーバー上で行われる。あくまで概念的な対応として理解しておくとよい。

まとめ

  • Web 3層構成は Web サーバー / AP サーバー / DB サーバーの 3 層にシステムを分離するアーキテクチャである
  • Web 層はリクエスト受付と静的コンテンツ配信、AP 層はビジネスロジック実行、DB 層はデータの永続化を担う
  • 役割分離・スケーラビリティ・セキュリティの観点から 3 層に分ける
  • 本番環境では各層を冗長化し、ロードバランサーで負荷分散するのが一般的である
  • SIer の設計書やインフラ構成図を理解するための前提知識となる