はじめに
個人開発でまず障壁となるのがDBのコストの高さである。ホスティングサービスだとVercelやCloudflare Pagesなどほぼノーコストで使えるサービスがあるにも関わらずDBになると安くても5000円以上は掛かる。所詮DBサーバー立ち上げるだけで済むとわかっていながらも情弱ながらゆえこのぐらい掛かるだろうと納得させていたが、最近になり国産VPSが安くて最高という結論になったので今までの経験からメリットデメリットをまとめる
国産VPSが最高
国産VPSは安くてスペックも担保できるので最高。さくらVPS、Conoha VPSと何でもよいが自分は安くて評判がよいConohaを利用した。Amazon Lightsailという海外VPSもあるがこれは最悪(後述)。メモリ1G、CPU2コア、SSD100Gで500円程度はパブリッククラウドが主流になった今のRDBと比較すると異常なぐらい安い
なぜ最高か
- 安い✅
- 早い✅
- 簡単✅
- 自由度が高い✅
- 手間がかかる🔺
前述した通り安い、スペックが高い(他のRDBクラウドサービスに比べ)。OSから選べるのでなんでも出来るのでむしろ出来ないことがない(MySQLでもPostgreSQLでも好きなものを入れられるしcron
とか利用してもよいしなんでもできる)。また生成AIが利用できるようになった今、構築やメンテナンスは楽になったのでより一周回ってより利用しやすくなったと思う
なぜ国産VPSは取り上げられないのか
- 構築やメンテナンスが大変
- インフラに関する深い知識が必要
- 流行りもんが良いという悪習
- 国産VPSとかダサい
とくに「流行りもんが良いという悪習」「国産VPSとかダサい」は大きいと感じる。現にちょっと使って記事書けばバズりやすいという目的で使ってる人も多いはず
他と比べる
他のサービスと比べないと国産VPSの良さが伝わらないと思うので自分が使ってみてサービスを完全主観で比べてみる。過去にサービスを運用して使っていたDBや現在olcarというサービスを数年運用して利用したものをピックアップして完全主観で比較する
Cloud SQL
- 高すぎ❌
- 使いたい機能(メリット)がない❌
- 無料枠がない(無料枠期間なら大丈夫)🔺
正直これを個人で選定する理由が全く見当たらない。Query Insightsを特別見やすいとかないしスロークエリに対するサポート機能みたいなのもない。IAMやVPCを連携するために使うなら理解出来るぐらい。多分AWSも同じような感じだと思う。占有CPUだと最低でも月80ドル異常掛かるので普通に高すぎ
Amazon Lightsail
- 安い(?)❌
- 制限ヤバすぎ❌
安いけどまったく使い物にならないのでお金をドブに捨てる覚悟がある人だけ使えば良いと思う。なにがダメかというとCPUバースト制限があり、ちょっと動かしただけでも制限掛かって何も出来なくなる。自分はDBをレストアしただけで使えなくなったので課金しなければ意味なし。月3.5ドルからだが、ストレスたまりすぎるのでマジでおすすめしない
Azure SQL Database
- 安い✅
- SQLServerのみ🔺
オススメの部類に入る。安いし拡張性もある。SQLServerが嫌じゃなければいいと思う。DTUという単位がようわからんし、独自仕様を許容出来ればかなり優秀な部類。Azure Database for MySQL(PosgreSQLもあり)は全く別物で違う料金なので微妙だか多分Cloud SQLよりはコスパいい。月500円ぐらいから始められるので安いしグレード上げても1500円ぐらいなはず
PlanetScale
- 開発体験良い✅
- チューニング体験良い✅
- ちょっと高い(無料枠なし)🔺
- MySQLのみ🔺
開発体験やチューニング体験は抜群に良い。Githubみたいなブランチ機能があり、EXPLAIN
をGUIから確認できる、Recommendationsというチューニング提案の機能もある(チューニング出来るひとは別にいらんという機能ではあるが)。全体的には悪くないと思うのでおすすめな部類。気になる点としてPlanetScale社はレイオフしたりと経営は上手くいってないのでこれからまた動きはあるかもしれない。MySQLのみということと一番しょぼいプランで日本リージョンだと47ドルするので今のレートだと7000円ぐらいするので若干高め
Railway
- 安い✅
- アプリケーションもデプロイ可能✅
- MySQLのみ🔺
- 日本リージョンなし❌
フルスタック開発向けのクラウドPaaSという位置付けだがMySQLのみ作成することも可能。5ドルから始められProでも20ドルなので安心かつスペックもそこそこ高い。コスパが良いのでおすすめ出来るが日本リージョンがないのでそれなりにちゃんとしたアプリケーションを作りたい場合は微妙かも
Neon、Cloudflare D1など
これらは使ったことがないが、おそらくそこまで悪くない気がする。Cloudflare D1はSQLLiteのみなのでそこだけ許容できれば一番良い選択肢と言える可能性が高い
最強は国産VPS+生成AI
ちょっと前まではマネージドサービスでないとメンテナンスコストが掛かって辛いという風潮だったが今はChatGPTをはじめとした生成AIがあるのでトラブったときはすぐに対処できてさらに知識が少なくても簡単に構築できるようになったのでマネージドサービスで担っている利点が少なくなってきたと感じる。DBのメンテナンスコストといえば大体はインデックスなどのパフォーマンスチューニングなのでそれならVPSで十分じゃないかなという結論に至った
VPSはスケーラビリティに弱い点について
スケールアップするならサービス止めれば良いと思う(強引)
DB以外はどうなの
ホスティングやストレージなどに関しては価格もそこまで高くないし、証明書やらCICDやら色々面倒なことが多いのでAWSやGCPを使っても良いと思う(自分はCloud RunをはじめとしたGCPサービス使ってる)もちろんVPNでできることに越したことはないのでそこはケースバイケースで。
まとめ
普通にAWSやGCP高すぎる。長い年月掛けたが、国産インフラが最高で品質も良い(Amazon Lightsailと比較すると涙出る)のでDBは国産VPSが最高という結論に至った。日本は品質に関しては異常なぐらい高いと実感。ビール一杯我慢してVPSを契約しよう