graph TB
subgraph VPC["Virtual Private Cloud"]
subgraph PUB["Public Zone"]
BASTION["Bastion Server - SoftEther VPN"]
LB["Load Balancer"]
NAT["NAT Gateway"]
end
subgraph APP["Private Zone - Application Layer"]
CMD1["Command Service 1"]
CMD2["Command Service 2"]
QRY1["Query Service 1"]
QRY2["Query Service 2"]
BATCH["Batch Server"]
end
subgraph DATA["Private Zone - Data Layer"]
WRITEDB[("Primary DB PostgreSQL")]
READ1[("Read Replica 1")]
READ2[("Read Replica 2")]
FILESRV["File Server"]
STORAGE["Shared Storage NFS"]
end
end
OPERATOR(("Operator"))
BACKUP["Backup Storage"]
MONITOR["Monitoring"]
OPERATOR -->|VPN| BASTION
BASTION -.->|SSH| CMD1
BASTION -.->|SSH| BATCH
LB -->|Command API| CMD1
LB -->|Command API| CMD2
LB -->|Query API| QRY1
LB -->|Query API| QRY2
CMD1 -->|INSERT/UPDATE| WRITEDB
CMD2 -->|INSERT/UPDATE| WRITEDB
QRY1 -->|SELECT| READ1
QRY2 -->|SELECT| READ2
WRITEDB -.->|Async Replication| READ1
WRITEDB -.->|Async Replication| READ2
BATCH -->|Batch Write| WRITEDB
BATCH -.->|Batch Read| READ1
FILESRV --- STORAGE
BATCH -.->|File I/O| STORAGE
WRITEDB -.->|Snapshot| BACKUP
STORAGE -.->|Backup| BACKUP
style CMD1 fill:#E67E22,color:#fff
style CMD2 fill:#E67E22,color:#fff
style QRY1 fill:#27AE60,color:#fff
style QRY2 fill:#27AE60,color:#fff
style BATCH fill:#1ABC9C,color:#fff
style WRITEDB fill:#E67E22,color:#fff
style READ1 fill:#27AE60,color:#fff
style READ2 fill:#27AE60,color:#fff
style BASTION fill:#2C3E50,color:#fff
style LB fill:#2980B9,color:#fff
style BACKUP fill:#E74C3C,color:#fff
style MONITOR fill:#3498DB,color:#fff
販売管理システムのCQRS(Command Query Responsibility Segregation)アーキテクチャを、特定のクラウドベンダーに依存しないUML形式で表現した図。AWS/Azure/GCP いずれの環境でも適用可能な論理アーキテクチャとして設計。
書き込み(Command)と読み取り(Query)を物理的に分離し、それぞれ独立してスケーリング可能。全サーバはPrivate Zoneに配置し、SoftEther VPN経由の踏み台サーバで保守アクセスを行う。
| 要素 | 種類 | 説明 |
|---|---|---|
| Bastion Server | VPNゲートウェイ | SoftEther VPN搭載。外部からの唯一のアクセスポイント |
| Load Balancer | L7ロードバランサ | パスベースルーティングでCommand/Query APIを振り分け |
| NAT Gateway | ネットワーク | Private Zoneからのアウトバウンド通信用 |
| Command Service x2 | アプリケーション | 書き込み系API。INSERT/UPDATE/DELETEを処理 |
| Query Service x2 | アプリケーション | 読み取り系API。SELECTを処理 |
| Batch Server | バッチ処理 | 定期バッチ・データ集計・帳票生成 |
| Primary DB (PostgreSQL) | RDBMS | CQRS Write DB。全書き込みを受け付け |
| Read Replica x2 | RDBMS (レプリカ) | CQRS Read DB。WAL非同期レプリケーション |
| File Server + Shared Storage | ファイルストレージ | NFS共有。帳票・CSV・添付ファイル |
| Backup Storage | オブジェクトストレージ | DBスナップショット・ファイルバックアップ |
最終更新: 2026-04-01 | draw.io MCP Server