swingcompass-ai.com の DNS も Cloudflare へ移す。動画を独自ドメインで配信するには、そのドメインが同じ Cloudflare アカウント内にある必要があるため。| 項目 | 現状 | 移行後 |
|---|---|---|
| ストレージ処理のコード | backend/app/services/storage_s3.py が S3 互換実装 | 変更なし |
ドメイン swingcompass-ai.com | Amazon Registrar 登録 / Route 53 で DNS 管理 | DNS を Cloudflare へ(レジストラ移管は任意) |
ドメイン swingcompass.ai | DNS が引けない=未取得の可能性 | 要確認(アプリ内で参照中) |
| S3 のデータ量 | 未計測 | 10GB 未満なら R2 の無料枠内 |
| Cloudflare アカウント | course-guides 用が既存 | SwingCompassAI 専用を新規作成 |
※ swingcompass.ai は frontend/src/lib/share.ts(招待リンク)と legal.ts(サポート窓口メール)が参照しています。取得済みかどうかの確認が必要です。
順序が重要です。DNS を先に移さないと、動画配信用の独自ドメイン設定が後戻り作業になります。
専用メールアドレス・2要素認証・クレジットカード登録(R2 有効化に必須。10GB まで無料)
無料・即日。ここが最初の山場
ドメインの管理会社そのものを移す。急がない
保存場所は APAC(日本のユーザーに近い)
Super Slurper で S3 から一括コピー
Vercel と Worker ホストの両方
アップロード → 解析 → 再生を通しで確認
差分コピー → 様子見 → S3 削除
DNS とは、ドメイン名(swingcompass-ai.com)を実際のサーバーに結びつける「住所録」です。今はこの住所録を AWS の Route 53 が持っており、それを Cloudflare に引っ越します。
swingcompass-ai.com → Free プランbeta. の接続先)Cloudflare の「プロキシ(オレンジ色の雲アイコン)」は、最初はオフ(グレー)にしておきます。Vercel 宛のレコードをプロキシすると、SSL 証明書やリダイレクトで不具合が出ることがあります。
DNS 移行とは別の作業です。急がないので数ヶ月後でも構いません。Cloudflare Registrar は上乗せ手数料なしの原価提供で、.com も .ai も対応しています。
バケットとは、動画ファイルを入れておく箱のことです。名前は swingcompass、保存場所は APAC を選びます。作成後、読み書き権限を持つ「R2 API トークン」を発行します。
データのコピーは Super Slurper が推奨。Cloudflare 公式の一括コピー機能で、管理画面から AWS のアクセスキーを渡すだけで進捗と失敗件数が見えます。細かく制御したい場合は rclone を使います。
rclone copy s3:swingcompass-prod r2:swingcompass --progress --transfers 16
Vercel(frontend / admin-frontend / API)と Celery Worker ホスト(Fly.io / Railway)の両方に設定します。片方だけだと解析結果が保存されず、原因の分かりにくい不具合になります。
STORAGE_BACKEND=s3 S3_ENDPOINT_URL=https://<ACCOUNT_ID>.r2.cloudflarestorage.com AWS_REGION=auto AWS_ACCESS_KEY_ID=<R2 トークンの Access Key> AWS_SECRET_ACCESS_KEY=<R2 トークンの Secret> S3_BUCKET_NAME=swingcompass
検証項目:
切替後に増えた分だけ再コピー
すぐ消さない。不具合が出たら戻せる状態を保つ
infra/terraform/ の AWS 定義も削除か保存かを判断
infra/backend-taskdef-no-migration.json にデータベースのパスワードが書かれた状態でコミットされています。AWS 撤収時にそのデータベースごと消えますが、git の履歴には残るため「漏れた認証情報」として扱い、他所で使い回していないか確認してください。swingcompass.ai の取得状況が不明です。アプリ内の招待リンクとサポートメールアドレスがこのドメインを前提にしています。未取得なら、新しい Cloudflare アカウントで取得すれば R2 の独自ドメイン配信にもそのまま使えます。| やること | 場所 | 備考 |
|---|---|---|
| Cloudflare 専用アカウント作成 | cloudflare.com | 専用メール+2要素認証+クレカ |
| S3 のデータ量を確認 | AWS マネジメントコンソール | バケット →「メトリクス」タブ |
swingcompass.ai を持っているか確認 | ドメイン購入履歴 | 未取得なら取得の要否を判断 |
この3つが揃えば、DNS レコードの突合と環境変数の切替はこちらで進められます。