AWS EC2、ALB、Route53を使用したTaiga 6.8のインストール方法 (Docker)

### AWS EC2、ALB、Route53を使用したTaiga 6.8のインストール方法 (Docker)

#### はじめに
このブログでは、AWS環境を使って、プロジェクト管理ツール「Taiga」バージョン6.8をインストールする手順を解説します。特にAWSのEC2、ALB、Route53を使用し、セキュアなTaiga環境を構築します。また、AWS SESを利用してメール通知機能を追加します。

#### 1. 前提条件
- **AWSアカウント**が必要です。  
- **独自ドメイン**をRoute53で管理し、ドメイン名を確保しておきます。
- **SSL証明書**をACM (AWS Certificate Manager) で発行します。

#### 2. EC2インスタンスのセットアップ
EC2インスタンスを作成し、Taigaをインストールする環境を用意します。

- **OS**: Ubuntu 22.04  
- **インスタンスタイプ**: `t2.small`  
- **EBS**: 16GB (推奨)
- **セキュリティグループ**: ポート22（SSH）、80（HTTP）、443（HTTPS）を開放します。

##### SSHでEC2に接続：
```bash
ssh -i "your-key.pem" ubuntu@your-ec2-ip
```

##### DockerとDocker Composeのインストール：
```bash
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
```

#### 3. Taigaのセットアップ
##### Taigaのリポジトリをクローンします:
```bash
git clone https://github.com/taigaio/taiga-docker.git
cd taiga-docker
```

##### .envファイルを設定：
環境に合わせて、メール設定やDB設定をカスタマイズします。  
特に、以下の項目を設定してください：
```bash
TAIGA_SCHEME=https
TAIGA_DOMAIN=taiga.dev.yourdomain.com
POSTGRES_USER=taiga
POSTGRES_PASSWORD=yourpassword
EMAIL_BACKEND=smtp
EMAIL_HOST=email-smtp.us-west-2.amazonaws.com
EMAIL_PORT=587
EMAIL_HOST_USER=your-ses-user
EMAIL_HOST_PASSWORD=your-ses-password
EMAIL_USE_TLS=True
```

##### Dockerコンテナを起動:
```bash
docker-compose up -d
```

##### 管理者ユーザーを作成:
```bash
docker-compose -f docker-compose.yml -f docker-compose-inits.yml run --rm taiga-manage createsuperuser
```

---

#### 4. ALB (Application Load Balancer) の設定
##### ALBの作成：
- **リスナー**: HTTP (80) と HTTPS (443) リスナーを追加。
- **ターゲットグループ**: EC2インスタンスをターゲットに設定し、ヘルスチェックを構成。

#### 5. Route53とSSL証明書の設定
##### Route53でAレコードを設定：
- **Route53**でドメインをALBにポイントするため、Aレコードを作成します。

##### ACMでSSL証明書を発行：
- AWS ACMを使ってSSL証明書を取得し、ALBのHTTPSリスナーにアタッチします。

---

#### 6. AWS SESを使用したメール通知設定
Taigaからのメール送信にはAWS SESを使います。SESのSMTP認証情報を取得し、`.env`ファイルに設定を追加します。

##### .envファイルでのメール設定：
```bash
EMAIL_BACKEND=smtp
EMAIL_HOST=email-smtp.region.amazonaws.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your-ses-user
EMAIL_HOST_PASSWORD=your-ses-password
```

##### Dockerを再起動して設定を反映:
```bash
docker-compose down
docker-compose up -d
```

---

#### 7. Nginxによるリバースプロキシ設定
Taigaがサブドメインまたはサブパスで動作する場合は、Nginxを使ってリバースプロキシを設定します。

##### サブドメイン設定 (例):
```nginx
server {
  server_name taiga.dev.yourcompany.com;

  location /taiga/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_redirect off;
    proxy_pass http://localhost:9000/;
  }

  # Events
  location /taiga/events {
      proxy_pass http://localhost:9000/events;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
      proxy_connect_timeout 7d;
      proxy_send_timeout 7d;
      proxy_read_timeout 7d;
  }

  # TLS: Configure your TLS following the best practices inside your company
  # Logs and other configurations
}
```

---

#### 8. サービスの起動と確認
すべてのサービスが正しく起動しているか確認するには、以下のコマンドを実行してください：
```bash
docker-compose ps
```

ブラウザで `https://taiga.dev.yourdomain.com` にアクセスし、Taigaが動作しているか確認します。

---

### まとめ
この手順を完了することで、AWS環境上でのTaiga 6.8のセットアップが完了します。AWS EC2、ALB、Route53を使って、プロジェクト管理ツールTaigaの最新バージョンをセキュアに運用することができます。

次回は、**Taiga 4.7から6.8へのデータ移行**に関する詳細なブログも公開予定ですので、お楽しみに！