2025-12-26
Laravel
Laravel ForgeとLaravel VPSに移行中
しばらくはForge+EC2とLaravel Vaporを併用していたけど急にVaporが決済に失敗するようになったのでとりあえず全部Forgeに移行中。
新しいForge
今年リニューアルしたForgeはゼロダウンタイムデプロイに対応してるけど新しく登録したサイトでしか有効化できないのでこの機会に全サイトを新サーバーで再登録。
Laravel VPS
Forgeからのみ起動できるVPS。実体はDigitalOceanなので日本リージョンがない。
若干の遅さはCloudflareを挟んでなんとか誤魔化す。
今まではRDSでデータベースを分けてたけど今回はVPS内にDBも入れて、複数VPSでDBを分ける構成に。
RDSが単一障害点になってたので分散。
DBのレコードが多いサイトはVPS1台に1サイトで割り当てて、軽いサイトは複数まとめて1台に。
今後また変えるかもしれないのでこれでいいだろう。
Laravel CloudはAWS EC2+Cloudflare。こっちも日本リージョンには未対応だけどAWSなら対応の可能性はあるのでいずれはLaravel Cloudかも。
メールはAWS SES
これだけAWS。
ストレージはS3互換のCloudflare R2
Laravelのドキュメントでは.envで環境変数設定すれば使えるように書いてるけど他のAWSサービスと併用する場合はAWSの環境変数をそのままは使いにくい。
config/filesystems.phpにR2用の設定を増やして環境変数も変える。どこにも情報ないので分かりにくいけどregionはautoにする。
'r2' => [
'driver' => 's3',
'key' => env('R2_AWS_ACCESS_KEY_ID'),
'secret' => env('R2_AWS_SECRET_ACCESS_KEY'),
'region' => env('R2_AWS_DEFAULT_REGION', 'auto'),
'bucket' => env('R2_AWS_BUCKET'),
'url' => env('R2_AWS_URL'),
'endpoint' => env('R2_AWS_ENDPOINT'),
'use_path_style_endpoint' => env('R2_AWS_USE_PATH_STYLE_ENDPOINT', false),
'throw' => false,
'report' => false,
],
キャッシュもセッションもキューもdatabaseドライバー
最近のLaravelはdatabaseがデフォルト。速度は遅いはずだけどそこまで気にする必要がないなら全部databaseドライバーにすると管理しやすい。
Horizonを使っている場合のみredis。