Vendure インフラストラクチャ設計¶
概要¶
Vendure を Fly.io で運用するためのインフラストラクチャ設計ドキュメント集です。
現在の構成¶
- アプリケーション名:
ritsubi-ecommerce(本番)、ritsubi-ecommerce-staging(ステージング) - PostgreSQL: Dockerコンテナ(
ritsubi-postgres-db、PostgreSQL 17 + PGroonga) - Redis: 未使用(in-memoryキャッシュを使用)
- Storefront: Cloudflare Pages
構成要素¶
アーキテクチャ設計¶
- システムアーキテクチャ設計書
- 技術スタック全体一覧
- ローカル開発環境アーキテクチャ(Vendureサーバーはホストで直接実行、依存サービスはDockerコンテナ)
- システム全体のアーキテクチャ概要
- コンポーネント構成とネットワーク設計
-
セキュリティ設計とパフォーマンス最適化
- Wasabi を用いたアセット保管・バックアップ方針
S3_環境変数による S3 互換ストレージ切替手順- 日次バックアップ運用とセキュリティ対策
デプロイメント構成¶
- デプロイメントガイド
- Fly.io セットアップから本番デプロイまでの完全手順
- PostgreSQL Dockerコンテナ設定
- CI/CD パイプライン設定
-
環境別設定とシークレット管理
- DockerコンテナとしてのPostgreSQLデプロイ手順
-
データベース接続とボリューム管理
-
Upstash Redis 統合設計書(将来の拡張用)
- Redis 接続設定とセッション管理
- BullMQ ジョブキュー設定
-
キャッシュ戦略とレート制限
- Cloudflare Pages へのデプロイ手順
- ビルドと環境変数設定
開発環境¶
- Dev Container 利用ガイド
- VS Code Dev Containers での標準開発環境構築手順
- dotfiles 同期とローカルカスタマイズの方法
-
Docker ソケット共有や永続ボリューム構成の解説
- Headless CMS 用 WordPress の Docker Compose 構成
- wp-cli による初期セットアップとプラグイン導入手順
- GraphQL/REST API を利用する際のポイント
運用・監視¶
- 監視・運用設計書
- 包括的な監視戦略
- アラート設定とインシデント対応
-
ヘルスチェックとダッシュボード設定
- リソース使用量最適化戦略
- 自動スケーリングとコスト追跡
- ROI測定とコスト効果分析
技術構成¶
ホスティング環境¶
Platform: Fly.io
Region: nrt (Tokyo)
Database: PostgreSQL (Dockerコンテナ)
Cache/Queue: in-memory(将来はUpstash Redis)
Storage: Local Storage + Fly Volumes
Storefront: Cloudflare Pages
CDN: Cloudflare
予想月額コスト¶
本番環境:
- Vendure Server (1 instance): $5-7
- PostgreSQL Database (Docker): $7-10
- Storage & Network: $2-3
- 合計: $14-20/月 (約 2,100-3,000円)
開発・ステージング:
- 各環境: $5-8/月
- 合計: $10-16/月
総合計: $24-36/月 (約 3,600-5,400円)
注: Redisは現在未使用(将来の拡張時は+$3/月)
デプロイメント戦略¶
環境構成¶
graph LR
DEV[Development] --> STAGING[Staging]
STAGING --> PROD[Production]
subgraph "Fly.io Apps"
DEV --> DA[ritsubi-ecommerce-dev]
STAGING --> SA[ritsubi-ecommerce-staging]
PROD --> PA[ritsubi-ecommerce]
end
subgraph "Databases"
DA --> DDB[(Dev DB)]
SA --> SDB[(Staging DB)]
PA --> PDB[(Production DB)]
end
subgraph "Redis(将来の拡張)"
DA -.-> DR[(Dev Redis)]
SA -.-> SR[(Staging Redis)]
PA -.-> PR[(Production Redis)]
end
アーキテクチャ全体図¶
graph TB
subgraph "Users"
U[B2B Customers]
A[Admin Users]
end
subgraph "Cloudflare CDN"
CF[Cloudflare Edge]
end
subgraph "Fly.io Tokyo Region"
subgraph "Next.js Storefront"
NS1[Storefront Instance 1]
NS2[Storefront Instance 2]
end
subgraph "Vendure Backend"
V1[Vendure Instance 1]
V2[Vendure Instance 2]
W[Worker Instance]
end
subgraph "Data Layer"
PG[(PostgreSQL Docker)]
UP[(in-memory Cache)]
VOL[Volumes]
end
end
subgraph "External Services"
R2[Cloudflare R2]
SMTP[Email Service]
PAY[Payment Gateway]
ERP[SMILE ERP]
end
U --> CF
A --> CF
CF --> NS1
CF --> NS2
NS1 --> V1
NS2 --> V2
V1 --> PG
V2 --> PG
W --> PG
V1 --> R2
V2 --> SMTP
V1 --> PAY
V2 --> ERP
主要特徴¶
高可用性¶
- 冗長構成: Vendure インスタンス 2台での冗長化
- 自動復旧: ヘルスチェック失敗時の自動再起動
- データベース: マスター/スタンバイ構成での高可用性
スケーラビリティ¶
- オートスケーリング: トラフィック負荷に応じた自動スケーリング
- 水平拡張: インスタンス追加による性能向上
- 地理的分散: 将来的な多リージョン展開への対応
セキュリティ¶
- プライベートネットワーク: Fly.io IPv6 プライベートネットワーク
- 暗号化通信: すべての通信で TLS 1.3 使用
- アクセス制御: IP 制限とロールベースアクセス
運用効率¶
- CI/CD: GitHub Actions による自動デプロイ
- 監視: Prometheus + Grafana + Sentry 統合
- アラート: Slack + Email + PagerDuty 通知
次のステップ¶
- デプロイメントガイド に従って環境構築を開始
- PostgreSQL Dockerコンテナ設定 でデータベースをセットアップ
- 監視・運用設計書 で監視体制を構築
- コスト最適化ガイド でコスト効率を最大化
- (将来の拡張)Upstash Redis 統合設計書 でキャッシュ戦略を実装
関連ドキュメント¶
最終更新: 2025年9月17日 バージョン: 1.0 メンテナンス: 月次でドキュメント内容を見直し