Upload2Door

Architecture

エッジコンピューティングの力で、コード量86%削減・月額97%削減を実現

設計原則

サーバーレスファースト

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

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

ユーザー近傍での処理

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

設計段階からの組込

可観測性

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

全体構成


┌─────────────────────────────────────────────────────────────────────┐
│                         Upload2Door                                  │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│   ブラウザ                                                           │
│   ┌────────────────────────────────────────────────────────────┐    │
│   │ Next.js (Cloudflare Pages)                                  │    │
│   │ ・事務所ポータル  ・工場管理画面  ・管理者ダッシュボード      │    │
│   └────────────────────────────────────────────────────────────┘    │
│                                │                                     │
│                                ▼                                     │
│   ┌────────────────────────────────────────────────────────────┐    │
│   │ Cloudflare Workers (API)                                    │    │
│   │ ・認証検証  ・ビジネスロジック  ・署名付きURL発行            │    │
│   │                                                              │    │
│   │ ※ 個人情報はFirestoreに集約、業務データはD1に分離            │    │
│   └────────────────────────────────────────────────────────────┘    │
│       │          │          │          │                            │
│       ▼          ▼          ▼          ▼                            │
│   ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐                    │
│   │Firestore│ │   D1   │ │   R2   │ │Cloud Run │                    │
│   │個人情報 │ │業務データ│ │画像暗号│ │ 工場配信 │                    │
│   └────────┘ └────────┘ └────────┘ └────┬─────┘                    │
│                                          │                           │
│                                          ▼                           │
│                                   ┌──────────┐                      │
│                                   │ 印刷工場  │                      │
│                                   │ (SFTP)   │                      │
│                                   └──────────┘                      │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘
                

従来型 vs エッジアーキテクチャ

従来型
Nginx → Express → ORM → PostgreSQL → Redis → Worker → Cron
  • • ロードバランサー管理
  • • コンテナオーケストレーション
  • • セッション管理
  • • DB接続プール管理
  • • Cold Start 100-500ms
本システム(エッジ)
Cloudflare Workers → D1/Firestore/R2
  • ロードバランサー不要
  • セッション管理不要
  • 接続プール不要
  • Cold Start 0ms

なぜ Cloudflare Workers か

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

コード量の比較

エッジアーキテクチャによる劇的な削減

機能従来型本システム削減率
API基盤(認証・ルーティング)3,000行500行83%減
データベース接続・ORM2,000行200行90%減
画像アップロード処理1,500行300行80%減
非同期処理(ジョブキュー)1,000行100行90%減
インフラ設定500行50行90%減
合計8,000行1,150行86%減

月額コスト比較

月間10,000件想定(1件あたり平均100枚の画像)

項目本システムAWS相当Azure相当
コンピューティング¥0¥15,000¥15,000
ストレージ(1TB)¥2,000¥25,000¥25,000
データベース¥0¥10,000¥10,000
CDN/転送¥0¥5,000¥5,000
WAF¥0¥3,000¥3,000
月額合計¥2,000¥58,000¥58,000

AWS比で 97%削減

技術選定の根拠

選択採用しなかった選択肢理由
TypeScript統一Go / Rust保守性優先、人材確保
Firestore(PII)+ D1(非PII)PostgreSQL / DynamoDBPII分離、セキュリティルール、高速SQL
R2S3 / GCSエグレス無料、Cloudflare統合
Firebase AuthAuth0 / Cognito無料枠、Google連携の容易さ
HonoExpress / FastifyWorkers最適化、軽量
Cloud RunEC2 / GCEサーバーレス、固定IP対応