← 成果物一覧に戻るPropCloud - 非機能要件定義書
> **バージョン**: 1.0.0
> **作成日**: 2026-03-19
1. パフォーマンス要件
| 項目 | 要件 |
|---|
| ページ初期表示 | 3秒以内(3G回線除く) |
| API応答時間 | 95パーセンタイルで500ms以内 |
| 一覧表示 | 1,000件のリスト表示を2秒以内 |
| 帳票生成 | 単票5秒以内、一括(100件)60秒以内 |
| CSV出力 | 10,000件のデータエクスポートを30秒以内 |
| 消込処理 | 1,000件の一括消込を60秒以内 |
| 検索応答 | フリーテキスト検索1秒以内 |
| 同時接続 | テナントあたり100同時接続を想定 |
| バッチ処理 | 月次請求データ生成(5,000件)を5分以内 |
2. 可用性要件
| 項目 | 要件 |
|---|
| SLA | 99.9%(月間ダウンタイム43分以内) |
| 計画メンテナンス | 月1回、深夜2:00-4:00(事前通知) |
| 障害復旧目標(RTO) | 4時間以内 |
| データ復旧目標(RPO) | 1時間以内 |
| バックアップ | 日次フルバックアップ + リアルタイムレプリケーション |
| バックアップ保持期間 | 30日間 |
| リージョン | AWS 東京リージョン(ap-northeast-1) |
| マルチAZ | RDS Multi-AZ、ECSマルチAZ配置 |
3. セキュリティ要件
3.1 認証・認可
| 項目 | 要件 |
|---|
| 認証方式 | メール + パスワード(最低12文字) |
| 二段階認証 | TOTP(Google Authenticator等)対応必須 |
| パスワードポリシー | 英大文字・小文字・数字・記号を各1文字以上含む |
| セッション管理 | 24時間で自動ログアウト、無操作30分でタイムアウト |
| アカウントロック | 10回連続失敗で30分ロック |
| RBAC | ロールベースアクセス制御(最低6ロール) |
3.2 データ保護
| 項目 | 要件 |
|---|
| 通信暗号化 | TLS 1.2以上(TLS 1.3推奨) |
| 保存時暗号化 | AES-256(AWS KMS管理) |
| PII保護 | 個人情報は暗号化カラムに格納 |
| テナント分離 | 論理分離(Row Level Security) |
| 監査ログ | 全操作をイミュータブルに記録(最低1年保持) |
| CSRF対策 | CSRFトークン必須 |
| XSS対策 | Content-Security-Policy, 入力サニタイズ |
| SQLインジェクション | パラメータバインディング必須 |
3.3 コンプライアンス
| 項目 | 要件 |
|---|
| 個人情報保護法 | 準拠(個人情報取扱規程策定) |
| 電子帳簿保存法 | 準拠(タイムスタンプ・検索要件) |
| OWASP Top 10 | 全項目対策済み |
| 脆弱性スキャン | 月次実施 |
| ペネトレーションテスト | 年次実施 |
4. スケーラビリティ要件
| 項目 | 要件 |
|---|
| テナント数 | 初期100テナント → 最大1,000テナント |
| 総管理戸数 | 初期50,000戸 → 最大500,000戸 |
| ストレージ | テナントあたり初期5GB、最大100GB |
| 水平スケーリング | ECS/Fargate Auto Scaling対応 |
| DB分離 | テナント増加に応じたシャーディング検討 |
| CDN | CloudFront経由の静的アセット配信 |
5. 運用・保守要件
5.1 監視
| 項目 | 要件 |
|---|
| インフラ監視 | CloudWatch(CPU、メモリ、ディスク) |
| アプリケーション監視 | APMツール(Datadog/New Relic相当) |
| エラー監視 | Sentry等によるリアルタイムエラー通知 |
| ログ管理 | CloudWatch Logs + S3長期保存 |
| アラート通知 | Slack/PagerDuty連携 |
| ヘルスチェック | 1分間隔 |
5.2 デプロイ
| 項目 | 要件 |
|---|
| デプロイ方式 | CI/CDパイプライン(GitHub Actions → CodePipeline) |
| デプロイ頻度 | 週次リリース(ホットフィックスは随時) |
| ブルーグリーンデプロイ | ダウンタイムゼロデプロイ対応 |
| ロールバック | 1コマンドで前バージョンに戻せること |
| ステージング環境 | 本番と同等構成のステージング環境必須 |
5.3 データ管理
| 項目 | 要件 |
|---|
| マイグレーション | ゼロダウンタイムDBマイグレーション |
| テナントデータエクスポート | 全データのCSV/JSON一括エクスポート |
| テナントデータ削除 | 解約時のデータ完全削除機能 |
| データ保持期間 | 契約中は無期限、解約後90日で削除 |
6. 技術スタック
6.1 フロントエンド
| 項目 | 技術 |
|---|
| フレームワーク | Next.js (App Router) |
| 言語 | TypeScript |
| UIライブラリ | shadcn/ui + Tailwind CSS |
| 状態管理 | Zustand / TanStack Query |
| フォーム | React Hook Form + Zod |
| テーブル | TanStack Table |
| チャート | Recharts |
| アニメーション | motion/react |
| アイコン | Lucide React |
6.2 バックエンド
| 項目 | 技術 |
|---|
| フレームワーク | Next.js API Routes / tRPC |
| 言語 | TypeScript |
| ORM | Prisma |
| DB | PostgreSQL (AWS RDS) |
| キャッシュ | Redis (ElastiCache) |
| ジョブキュー | BullMQ (Redis) |
| ファイルストレージ | AWS S3 |
| メール送信 | Amazon SES / SendGrid |
| PDF生成 | Puppeteer / React PDF |
6.3 インフラ
| 項目 | 技術 |
|---|
| コンテナ | Docker + ECS Fargate |
| CDN | CloudFront |
| DNS | Route 53 |
| SSL | ACM |
| IaC | AWS CDK / Terraform |
| CI/CD | GitHub Actions + CodePipeline |
| シークレット管理 | AWS Secrets Manager / SSM Parameter Store |
6.4 テスト
| 項目 | 技術 |
|---|
| ユニットテスト | Vitest |
| E2Eテスト | Playwright |
| APIテスト | Supertest / Vitest |
| コードカバレッジ | 80%以上 |
7. 国際化・ローカライズ
| 項目 | 要件 |
|---|
| 初期対応言語 | 日本語 |
| i18n基盤 | next-intl導入(将来の多言語対応を考慮) |
| 日付フォーマット | 和暦/西暦切り替え対応 |
| 通貨 | 日本円(¥表記) |
| タイムゾーン | JST(Asia/Tokyo) |
8. アクセシビリティ
| 項目 | 要件 |
|---|
| WCAG準拠レベル | AA |
| キーボードナビゲーション | 全機能をキーボードで操作可能 |
| スクリーンリーダー | aria-label等の適切な設定 |
| コントラスト比 | 4.5:1以上(テキスト) |
| タッチターゲット | 44px以上 |
| フォントサイズ | 最小14px、ブラウザ拡大で崩れないこと |
*PropCloud - 非機能要件定義書 v1.0.0*