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 Lambda | Cloud Functions | Cloudflare Workers |
|---|---|---|---|
| Cold Start | 100〜500ms | 100〜300ms | 0ms |
| エッジ配置 | 別途CloudFront | 別途CDN | 標準 |
| 無料枠 | 100万/月 | 200万/月 | 1000万/日 |
| 日本リージョン | 東京のみ | 東京のみ | 国内10箇所以上 |
| WAF | 追加料金 | 追加料金 | 標準付属 |
コード量の比較
エッジアーキテクチャによる劇的な削減
| 機能 | 従来型 | 本システム | 削減率 |
|---|---|---|---|
| API基盤(認証・ルーティング) | 3,000行 | 500行 | 83%減 |
| データベース接続・ORM | 2,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 / DynamoDB | PII分離、セキュリティルール、高速SQL |
| R2 | S3 / GCS | エグレス無料、Cloudflare統合 |
| Firebase Auth | Auth0 / Cognito | 無料枠、Google連携の容易さ |
| Hono | Express / Fastify | Workers最適化、軽量 |
| Cloud Run | EC2 / GCE | サーバーレス、固定IP対応 |