プロジェクト

全般

プロフィール

バグ #596

未完了

【子チケット】VPSrootにデプロイ

Redmine Admin さんが1日前に追加. 約10時間前に更新.

ステータス:
新規
優先度:
急いで
担当者:
-
開始日:
2025-06-18
期日:
進捗率:

0%

予定工数:

説明

目的

結合テスト完了後、VPSroot環境への本番デプロイを実施

作業内容

1. VPS環境構築

サーバー基盤準備

  • VPSスペック確認・調整
    • CPU: 4コア以上
    • RAM: 8GB以上
    • Storage: SSD 100GB以上
  • Ubuntu 22.04 LTS セットアップ
  • ファイアウォール設定(ufw)
  • SSH公開鍵認証設定
  • 監視ユーザー作成・sudo権限設定

必要ソフトウェアインストール

  • Docker & Docker Compose インストール
  • Nginx インストール・設定
  • PostgreSQL 15+ & PostGIS インストール
  • Redis インストール・設定
  • Node.js 18+ インストール(PM2管理)
  • SSL証明書設定(Let's Encrypt)

2. アプリケーションデプロイ準備

環境変数設定

  • 本番環境用環境変数ファイル作成
    NODE_ENV=production
    DATABASE_URL=postgresql://...
    JWT_SECRET=...
    GOOGLE_MAPS_API_KEY=...
    LINE_CHANNEL_SECRET=...
    SMTP_HOST=...
    REDIS_URL=...
    
  • 機密情報暗号化・管理
  • 環境変数バリデーション

データベースセットアップ

  • PostgreSQL データベース作成
  • PostGIS 拡張機能有効化
  • Prisma マイグレーション実行
  • 本番用シードデータ投入
  • バックアップ設定(cron)

3. Docker化・コンテナデプロイ

Dockerfileベースデプロイ

  • マルチステージビルド設定
  • 本番用イメージ作成
  • docker-compose.prod.yml 設定
  • コンテナヘルスチェック設定
  • ログローテーション設定

コンテナ構成

services:
  web:          # React MPA (Nginx)
  api:          # Node.js API
  line-bot:     # LINE Bot Service  
  postgresql:   # Database
  redis:        # Cache
  nginx:        # Reverse Proxy

4. Nginx リバースプロキシ設定

HTTP/HTTPS設定

  • SSL証明書設定
  • HTTP → HTTPS リダイレクト
  • セキュリティヘッダー設定
  • gzip圧縮設定
  • 静的ファイル配信最適化

ロードバランシング・キャッシュ

  • API サーバーへのプロキシ設定
  • 静的ファイルキャッシュ設定
  • レート制限設定
  • アクセスログ設定

5. セキュリティ設定

サーバーセキュリティ

  • ファイアウォール設定(22, 80, 443のみ開放)
  • fail2ban設定(SSH, HTTP攻撃対策)
  • 自動セキュリティアップデート設定
  • 不要サービス停止

アプリケーションセキュリティ

  • CORS設定(本番ドメインのみ許可)
  • CSP設定
  • レート制限設定
  • セキュリティヘッダー設定

6. 監視・ログ設定

システム監視

  • Prometheus + Grafana セットアップ
  • Node Exporter設定
  • アプリケーションメトリクス収集
  • アラート設定(Slack通知)

ログ管理

  • ログ集約設定(rsyslog)
  • アプリケーションログ設定
  • ログローテーション設定
  • ログ監視・分析設定

7. パフォーマンス最適化

CDN設定

  • 静的ファイルCDN配信設定
  • 画像最適化設定
  • キャッシュポリシー設定

データベース最適化

  • PostgreSQL設定チューニング
  • インデックス最適化確認
  • コネクションプール設定
  • スロークエリ監視設定

8. バックアップ・復旧設定

自動バックアップ

  • データベース日次バックアップ(cron)
  • アプリケーションファイルバックアップ
  • 設定ファイルバックアップ
  • バックアップ世代管理(7日保持)

災害復旧準備

  • 復旧手順書作成
  • 復旧テスト実施
  • 緊急連絡先設定

9. デプロイ実行

段階的デプロイ

  • ステージング環境デプロイ
  • ステージング環境動作確認
  • 本番環境デプロイ
  • 本番環境動作確認

ヘルスチェック

  • アプリケーション起動確認
  • API エンドポイント疎通確認
  • データベース接続確認
  • 外部サービス連携確認

10. 運用移行準備

運用ドキュメント作成

  • サーバー運用手順書
  • トラブルシューティングガイド
  • 緊急時対応手順書
  • 定期メンテナンス手順書

運用体制移行

  • 監視体制確立
  • サポート体制確立
  • 運用担当者への引き継ぎ

成果物

  • 本番稼働システム
  • デプロイ手順書
  • 運用手順書
  • 監視・アラート設定
  • バックアップ・復旧設定
  • セキュリティ設定ドキュメント

技術要件

  • 可用性: 99.9%以上
  • レスポンス時間: API < 1秒、ページ < 3秒
  • 同時接続数: 1000ユーザー対応
  • SSL/TLS: TLS 1.3対応
  • セキュリティ: 最新のベストプラクティス適用

前提条件

  • チケット#595(結合試験)完了・品質基準クリア
  • VPSアカウント・ドメイン準備完了

期間

2週間

優先度

最高

他の形式にエクスポート: Atom PDF