Architecture

システムアーキテクチャ

Picture-i × Print Gate 統合基盤

エッジコンピューティング + サーバーレス構成で高速・低コスト・高可用性を実現

設計原則

サーバーレスファースト

インフラ管理コストの最小化

エッジコンピューティング

ユーザー近傍での処理

セキュリティバイデザイン

設計段階からの組込

可観測性

ログ・メトリクス・トレース

全体構成

3層アーキテクチャ

Picture-i

BtoC コンテンツ販売

ガチャエンジン
EC/カート
決済処理
マイページ

Print Gate

BtoB 受発注システム

案件管理
入稿処理
工場連携
配送管理

PrintCart 共通基盤

API Gateway + ビジネスロジック

認証・認可

Firebase Auth

API

Hono + Workers

DB

Firestore + D1

Storage

R2 (暗号化)

Cloudflare Edge Network

グローバル300+拠点、日本国内10+拠点

Pages

静的サイト

Workers

エッジAPI

D1

SQLite

R2

オブジェクト

WAF

セキュリティ

Picture-i アーキテクチャ

ガチャエンジン

排出ロジック

サーバーサイドで乱数生成 → レアリティ判定 → 在庫確認 → 結果確定

天井システム

ユーザー別カウンター管理、確定枠の自動付与

演出配信

結果確定後にクライアントへ演出データを返却、Lottie/CSS Animation

決済フロー
1

カート確定

在庫ロック (TTL: 15分)

2

決済処理

Stripe Checkout / Paidy

3

Webhook受信

注文確定、在庫減算、メール送信

コンテンツ配信
サムネイルR2 → Cloudflare Images (リサイズ)
プレビューウォーターマーク付き、低解像度
購入済み署名付きURL (TTL: 5分)、AES-256
ダウンロードオリジナル品質、回数制限
マイページ・コレクション
認証Firebase Auth (Google/Email)
購入履歴Firestore (PII分離)
コレクションD1 (所持カード一覧)
お気に入りD1 (アーティスト/商品)

Print Gate アーキテクチャ

入稿フロー
1

ファイルアップロード

チャンク分割、R2直接アップロード

2

入稿チェック

解像度・カラーモード・トリムマーク検証

3

承認フロー

担当者確認 → 承認 → 製造指示

工場連携
配信方式Cloud Run → SFTP (固定IP)
データ形式製造指示XML + 印刷データ
ステータス連携工場システム → Webhook → D1
エラー通知Slack / Email アラート
配送管理
配送手配ヤマト/佐川 API連携
追跡配送業者API → ステータス同期
納品確認QRコード読取 / 手動確認
履歴D1 (検索・分析用)
営業・請求管理
見積作成テンプレート + 自動計算
請求書月次締め → PDF生成
入金管理銀行API連携 / 手動消込
売掛管理Firestore (与信情報)

技術スタック

レイヤー技術用途
FrontendNext.js 15 + React 19SSG/CSR、Cloudflare Pages
APIHono + Cloudflare WorkersエッジAPI、Cold Start 0ms
AuthFirebase AuthGoogle/Email認証、Custom Claims
DB (PII)Firestore個人情報、セキュリティルール
DB (業務)Cloudflare D1注文・商品・ログ、SQLite
StorageCloudflare R2画像暗号化、署名付きURL
FactoryCloud RunSFTP配信、固定IP
PaymentStripe / Paidyカード・BNPL決済

Cloudflare Workers 選定理由

項目AWS LambdaCloud FunctionsCloudflare Workers
Cold Start100〜500ms100〜300ms0ms ✓
エッジ配置別途CloudFront別途CDN標準 ✓
無料枠100万/月200万/月1000万/日 ✓
日本拠点東京のみ東京のみ国内10箇所+ ✓
WAF追加料金追加料金標準付属 ✓

スケーラビリティ

負荷特性と対応策

想定負荷

Picture-i(イベント時ピーク)

同時接続

10,000+

リクエスト/秒

5,000+

Print Gate(通常運用)

同時接続

100〜500

リクエスト/秒

50〜200

スケーリング戦略
Workers自動スケール、上限なし
D1リードレプリカ自動、書込分散
R2エッジキャッシュ、無制限
Firestore自動スケール、ホットスポット監視

災害復旧・監視

可用性とリカバリ

RPO / RTO

RPO(目標復旧時点)

1時間

RTO(目標復旧時間)

4時間

バックアップ
Firestore日次自動、30日保持
D1日次自動、14日保持
R2バージョニング有効
設定Git管理、IaC
監視・アラート
エラー率> 1% で警告
レイテンシ> 500ms で警告
CPU使用率> 80% で警告
ストレージ> 90% で警告

通知先: Slack / PagerDuty

エッジアーキテクチャの特徴

不要になるコンポーネント
  • ロードバランサー
  • コンテナオーケストレーション
  • セッション管理サーバー
  • DB接続プール
  • CDN設定
得られるメリット
  • Cold Start 0ms
  • グローバルエッジ配信
  • WAF標準付属
  • DDoS保護
  • 自動スケーリング