[テンプレ]インフラ システム構成図

関連テンプレ構成
テンプレート
# システム構成

## 環境定義一覧

本システムでは、以下の環境を構築する。

| 環境名 | 用途 | 構成 | アクセス制限 |
|--------|------|------|------------|
| 開発環境(Dev) | 開発・単体テスト | 単一サーバー | 開発者のみ |
| テスト環境(Test) | 結合テスト・受入テスト | 本番同等の冗長構成 | 開発者・QA・ユーザー |
| ステージング環境(Staging) | リリース前検証 | 本番同等の冗長構成 | 運用チームのみ |
| 本番環境(Production) | 本番稼働 | 冗長構成 | 運用チームのみ |

**環境間のデータ移行ルール**
- 本番データは開発環境に直接コピーしない(個人情報保護のため)
- テストデータは匿名化・マスキング処理後に使用
- 環境間でのコード移行はCI/CDパイプラインを経由

---

## システム構成図

システム全体の構成を以下に示す。

![システム構成図](./diagrams/system-architecture.drawio.svg)

**構成図作成ツール**: [draw.io](https://draw.io) を使用して作成

**主要コンポーネント**
- Webサーバー: Nginx(リバースプロキシ・SSL終端)
- アプリケーションサーバー: Node.js / Java(Spring Boot)
- データベース: PostgreSQL / MySQL
- キャッシュ: Redis
- メッセージキュー: RabbitMQ / AWS SQS
- ストレージ: S3(ファイル保存)

---

## サーバー構成

### サーバー一覧

| サーバー種別 | ホスト名 | OS | スペック | 台数 | 用途 |
|------------|---------|----|---------|----|------|
| Webサーバー | web-01, web-02 | Ubuntu 22.04 | 4vCPU, 8GB RAM | 2 | リバースプロキシ・静的コンテンツ配信 |
| APサーバー | app-01, app-02 | Ubuntu 22.04 | 8vCPU, 16GB RAM | 2 | アプリケーション実行 |
| DBサーバー | db-primary | Ubuntu 22.04 | 16vCPU, 64GB RAM, SSD 500GB | 1 | データベース(プライマリ) |
| DBサーバー | db-standby | Ubuntu 22.04 | 16vCPU, 64GB RAM, SSD 500GB | 1 | データベース(スタンバイ) |
| キャッシュサーバー | cache-01, cache-02 | Ubuntu 22.04 | 4vCPU, 16GB RAM | 2 | Redis(マスター・レプリカ) |
| バッチサーバー | batch-01 | Ubuntu 22.04 | 8vCPU, 16GB RAM | 1 | バッチ処理 |

### サーバー構成図

![サーバ構成図](./diagrams/server-architecture.drawio.svg)

---

## ミドルウェア構成

### ミドルウェア一覧

| カテゴリ | 製品名 | バージョン | 用途 |
|---------|--------|----------|------|
| OS | Ubuntu Server | 22.04 LTS | サーバーOS |
| Webサーバー | Nginx | 1.24.x | リバースプロキシ・SSL終端 |
| アプリケーションサーバー | Node.js | 20.x LTS | バックエンドAPI実行 |
| データベース | PostgreSQL | 15.x | メインデータベース |
| キャッシュ | Redis | 7.x | セッション管理・キャッシュ |
| メッセージキュー | RabbitMQ | 3.12.x | 非同期処理 |
| 監視 | Prometheus + Grafana | Latest | メトリクス収集・可視化 |
| ログ管理 | Fluentd + Elasticsearch | Latest | ログ収集・検索 |

### ミドルウェア構成図

各サーバーにインストールされるミドルウェアの構成を以下に示す。

![ミドルウェア構成図](./diagrams/middleware-architecture.drawio.svg)

---

## ネットワーク構成

### ネットワーク構成図

![ネットワーク構成図](./diagrams/network-architecture.drawio.svg)

---

### ネットワークセグメント一覧

| セグメント名 | ネットワークアドレス | 用途 | 接続可能範囲 |
|------------|------------------|------|-----------|
| Public Subnet | 10.0.1.0/24 | ロードバランサー・NATゲートウェイ | インターネット |
| Private Subnet 1 | 10.0.10.0/24 | Webサーバー | Public Subnet, Private Subnet 2 |
| Private Subnet 2 | 10.0.20.0/24 | アプリケーションサーバー | Private Subnet 1, 3 |
| Private Subnet 3 | 10.0.30.0/24 | データベース・キャッシュ | Private Subnet 2 |

### ファイアウォールルール

**インバウンドルール**
| 送信元 | 宛先 | プロトコル | ポート | 許可/拒否 |
|-------|------|----------|--------|---------|
| インターネット | ロードバランサー | HTTPS | 443 | 許可 |
| ロードバランサー | Webサーバー | HTTP | 80 | 許可 |
| Webサーバー | アプリケーションサーバー | HTTP | 8080 | 許可 |
| アプリケーションサーバー | データベース | PostgreSQL | 5432 | 許可 |
| アプリケーションサーバー | キャッシュ | Redis | 6379 | 許可 |
| 管理端末 | 全サーバー | SSH | 22 | 許可(VPN経由) |

---

## ハードウェア構成(オンプレミス環境の場合)

### 物理サーバー仕様

| サーバー種別 | 型番 | CPU | メモリ | ストレージ | ネットワーク | 台数 |
|------------|------|-----|--------|----------|-----------|------|
| Webサーバー | Dell PowerEdge R450 | Xeon Silver 4314 (16コア) | 64GB | SSD 480GB × 2 (RAID1) | 10GbE × 2 | 2 |
| APサーバー | Dell PowerEdge R650 | Xeon Gold 5320 (26コア) | 128GB | SSD 960GB × 2 (RAID1) | 10GbE × 2 | 2 |
| DBサーバー | Dell PowerEdge R750 | Xeon Gold 6338 (32コア) | 512GB | NVMe SSD 1.92TB × 4 (RAID10) | 25GbE × 2 | 2 |

### ネットワーク機器

| 機器種別 | 型番 | ポート数 | 用途 | 台数 |
|---------|------|---------|------|------|
| コアスイッチ | Cisco Catalyst 9300 | 48ポート (10GbE) | サーバー間通信 | 2 (冗長構成) |
| ファイアウォール | Palo Alto PA-3220 | 16ポート (10GbE) | 外部接続・セキュリティ | 2 (Active-Standby) |
| ロードバランサー | F5 BIG-IP 4000s | 8ポート (10GbE) | 負荷分散 | 2 (Active-Standby) |

### ストレージ

| 種別 | 型番 | 容量 | 接続方式 | 用途 | 台数 |
|------|------|------|---------|------|------|
| SAN | Dell PowerStore 500T | 50TB (実効容量) | iSCSI (10GbE) | データベース用ストレージ | 1 |
| NAS | QNAP TS-h1290FX | 100TB | NFS/SMB (10GbE) | ファイル共有・バックアップ | 1 |

### ラック構成図

物理的なラック配置を以下に示す。

![ラック構成図](./diagrams/rack-layout.drawio.svg)

**ラック配置の考慮事項**
- 冗長構成のサーバーは別ラックに配置(電源・ネットワーク障害の影響を最小化)
- 重量のある機器(ストレージ・UPS)は下段に配置
- 発熱量の多い機器は空調効率を考慮して配置

---
プレビュー

システム構成

環境定義一覧

本システムでは、以下の環境を構築する。

環境名 用途 構成 アクセス制限
開発環境(Dev) 開発・単体テスト 単一サーバー 開発者のみ
テスト環境(Test) 結合テスト・受入テスト 本番同等の冗長構成 開発者・QA・ユーザー
ステージング環境(Staging) リリース前検証 本番同等の冗長構成 運用チームのみ
本番環境(Production) 本番稼働 冗長構成 運用チームのみ

環境間のデータ移行ルール

  • 本番データは開発環境に直接コピーしない(個人情報保護のため)
  • テストデータは匿名化・マスキング処理後に使用
  • 環境間でのコード移行はCI/CDパイプラインを経由

システム構成図

システム全体の構成を以下に示す。

Image in a image block

構成図作成ツール: draw.io を使用して作成

主要コンポーネント

  • Webサーバー: Nginx(リバースプロキシ・SSL終端)
  • アプリケーションサーバー: Node.js / Java(Spring Boot)
  • データベース: PostgreSQL / MySQL
  • キャッシュ: Redis
  • メッセージキュー: RabbitMQ / AWS SQS
  • ストレージ: S3(ファイル保存)

サーバー構成

サーバー一覧
サーバー種別 ホスト名 OS スペック 台数 用途
Webサーバー web-01, web-02 Ubuntu 22.04 4vCPU, 8GB RAM 2 リバースプロキシ・静的コンテンツ配信
APサーバー app-01, app-02 Ubuntu 22.04 8vCPU, 16GB RAM 2 アプリケーション実行
DBサーバー db-primary Ubuntu 22.04 16vCPU, 64GB RAM, SSD 500GB 1 データベース(プライマリ)
DBサーバー db-standby Ubuntu 22.04 16vCPU, 64GB RAM, SSD 500GB 1 データベース(スタンバイ)
キャッシュサーバー cache-01, cache-02 Ubuntu 22.04 4vCPU, 16GB RAM 2 Redis(マスター・レプリカ)
バッチサーバー batch-01 Ubuntu 22.04 8vCPU, 16GB RAM 1 バッチ処理
サーバー構成図
Image in a image block

ミドルウェア構成

ミドルウェア一覧
カテゴリ 製品名 バージョン 用途
OS Ubuntu Server 22.04 LTS サーバーOS
Webサーバー Nginx 1.24.x リバースプロキシ・SSL終端
アプリケーションサーバー Node.js 20.x LTS バックエンドAPI実行
データベース PostgreSQL 15.x メインデータベース
キャッシュ Redis 7.x セッション管理・キャッシュ
メッセージキュー RabbitMQ 3.12.x 非同期処理
監視 Prometheus + Grafana Latest メトリクス収集・可視化
ログ管理 Fluentd + Elasticsearch Latest ログ収集・検索
ミドルウェア構成図

各サーバーにインストールされるミドルウェアの構成を以下に示す。

Image in a image block

ネットワーク構成

ネットワーク構成図
Image in a image block

ネットワークセグメント一覧
セグメント名 ネットワークアドレス 用途 接続可能範囲
Public Subnet 10.0.1.0/24 ロードバランサー・NATゲートウェイ インターネット
Private Subnet 1 10.0.10.0/24 Webサーバー Public Subnet, Private Subnet 2
Private Subnet 2 10.0.20.0/24 アプリケーションサーバー Private Subnet 1, 3
Private Subnet 3 10.0.30.0/24 データベース・キャッシュ Private Subnet 2
ファイアウォールルール

インバウンドルール

送信元 宛先 プロトコル ポート 許可/拒否
インターネット ロードバランサー HTTPS 443 許可
ロードバランサー Webサーバー HTTP 80 許可
Webサーバー アプリケーションサーバー HTTP 8080 許可
アプリケーションサーバー データベース PostgreSQL 5432 許可
アプリケーションサーバー キャッシュ Redis 6379 許可
管理端末 全サーバー SSH 22 許可(VPN経由)

ハードウェア構成(オンプレミス環境の場合)

物理サーバー仕様
サーバー種別 型番 CPU メモリ ストレージ ネットワーク 台数
Webサーバー Dell PowerEdge R450 Xeon Silver 4314 (16コア) 64GB SSD 480GB × 2 (RAID1) 10GbE × 2 2
APサーバー Dell PowerEdge R650 Xeon Gold 5320 (26コア) 128GB SSD 960GB × 2 (RAID1) 10GbE × 2 2
DBサーバー Dell PowerEdge R750 Xeon Gold 6338 (32コア) 512GB NVMe SSD 1.92TB × 4 (RAID10) 25GbE × 2 2
ネットワーク機器
機器種別 型番 ポート数 用途 台数
コアスイッチ Cisco Catalyst 9300 48ポート (10GbE) サーバー間通信 2 (冗長構成)
ファイアウォール Palo Alto PA-3220 16ポート (10GbE) 外部接続・セキュリティ 2 (Active-Standby)
ロードバランサー F5 BIG-IP 4000s 8ポート (10GbE) 負荷分散 2 (Active-Standby)
ストレージ
種別 型番 容量 接続方式 用途 台数
SAN Dell PowerStore 500T 50TB (実効容量) iSCSI (10GbE) データベース用ストレージ 1
NAS QNAP TS-h1290FX 100TB NFS/SMB (10GbE) ファイル共有・バックアップ 1
ラック構成図

物理的なラック配置を以下に示す。

Image in a image block

ラック配置の考慮事項

  • 冗長構成のサーバーは別ラックに配置(電源・ネットワーク障害の影響を最小化)
  • 重量のある機器(ストレージ・UPS)は下段に配置
  • 発熱量の多い機器は空調効率を考慮して配置