Laravel Cloud
Laravel Forge+Laravel VPSに移行してたけど結局すぐにLaravel Cloudに再度全部移行。
小規模な利用ならCloudが一番安そう。
Laravel VPSはスペックを上げると下げられない。EC2の感覚で使えない。
Cloudは柔軟に変更できるのでこっちのほうが良さそう。
自由に使える度はForge>Cloud>Vaporの順。
Laravelの普通の使い方の範囲からタスクスケジュール、キュー程度ならどれでも使える。
Forgeはサーバー1台を丸ごと管理してるので大体なんでも可能。BlueskyのLabelerのようなnginxの設定変更が必要なことをするならForgeでしかできない。
VaporはAWS Lambdaの制約に縛られるのでできないことが多い。タスクスケジュールとキューはVapor側の機能でなんとか実現できているけど他のバックグラウンドプロセスを動かし続けることはできない。
CloudはForgeとVaporの中間。バックグラウンドプロセスを長時間動かせるけどForgeほどの自由はない。Laravelの一般的な使い方の範囲ならCloudで困らない。
データベースはパブリックアクセス可能
Laravel CloudのデータベースはMySQL(休止なし)とPostgreSQL(休止あり)が選べてどちらもパブリックアクセス可能にできる。
複数アプリで共有可能。
Cloudを使うのさえもったいない規模のアプリはDBだけCloudを使ってVercelなどの他のサーバーから接続するのもあり。
休止中はタスクスケジュールやキューは動かない
Laravel Cloudは自動休止で余計な費用を抑えるようになっているけどその間はタスクスケジュールやキューも動かない。
小規模アプリの用途なんてタスクスケジュールをきっかけにした自動化なので期待通りに動かないこともある。
1日1回の低頻度ならGitHub Actionsなどの外部サービスで実行するのもあり。DBと合わせればRDSに接続していた以前と同じことができる。
逆にずっと動かしていたいアプリは休止機能を無効に。
コスト
最低限の月額で計算。
- Forge: 12ドル+VPS(RAM1GB)6ドル=18ドル
- Vapor 39ドル+AWS費用。AWS使ってる人なら分かるようにRDSが一番高い。
- Cloud: Starterプラン0ドル+App cluster(Ohio, 1flex, RAM256MiB)4ドル+DB(MySQL, 5GB)5ドル = 9ドル
Growthプランなら20ドル。Starterで十分なので現実的なRAM1GBにしても7ドル。1アプリならCloudが一番安い。
ただしForgeはVPS1台に複数アプリを載せられるのでアプリ数が多い場合はForgeのほうが安くなる可能性がある。
CloudはアプリごとにApp clusterが必要。代わりに休止機能で費用を抑える設計。
Laravel VPSはRAM2GBに上げると13ドル。上で書いたように下げられない。
Cloudはアプリごとに別サーバーで動いてるので少ないRAMでも大丈夫。
Laravel VPSで2GB必要だったアプリがCloudでは1GBで十分。
VirginiaとOhioのアメリカリージョンだけ少し安い。今後日本リージョンに対応しても若干高いはず。