本番環境へのデプロイ
本番環境は当面 Vercel の東京リージョンを使う予定です。
Vercel への具体的なデプロイ方法については、本サービスの開発環境構築について記載した記事 「Docker + ... の導入手順」 に記載しましたのでそちらを確認してください。
開発中は適当なタイミング (理想はローカルPCでの自動テストに合格した後) でデプロイすることになります。現状では git push が成功すれば Vercelデプロイに自動で進みます。理想はプルリクエストを送出後のマージをトリガーすることだと思っています。
Vercel CDN について
今回、Vercel 東京リージョンを採用しているので、オリジンサーバは東京に収容されています。Vercel でホストすると Vercel CDN を利用できるため、ユーザのロケーションに応じて、最適な Vercel のエッジロケーションに収容されているキャッシュサーバが応答してくれるはずです。グローバルアクセスであっても低レイテンシーが期待できます。
本番環境 = 開発環境?
しばらくは開発環境イコール本番環境なのですが、サービス開始前に開発環境とは別に本番環境をつくるんだと思います。Vercel 上には本番プロジェクトと開発用プロジェクトがあって、それぞれ別の Github リポジトリに紐づくことになると思います。
名前解決
サービス開始時には正式の URL から 本番環境のサービスにアクセスできるようにしますが、これは DNS に Vercel が指定する A レコードと CNAME レコードを設定することで実現できます。
弊社では普段は aws Route53 を利用していますが、本サービスのドメイン .site は Route53 では利用できませんでした。
そのため本サービスでは CROUDFLARE の DNS で名前解決を行なっています。CROUDFLARE からの接続はクセがありますので、CROUDFLARE の DNS を使われる場合は以下を注意してください。
CROUDFLARE + Vercel CDN で発生するリダイレクトエラー
CROUDFLARE のデフォルト設定の場合は、クライアントからサービスにアクセスするとリダイレクトエラーが発生して接続できません(2022年5月現在)。公式ページには以下の記述があります。
ここに記載されている解決方法の2で解決しました。
- SSL / TSL タグの [概要] タグをクリック
- フレキシブル が選択されている場合は フル に変更する
ラジオボタンを操作すると即設定が変更されますので注意してください。
バックエンドについて
バックエンドはサービス開始時点は Supabase を使います。Supabase も本番環境では東京リージョンを使いますので、フロントエンドと近距離で連携できます。
また、バックエンドも本番環境と開発環境でプロジェクトを分けて利用する予定です。