MongoDBのFlex planが初期のスタートアップに向いてる
こんにちは,Brownです.
今日はMongoDBで新しくGAしたプランであるFlexのご紹介です.
MongoDB Flexの概要
- DBに対するopsで料金が決まるプラン体系
- 最小は0.0110USD/hourで,月8ドルから使える
MongoDB Flex と Dedicated Plan, M{0,2,5} Plan の違い
詳細は料金プランに書いてあるのでそっちを見てもらうとして,実際のユースケースにおいて主に気にすることをここでは書きます.
良いこと
-
基本的に通常のユースケースで必要となるような機能は使える
-
月8USDから利用できる
- Dedicated PlanでM10を立てると,1ヶ月で80USDくらいかかる
- M{0,2,5} Planと比較すると,M2よりも安い
-
Automated, no downtime upgradesがサポートされている
- M{0,2,5} Planではno downtime upgradesがサポートされていないので,アップグレード時にダウンタイムが出る
-
Vector SearchやStreaming ProcessingなどはDedicated Cluster同様にサポートされてる
制約
- M{0,2,5} Plan同様にSLAがない
- Dedicated Planでは99.995%
- Private networkingがサポートされない
留意点
- M{0,2,5} Plan同様に,Dedicated PlanからFlex Planに変更できない
- mongodump→mongorestoreをする必要がある
MongoDB Flexが個人開発〜シード期のスタートアップまで向く理由
※シード期はプロダクトがまだ検証フェーズで,サービスをリリースしていないか,リリースしていても検証版のようなサービスフェーズの企業のことを指します.
- 個人開発〜シード期の企業の場合,大半は売り上げがゼロからMRR(Monthly Recurring Revenue,月次経常収益) で数十万くらいの会社がほとんどだと思いますが,そこでもプロダクトのインフラ原価率は計算した上で,コントロールしていく必要があります.
- 例えば,プロダクトの検証フェーズで,そのプロダクトを知人に使ってもらったり,投資家巡りをしたり,ベータ版で細々と公開していて,MRRゼロ円のサービスを考えると,インフラ原価率は安ければ安いほど良いです.他方,事業のスピードを考えると,次のことを考慮する必要があります.
- 構築・ホスティング・メンテナンスに手間がかからないこと
- OSSのDBをさくらインターネットのVPSや,VultrのVPSでセルフホストすると,月数百円でDBがホスティングできますが,DBをセルフホストして,モニタリングするのにはかなり労力がかかる割に,それをやったからといってユーザーに価値提供ができたり,儲かるわけではないので,なるべくかけないほうが望ましいです
- マネージドDBでも安価に利用できること
- 数GBのストレージが利用できるマネージドDBで安いものが少ないです.以下が安価に利用できるマネージドDBです.
- Vultr PostgreSQL:月15USD〜
- Neon PostgreSQL:19USD〜
- 数GBのストレージが利用できるマネージドDBで安いものが少ないです.以下が安価に利用できるマネージドDBです.
- 構築・ホスティング・メンテナンスに手間がかからないこと
上記の2点を考えると,5GBのストレージが利用でき,月8USDから利用できる,ManagedなMongoDBは十分に安く,コストメリットが出せると言えます.
その上,MongoDBの場合,Vector Searchの機能も月8USDの中に含まれているというのが非常に良い点だと思っていて,近年の生成AIブームの中では,特に良い選択肢だと思います.
Cloud SQL・RDS・Auroraではダメなのか?
あくまで私の考えですが,少なくとも上述の規模のアーリーフェーズのスタートアップにおいて,月に100USD近いコストがかかるDBはコストが高いので,使うなというわけではないですが,他の選択肢も引き出しとして持っているほうがいいかなと思います.
その理由として,アーリーフェーズのスタートアップでは,資金調達をしていても,していなくても一円の価値は非常に重く,例えば,創業者の給与、どうやって決めました?起業家と投資家が語る「役員報酬」の実情の記事であるように,Diniiの山田さんは初期の役員報酬を8万円,SmartHRの宮田さんは25万円にされていたそうです.それを考えると,「単にみんな使っているから」「他の会社でも使っていて慣れているから」という理由だけで,月に最低100USD程度(15000円)かかるDBを利用するというのが本当に正しい選択肢なのかは要検討事項だと思っています.
LCCの飛行機で,成田から福岡までの最安が片道5000円くらいなので,15000円あれば,東京から福岡まで営業に行ってもお釣りが来ます.
また,スケーラビリティを備えたエンタープライズレベルのDBの場合,マルチリージョンレプリケーションや,高SLA,高スケーラビリティを備えており,これらを使い倒せるのがこれらのDBのメリットだと思いますが,アーリーフェーズのスタートアップではそれらが真に必要になるケースはどれほどあるのでしょうか?
サーバーレス系のDBとの比較
Neon PostgreSQLも安価に利用できる選択肢のうちの一つですが,Neonではコンピュートの利用時間が課金対象で,例えば,以下のようなケースではComputeがほぼ常にupしている状態になるので,想像以上に料金が上がるということがありそうです.未検証のため,間違っていたら教えてください.
- サービスの死活監視のために,10秒に一回アプリケーションコードからDBに対してping的にselectをかける
- CronJobで定期的にDBに何かをする
このように,Computeのuptimeが課金対象になる場合,NaiveかつアドホックなHTTPリクエストだけを受けるサーバーの場合には向くと思いますが,用途によっては想像よりも料金がかかるので向かないというケースもあると思います.それに比べて,MongoのFlex Planでは一定のopsまでは定額なので,これらの懸念は不要になります.
終わりに
アーリーフェーズのスタートアップではバーンレートのコントロールが重要になりますが,そこでMongoのFlex Planは,Vector Searchも使えるし,よい選択肢になると思います.超初期でドキュメント型のデータ構造にして,スケールしてからそれが合わないのでRDBMSに移行したいとなっても,スケールした時には売り上げが上がっていたり,追加の資金調達をしてエンジニアを増員するようなフェーズだと思うので,それはその時に増えた増えたメンバーでコストをかけてマイグレーション対応をするというのもいいのではないでしょうか.
私が関わっている関連ドキュメント
- MongoDBをサービス無停止で継続的かつ安全にバージョンアップしている話
- インターンシップで全社のMongoDBをアップデートした話
- セルフホストしているMongoDBをMongoDB Atlasに移行した話
追伸
自分が個人開発で運用している書類管理クラウドCloud Linkerでは,MongoのDedicated PlanからFlex Planに移行しました 👌
Discussion