Skip to content

[Step 7] デプロイ・インフラ #28

@takaokouji

Description

@takaokouji

概要

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-stopped

SSL証明書設定

  • Let's Encrypt使用
  • 自動更新設定(certbot)
  • Thrusterでの証明書読み込み

完了条件

  • AWS EC2でアプリケーションが正常動作
  • HTTPS接続が正常に動作(koshien.smalruby.app)
  • CI/CDパイプラインが正常動作
  • 監視・ログ収集が動作
  • セキュリティ設定が適切に実装
  • デプロイ・運用ドキュメント作成完了

関連Issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Icebox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions