コンビニストコンAWS移行案件のアプリケーション層アーキテクチャです。店舗端末(ストアコンピュータ / モバイル)からAPI Gateway経由でマイクロサービスにアクセスし、発注・在庫・売上・人員管理の4業務を処理します。
PMとして把握すべきポイント: サービス間の依存関係、非同期処理の範囲、DB選定の理由、キャッシュ戦略、認証フロー。
| レイヤー | サービス | 用途 |
|---|---|---|
| Edge | CloudFront | CDN配信、エッジキャッシュで店舗からの応答高速化 |
| Edge | WAF | SQLインジェクション・DDoS等の攻撃防御 |
| API | API Gateway | REST APIの統合エンドポイント、スロットリング、バージョン管理 |
| API | Cognito | 店舗端末・管理者の認証認可(JWT トークン) |
| Service | ECS Fargate - Ordering | 商品発注・廃棄処理 |
| Service | ECS Fargate - Inventory | 在庫管理・棚卸し |
| Service | ECS Fargate - Sales | 売上精算・日次締め処理 |
| Service | ECS Fargate - Staff | 人員管理・シフト管理 |
| Async | SQS | サービス間の非同期メッセージング(疎結合化) |
| Async | Lambda | イベント駆動処理(帳票生成、通知、集計) |
| Data | ElastiCache (Redis) | 商品マスタ等のキャッシュ(参照頻度の高いデータ) |
| Data | Aurora | トランザクションDB(発注・売上・人員の正規化データ) |
| Data | DynamoDB | 商品マスタ等の高速KVアクセス(数万店舗の同時参照) |
| Data | S3 | 帳票・レポート・ファイルの永続保存 |
| Observe | CloudWatch | メトリクス・ログ・アラーム |
| Observe | X-Ray | 分散トレーシング(マイクロサービス間のレイテンシ特定) |
ap-northeast-1 (東京) リージョン基準の月額概算。実際の費用は利用量により変動します。為替レート: $1 = 150円
| サービス | 構成 | Dev (月額) | Prod (月額) |
|---|---|---|---|
| ECS Fargate | 4マイクロサービス (各0.5vCPU, 1GB) | $40 (6,000円) | $80-160 (12,000-24,000円) |
| ALB | アプリケーションLB | $20 (3,000円) | $25-50 (3,750-7,500円) |
| API Gateway | 外部API | $3-10 (450-1,500円) | $10-50 (1,500-7,500円) |
| Aurora | PostgreSQL (0.5-4 ACU) | $50-100 (7,500-15,000円) | $200-400 (30,000-60,000円) |
| DynamoDB | On-Demand (セッション等) | $5-10 (750-1,500円) | $10-50 (1,500-7,500円) |
| ElastiCache (Redis) | キャッシュ | $25-50 (3,750-7,500円) | $90-180 (13,500-27,000円) |
| SQS | 非同期メッセージング | $0-2 (0-300円) | $2-10 (300-1,500円) |
| CloudFront + WAF | CDN + セキュリティ | $11-20 (1,650-3,000円) | $25-65 (3,750-9,750円) |
| Cognito | 認証 | $0 (無料枠内) | $0-25 (0-3,750円) |
| S3 | 静的アセット | $2-3 (300-450円) | $3-5 (450-750円) |
| CloudWatch + X-Ray | 監視 + トレーシング | $10-20 (1,500-3,000円) | $20-40 (3,000-6,000円) |
| 合計 | $166-275 (約24,900-41,250円) | $465-1,035 (約69,750-155,250円) | |
前提条件: Dev=各サービス1タスク、Prod=各サービス2タスク(冗長化)。コンビニ50店舗規模想定。
コスト最適化: Fargate Savings Plansで最大50%削減。ElastiCacheはReserved Nodesで最大55%削減。Dev環境は夜間スケジュール停止で40%削減可。
1. 業務ドメイン単位のマイクロサービス分割
発注・在庫・売上・人員の4ドメインで独立したサービスに分割。各サービスのスケーリング・デプロイ・障害影響範囲を独立させ、数万店舗の運用を安定化。
2. Polyglot Persistence(Aurora + DynamoDB)
トランザクション整合性が必要な売上・発注データはAurora、高速な参照が求められる商品マスタはDynamoDBと、データ特性に応じてDBを使い分け。
3. SQSによるサービス間の疎結合化
サービス間通信を直接呼び出しではなくSQSキュー経由に。一時的な障害やスパイクをバッファリングし、サービス間の依存関係を最小化。
4. エッジ層でのセキュリティ多層防御
CloudFront(DDoS緩和)→ WAF(L7攻撃防御)→ Cognito(認証認可)の3段階でリクエストをフィルタリング。正当なリクエストのみがバックエンドに到達する設計。
5. X-Rayによる分散トレーシング
マイクロサービス間のリクエストフローを可視化し、レイテンシーのボトルネックを特定。障害時の原因サービス特定が迅速に行える。
Powered by AWS Diagram MCP Server