Vendure インフラストラクチャ索引¶
概要¶
このページは docs/03-implementation/infrastructure/ 配下の入口 / 索引です。ここに記載する要約は案内用であり、構成値・運用手順・監視設定の判断は各リンク先の正本を参照してください。
[!IMPORTANT] この
index.mdはインフラ全体の単独正本ではありません。引き継ぎや日常運用で判断が必要な場合は、用途ごとにdeployment-guide.md、object-storage.md、monitoring-operations.md、secrets-manager-operations.mdなどの正本へ進んでください。
現行構成の要点(案内用)¶
- アプリケーション名:
ritsubi-ecommerce(本番)、ritsubi-ecommerce-staging(ステージング) - PostgreSQL: Dockerコンテナ(
ritsubi-postgres-db、PostgreSQL 17 +pg_trgm) - Redis: 本番・ステージングともに Fly.io 上の専用 Redis アプリ
- Storefront: Cloudflare Workers(Vite + Static Assets + Worker API)
- ストレージ: アセット・帳票・バックアップは Cloudflare R2 中心。基盤ローカル永続化の詳細は各正本を参照
構成要素¶
アーキテクチャ設計¶
- システムアーキテクチャ設計書
- 技術スタック全体一覧
- ローカル開発環境アーキテクチャ(Vendureサーバーはホストで直接実行、依存サービスはDockerコンテナ)
- システム全体のアーキテクチャ概要
- コンポーネント構成とネットワーク設計
-
セキュリティ設計とパフォーマンス最適化
- Cloudflare R2 を正本にしたアセット・帳票・バックアップ方針
R2_*環境変数による運用手順- 日次バックアップ運用とセキュリティ対策
デプロイメント構成¶
- デプロイメントガイド
- Fly.io セットアップから本番デプロイまでの完全手順
- PostgreSQL Dockerコンテナ設定
- CI/CD パイプライン設定
-
環境別設定とシークレット管理
- DockerコンテナとしてのPostgreSQLデプロイ手順
-
データベース接続とボリューム管理
-
Redis 運用
- Redis 接続設定・同期・障害対応は デプロイメントガイド を正本とする
-
BullMQ ジョブキュー設定とキャッシュ戦略も現行構成に合わせて同ガイドを参照する
- Cloudflare Workers へのデプロイ手順
- ビルドと環境変数設定
- キャッシュ戦略まとめ
- Storefront / Vendure / WordPress のキャッシュ方針
- WordPress 連携の
revalidation設定一覧 - 即時反映(tag invalidation)方針の整理
開発環境¶
- Dev Container 利用ガイド
- VS Code Dev Containers での標準開発環境構築手順
- dotfiles 同期とローカルカスタマイズの方法
-
Docker ソケット共有や永続ボリューム構成の解説
- Headless CMS 用 WordPress の Docker Compose 構成
- wp-cli による初期セットアップとプラグイン導入手順
-
GraphQL/REST API を利用する際のポイント
- VPS への Ansible デプロイ手順
- Cloudflare Tunnel (cloudflared) によるセキュアな公開設定
-
差分更新(Just レシピ)による高速な運用
- WordPress が期待する CMS 状態との差分を監査する正規導線
- local / VPS の drift audit コマンド
-
plugin / ACF JSON / option / fixed route page の切り分け
- AWS Secrets Manager の取得・更新・注入手順(just / script)
SECRETS_CONFIGと path の対応-
CI 連携(
--write-github-env)とトラブルシュート AGENTS.mdを短く保つ前提の探索入口develop同期と worktree 復旧の標準手順-
just ai-rg/just ai-find-agentsの使い分け packages/contract/generated/*.tsを正本にした移行履歴と現行運用- source alias 縮退の実施内容
- codegen / CI / runtime を壊さない受け入れ条件とロールバック方針
運用・監視¶
- 定期実行・条件実行ジョブ一覧
- GitHub Actions のスケジュール実行(cron)一覧と JST 換算
- イベント駆動ワークフロー(push / PR / workflow_run チェーン)の一覧
- Vendure スケジュールタスク(SMILE エクスポート等)の定義場所と Sentry 監視設定
-
Vendure ジョブキュー(帳票非同期生成等)の一覧
- 継続監視の正式導線(Sentry Uptime / Uptime Kuma / GitHub Actions fallback)
- アラート設定とインシデント一次切り分け
- safe probe / synthetic / diagnostics の読み分け
-
Safe Probes / 監視ティア:
- Tier 0(連続ポーリング可):
/health/live,/health/ready,/version— 外部依存の fan-out なし - Tier 1(デプロイ後検証): schema / CORS / asset delivery チェック
- Tier 2(合成ジャーニー): ブラウザ canary(スケジュール実行)
- Tier 3(診断用):
/api/health/cmsなど upstream fan-out を含むエンドポイント — 継続ポーリング不可
- Tier 0(連続ポーリング可):
- staging / production への deploy 標準コマンドと recipe 内 pre-flight (plugins dist precheck / Fly machine settle 待ち / production backup)
- Fly deploy strategy (
bluegreenproduction /rollingstaging) とDEPLOY_FLY_STRATEGYenv override の運用判断 -
既知 8 種類の deploy エラー (plugins dist 欠落 / image push transient / 機械 concurrent update / HardenPlugin guard / runtime drift / probe HTTP 000 / Dashboard のみ失敗 / worker 停止) と復旧コマンド
- worker process 停止 /
update-search-index詰まり時の検知と復旧 /health/readyjobQueueLagフィールドと閾値、復旧コマンドの正本-
設計上の前提(production app は HTTP のみ、worker process group が job queue を独占)
/productsの first visible を staging で再計測する手順- Cloudflare Worker tail / Playwright / Fly machine 状態の切り分け
-
Header background prefetch fanout、active order hydration、visible browse の判断基準
requestId/traceId/spanId/workflowTraceIdの役割分離- Playwright manifest / workflow archive / Sentry diagnostics の辿り方
-
構造化ログ contract と triage の順序
- リソース使用量最適化戦略
- 自動スケーリングとコスト追跡
-
ROI測定とコスト効果分析
- 脆弱性スキャン結果(Trivy)と暗号化状態
- アクセス制御とエンドポイント別の認証 / レート制限 / 入力検証
- 既知のセキュリティリスク追跡(SEC-001〜010)
- audit-driven 改善履歴(SameSite=lax + Origin validator middleware / 仮 password 強度 / GraphQL depth limit など)
技術構成¶
ホスティング環境¶
Platform: Fly.io
Region: nrt (Tokyo)
Database: PostgreSQL (Dockerコンテナ)
Cache/Queue: 本番・ステージングともに Fly.io 上の専用 Redis staging も本番と同じ
session/shared cache 経路を通す
Storage: Cloudflare R2(アセット・帳票・バックアップ)中心 / Fly Volumes は基盤ローカル永続化で利用
Storefront: Cloudflare Workers (Vite + Static Assets + Worker API)
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 は現在 Fly.io 上の専用 Redis アプリで運用します。追加費用は machine size
に応じて変動します。
デプロイメント戦略¶
環境構成¶
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(Fly dedicated app)"
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 "Cloudflare Workers (Global Edge)"
NS["Storefront (Vite + Workers)"]
end
subgraph "Fly.io Tokyo Region"
subgraph "Vendure Backend"
V1[Vendure Instance 1]
V2[Vendure Instance 2]
W[Worker Instance]
end
subgraph "Data Layer"
PG[(PostgreSQL Docker)]
RC[(Redis: Fly dedicated app)]
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 --> NS
NS --> V1
NS --> V2
V1 --> PG
V2 --> PG
W --> PG
V1 --> R2
V2 --> SMTP
V1 --> PAY
V2 --> ERP
読み分けの目安¶
- 配備構成・環境差分を確認したい: デプロイメントガイド と システムアーキテクチャ設計書 を参照
- アセット・帳票・バックアップの保管方針を確認したい: オブジェクトストレージ設計(Cloudflare R2) を正本として参照
- 監視・アラート・障害一次切り分けを確認したい: 監視・運用設計書 を正本として参照。 日常運用の継続監視は Sentry Uptime / Uptime Kuma / GitHub Actions fallback を正式導線とし、Grafana / Prometheus / Loki 関連は現時点では常設運用の前提にしない
- シークレット運用を確認したい: AWS Secrets Manager 運用ガイド を参照
次のステップ¶
- 配備・環境差分は デプロイメントガイド を開く
- ストレージ方針は オブジェクトストレージ設計(Cloudflare R2) を開く
- 監視・障害一次切り分けは 監視・運用設計書 を開く
- Redis / Queue 運用は デプロイメントガイド を正本として参照する
- 引き継ぎ導線は
docs/05-delivery/handover/配下と併読する
関連ドキュメント¶
最終更新: 2026年4月12日 バージョン: 1.0 メンテナンス: 月次でドキュメント内容を見直し
パフォーマンス最適化 (2026-02-12 追加)¶
- DB 検索最適化 実装ドキュメント ⭐ 新規
- 商品検索・Visibility rule パフォーマンス最適化の完全実装ガイド
- Foreign Key インデックス、Partial インデックス、Composite インデックス戦略
- Supabase Postgres best practices への完全準拠
- Diagnostics SQL による検証手順
- Status: Staging ✅、Production ready 🚀
- Expected: seq_scan 100% 削減、browse query 5-10x 高速化
- PR #586 / Migrations 1777874700000, 1777918200000
Storefront 商品一覧パフォーマンス トラブルシュート の下部に以下を追加:
- 🆕 DB インデックス最適化トラブルシューティング (db-search-optimization 導入後の問題診断)
- Migration 適用状態の確認
- Index 実装状態の確認
- EXPLAIN ANALYZE で query plan を検証
- よくある問題と対処法
- Rollback 手順