コンテンツにスキップ

Vendure インフラストラクチャ索引

概要

このページは docs/03-implementation/infrastructure/ 配下の入口 / 索引です。ここに記載する要約は案内用であり、構成値・運用手順・監視設定の判断は各リンク先の正本を参照してください。

[!IMPORTANT] この index.md はインフラ全体の単独正本ではありません。引き継ぎや日常運用で判断が必要な場合は、用途ごとに deployment-guide.mdobject-storage.mdmonitoring-operations.mdsecrets-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)

  • Cloudflare R2 を正本にしたアセット・帳票・バックアップ方針
  • R2_* 環境変数による運用手順
  • 日次バックアップ運用とセキュリティ対策

デプロイメント構成

  • デプロイメントガイド
  • Fly.io セットアップから本番デプロイまでの完全手順
  • PostgreSQL Dockerコンテナ設定
  • CI/CD パイプライン設定
  • 環境別設定とシークレット管理

  • PostgreSQL Dockerコンテナ設定

  • DockerコンテナとしてのPostgreSQLデプロイ手順
  • データベース接続とボリューム管理

  • Redis 運用

  • Redis 接続設定・同期・障害対応は デプロイメントガイド を正本とする
  • BullMQ ジョブキュー設定とキャッシュ戦略も現行構成に合わせて同ガイドを参照する

  • Storefront Cloudflare Workers デプロイ

  • Cloudflare Workers へのデプロイ手順
  • ビルドと環境変数設定
  • キャッシュ戦略まとめ
  • Storefront / Vendure / WordPress のキャッシュ方針
  • WordPress 連携の revalidation 設定一覧
  • 即時反映(tag invalidation)方針の整理

開発環境

  • Dev Container 利用ガイド
  • VS Code Dev Containers での標準開発環境構築手順
  • dotfiles 同期とローカルカスタマイズの方法
  • Docker ソケット共有や永続ボリューム構成の解説

  • WordPress CMS ローカル開発環境セットアップ

  • Headless CMS 用 WordPress の Docker Compose 構成
  • wp-cli による初期セットアップとプラグイン導入手順
  • GraphQL/REST API を利用する際のポイント

  • WordPress VPS デプロイメントガイド

  • VPS への Ansible デプロイ手順
  • Cloudflare Tunnel (cloudflared) によるセキュアな公開設定
  • 差分更新(Just レシピ)による高速な運用

  • WordPress Drift 運用 Runbook

  • WordPress が期待する CMS 状態との差分を監査する正規導線
  • local / VPS の drift audit コマンド
  • plugin / ACF JSON / option / fixed route page の切り分け

  • AWS Secrets Manager 運用ガイド

  • AWS Secrets Manager の取得・更新・注入手順(just / script)
  • SECRETS_CONFIG と path の対応
  • CI 連携(--write-github-env)とトラブルシュート

  • AI エージェント運用 Runbook

  • AGENTS.md を短く保つ前提の探索入口
  • develop 同期と worktree 復旧の標準手順
  • just ai-rg / just ai-find-agents の使い分け

  • @ritsubi/contract generated 配置移行設計

  • 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 を含むエンドポイント — 継続ポーリング不可
  • Deploy Runbook

  • staging / production への deploy 標準コマンドと recipe 内 pre-flight (plugins dist precheck / Fly machine settle 待ち / production backup)
  • Fly deploy strategy (bluegreen production / rolling staging) と DEPLOY_FLY_STRATEGY env override の運用判断
  • 既知 8 種類の deploy エラー (plugins dist 欠落 / image push transient / 機械 concurrent update / HardenPlugin guard / runtime drift / probe HTTP 000 / Dashboard のみ失敗 / worker 停止) と復旧コマンド

  • Job Queue Runbook

  • worker process 停止 / update-search-index 詰まり時の検知と復旧
  • /health/ready jobQueueLag フィールドと閾値、復旧コマンドの正本
  • 設計上の前提(production app は HTTP のみ、worker process group が job queue を独占)

  • Storefront 商品一覧パフォーマンス トラブルシュート

  • /products の first visible を staging で再計測する手順
  • Cloudflare Worker tail / Playwright / Fly machine 状態の切り分け
  • Header background prefetch fanout、active order hydration、visible browse の判断基準

  • Observability 相関ガイド

  • 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

読み分けの目安

次のステップ

  1. 配備・環境差分デプロイメントガイド を開く
  2. ストレージ方針オブジェクトストレージ設計(Cloudflare R2) を開く
  3. 監視・障害一次切り分け監視・運用設計書 を開く
  4. Redis / Queue 運用デプロイメントガイド を正本として参照する
  5. 引き継ぎ導線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 手順