-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
概要
Issue smalruby/smalruby3-gui#417 の Step 7: デプロイ・インフラを実装します。
AWS EC2環境でのプロダクション運用に必要なインフラストラクチャとCI/CDパイプラインを構築します。
実装内容
1. AWS EC2環境構築
- EC2インスタンス設定・起動
- セキュリティグループ設定(HTTP/HTTPS, SSH)
- Elastic IP設定
- Route 53 DNS設定(koshien.smalruby.app)
- 基本的なLinux環境セットアップ
2. Docker本番環境設定
- 本番用Dockerfile最適化
- Multi-stage build対応
- docker-compose.prod.yml作成
- イメージサイズ最適化
- セキュリティスキャン設定
3. Thruster設定・SSL証明書
- config/thruster.yml本番設定
- Let's Encrypt SSL証明書取得・設定
- SSL証明書自動更新設定
- HTTPS リダイレクト設定
- セキュリティヘッダー設定
4. 本番環境設定
- Rails本番環境設定(secrets, credentials)
- 環境変数管理
- ログ設定・ローテーション
- バックアップ設定(SQLite3)
- 監視・ヘルスチェック設定
5. CI/CD設定
- GitHub Actions ワークフロー作成
- 自動テスト実行
- 自動デプロイ設定
- ロールバック機能
- デプロイ通知設定
6. 運用・監視
- アプリケーション監視設定
- パフォーマンス監視
- エラー監視・アラート
- ログ監視・分析
- バックアップ・リストア手順
7. セキュリティ強化
- ファイアウォール設定
- 不要サービス停止
- SSH設定強化
- アプリケーションレベルセキュリティ
- 定期的なセキュリティアップデート
インフラ構成
AWS リソース
- EC2: t3.micro または t3.small
- Storage: EBS gp3 (20GB〜)
- Network: VPC, Security Groups
- DNS: Route 53
Docker構成
# docker-compose.prod.yml
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile.prod
ports:
- "80:3000"
- "443:3000"
environment:
- RAILS_ENV=production
- RAILS_MASTER_KEY=${RAILS_MASTER_KEY}
volumes:
- ./storage:/rails/storage
- ./log:/rails/log
- ./ssl:/rails/ssl
restart: unless-stoppedSSL証明書設定
- Let's Encrypt使用
- 自動更新設定(certbot)
- Thrusterでの証明書読み込み
完了条件
- AWS EC2でアプリケーションが正常動作
- HTTPS接続が正常に動作(koshien.smalruby.app)
- CI/CDパイプラインが正常動作
- 監視・ログ収集が動作
- セキュリティ設定が適切に実装
- デプロイ・運用ドキュメント作成完了
関連Issue
- [スパイク]スモウルビー3から実行可能なスモウルビー甲子園の実行環境を設計する smalruby3-gui#417 [スパイク]スモウルビー3から実行可能なスモウルビー甲子園の実行環境を設計する
- [Step 1] 基盤環境構築 smalruby3-gui#418 [Step 1] 基盤環境構築
- [Step 2] データモデル・DB設計 smalruby3-gui#419 [Step 2] データモデル・DB設計
- [Step 3] 基本GraphQL API実装 smalruby3-gui#420 [Step 3] 基本GraphQL API実装
- [Step 4] ゲームロジック実装 #25 [Step 4] ゲームロジック実装
- [Step 5] Job処理システム #26 [Step 5] Job処理システム
- [Step 6] GraphQL完全実装 #27 [Step 6] GraphQL完全実装
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Icebox