販売管理システムのAWS構成図。CQRS(Command Query Responsibility Segregation)パターンを採用し、書き込み系(Command)と読み取り系(Query)のワークロードを分離することで、それぞれ独立したスケーリングとパフォーマンス最適化を実現する。
アプリケーションサーバはECS(EC2起動タイプ)、バッチサーバ・ファイルサーバはEC2で構成し、全サーバをPrivate Subnetに配置。外部からのアクセスはSoftEther VPNを搭載した踏み台サーバ経由で行う。
Command 書き込み系リクエスト
Query 読み取り系リクエスト
Replication 非同期データ同期
Batch バッチ処理
Management 保守アクセス
| レイヤー | AWSサービス | 用途 |
|---|---|---|
| Public Subnet | EC2 (Bastion + SoftEther VPN) | VPN接続による保守アクセスの入口 |
| Public Subnet | ALB | Command/Query APIのルーティング |
| Public Subnet | NAT Gateway | Private Subnetからのアウトバウンド通信 |
| Private Subnet (App) | ECS (EC2起動タイプ) x4 | Command Service x2 + Query Service x2 |
| Private Subnet (App) | EC2 | バッチサーバ(定期バッチ・データ集計) |
| Private Subnet (Data) | RDS PostgreSQL (Primary) | CQRS Write DB(INSERT/UPDATE/DELETE) |
| Private Subnet (Data) | RDS Read Replica x2 | CQRS Read DB(SELECT)非同期レプリケーション |
| Private Subnet (Data) | EC2 + EFS | ファイルサーバ(帳票・CSVエクスポート等) |
| 外部 | S3 | DBスナップショット・EFSバックアップ |
| 外部 | CloudWatch | メトリクス・ログ・アラーム監視 |
1. CQRS分離によるスケーラビリティ
書き込みと読み取りのワークロードを物理的に分離。Read Replicaを2台配置し、参照系の負荷分散と可用性を確保。販売データの参照頻度が高い販売管理システムに最適なパターン。
2. RDS非同期レプリケーション
PostgreSQLネイティブのWALストリーミングレプリケーションを使用。最大15台のRead Replicaまでスケールアウト可能。レプリケーションラグは通常数秒以内で、結果整合性は販売管理の参照用途では許容範囲。
3. Private Subnet + SoftEther VPN
全サーバをPrivate Subnetに配置し、インターネットからの直接アクセスを遮断。保守はSoftEther VPN経由の踏み台サーバで行い、セキュリティグループで接続元を制限。
4. EFS共有ストレージ
帳票出力・CSVエクスポート等のファイルをEFSで一元管理。Command Service・Batch Serverから同時アクセス可能。NFSプロトコルでEC2/ECSの両方からマウント可能。
5. Multi-AZ推奨(RDS Primary)
本構成図ではRDS PrimaryのMulti-AZ設定を推奨。フェイルオーバー時も自動切替でダウンタイムを最小化。CloudFormationテンプレートではMulti-AZを有効化済み。
ap-northeast-1 (東京) リージョン基準の月額概算。実際の費用は利用量により変動します。
為替レート: $1 = 150円(参考値)
| サービス | 構成 | Dev (月額) | Prod (月額) |
|---|---|---|---|
| EC2 (Bastion) | t3.micro x1 | $8 (1,200円) | $8 (1,200円) |
| ALB | Application LB x1 | $20 (3,000円) | $25-50 (3,750-7,500円) |
| NAT Gateway | x1 AZ | $35 (5,250円) | $35-100 (5,250-15,000円) |
| ECS (EC2起動) | t3.medium x2 (Dev) / m5.large x4 (Prod) | $60 (9,000円) | $280 (42,000円) |
| EC2 (Batch) | t3.medium (Dev) / m5.large (Prod) | $30 (4,500円) | $70 (10,500円) |
| RDS Primary | db.t3.medium (Dev) / db.r5.large Multi-AZ (Prod) | $50 (7,500円) | $250 (37,500円) |
| RDS Read Replica | db.t3.medium x2 (Dev) / db.r5.large x2 (Prod) | $70 (10,500円) | $250 (37,500円) |
| EC2 (File Server) | t3.small x1 | $15 (2,250円) | $15 (2,250円) |
| EFS | 50GB (Dev) / 500GB (Prod) | $15 (2,250円) | $150 (22,500円) |
| S3 | 100GB backup | $3 (450円) | $5 (750円) |
| CloudWatch | Logs + Metrics | $5 (750円) | $20 (3,000円) |
| 合計 | $311 (約46,650円) | $1,108-1,223 (約166,200-183,450円) | |
前提条件: 24/7稼働、ap-northeast-1、EBSはgp3 100GB想定、データ転送量は月100GB以内
コスト最適化のポイント: EC2/RDS Reserved Instances (1年)で最大40%削減、Dev環境の夜間・休日停止で約60%削減、EFS Infrequent Accessクラスの活用
| # | 観点 | 判定 | 備考 |
|---|---|---|---|
| 1 | サービス互換性 | Pass | ALB-ECS, ECS-RDS, EC2-EFS 全接続パターンはAWS公式確認済み |
| 2 | データフロー整合性 | Pass | CQRS Write/Read分離、WALストリーミングレプリケーション |
| 3 | セキュリティ | Pass | Private Subnet配置、VPN踏み台、NAT GW |
| 4 | 可用性・耐障害性 | Pass | RDS Multi-AZ推奨、Read Replica 2台冗長 |
| 5 | コスト効率 | Pass | EC2/ECS指定に合致、不要な重複なし |
| 6 | ユーザー要望との一致 | Pass | CQRS, RDS, EC2/ECS, Private Subnet, SoftEther VPN 全反映 |
最終更新: 2026-04-01 | AWS Diagram MCP + AWS Knowledge MCP