MongoDB Atlasの料金見積もりのコツ
はじめに
NoSQLの選択肢の一つとしてMongoDB Atlasがあります。これはMongoDB社が提供するクラウドサービス(DBaaS)です。他のクラウドサービスと同じように、従量課金制です。月初に先月のInvoice(請求書)が発行され、クレジットカードで支払うことができます。
MongoDB Atlasに限らず、クラウドサービスをエンタープライズ用途で利用しようとするとき、「毎年(毎月)どれぐらいの料金がかかるのか」を見積もる場合がほとんどでしょう。
3大メガクラウドであるAmazon Web Service、Microsoft Azure、Google Cloudでは全て料金計算ツールが用意されており、インターネット環境があれば誰でも使用可能です。概算レベルでの見積もりを作成するぐらいならこちらで十分でしょう。
しかし、MongoDB Atlasの価格に関してはこのようなサイトで価格が提示されているのみで、2024年時点では公式で計算ツールは提供されていません。
クリエーションラインはMongoDBの販売代理店なので、お客様の利用用途をヒアリングし、見積もりの概算をお出ししています。クリエーションラインを通してMongoDB Atlasをご利用いただく場合は、MongoDBのPrepaid subscription形式でのお支払いとなります。1年分の使用量を見積もりを提示し、ご契約いただいた後に1年分のクレジットを事前にご購入いただき、そこから消費していく形となります。
本記事では、公式で計算ツールがない中でどのように見積もりを出しているのか、解説していきます。
構成要素を知ろう
MongoDB Atlasの利用料金を正しく見積もるには、サービスの構成要素を知る必要があります。大きく5つに分かれています。お客様に見積もりをお出しするときも、この構成で提示しています。
- インスタンス
- バックアップ
- データ転送量
- オプション
- サポート(サブスクリプション)
インスタンス
MongoDBが動くためのインスタンスの料金です。M10~M700まで選択でき、後者に行くほど高性能になります。具体的な金額はこちらの「View pricing」からも確認できますが、実際にAtlasにサインアップして、Create New Clusterの画面で実際にどのような金額感になるのか見てみるのが、一番速いと思います。
要件に応じて色々なオプションがあります。実際に「Create Cluster」を押してデプロイするまでは課金されませんので、この画面の中で色々やってみましょう。
たとえば、以下のようなオプションがあります。オプションによっても金額が変動します。
マルチリージョン・マルチクラウド
一番基本的な構成では、同クラウドの同リージョンにレプリカセット構成(プライマリノード1台+セカンダリノード2台)でデプロイされます。より可用性を高めたい場合は、クラウドサービスプロバイダを跨いで3台以上のレプリカセットをデプロイできます。例えばAWSにプライマリとセカンダリが1台ずつ、Google Cloudにセカンダリが1台という構成が可能です。構成するノードが増えれば、料金も高くなります。
ストレージサイズ
最初に選んだインスタンスにストレージとRAMが割り当てられていますが、ストレージをデフォルトより多く積んでデプロイすることができます。
例えば、M10インスタンスはデフォルトであれば10GBですが、最大128GBまで増やすことができます。
M10で128GBにするならM20やM30にしたほうが、金額は安くなるんじゃないか?という考えも出てくると思います。それも含めてこの画面で見積もることができます。オートスケールという選択肢もあるので必要に併せて選びましょう。
MongoDBバージョン
デプロイするMongoDBバージョンが選べます。要件にあわせて選んでください。今のところ、バージョンによって利用料金の違いはありません。
ただし、あんまり古いバージョンを選ぶと、すぐにサポート終了が来てしまうので、お気を付けください。サポート終了になったMongoDBを使っている場合の対応については、このFAQに記載されていますので、参考にしてくださいね。
バックアップ
Atlasでは標準でバックアップの機能が備わっています。通常のCloud Backupと、追加オプションでContinuous Cloud Backupが使用できます。
前者は基盤となるクラウドサービスプロバイダ(AWS、Azure、Google Cloud)の機能を使い、インスタンスのスナップショットを定期的に取得してくれるというものです。Atlas上で取得間隔や保持時間もかなり柔軟に設定できる印象です。後者のContinuous Cloud Backupは、インスタンスのデータに加えてoplogのバックアップを取ることで、1分単位のポイントインタイムリカバリを実現する機能です。通常のCloud Backupは単体で使えますが、Continuous Cloud BackupはCloud Backupのオプション扱いのため、単体では使えません。
取得する頻度や保存日数によって価格が変動するため、実際に使ったことがないとコストを見積もるのが難しく、利用検討段階ではコストが見えにくい機能でもあります。
Atlasのバックアップは、「バックアップの保管のために、常にどのぐらいのディスク容量(GB)を使用しているか」という観点で課金されます。つまり、バックアップデータのサイズ(GB)ベースで課金されます。1GBあたりのバックアップ使用料金はクラスタ作成時に表示されますので、実際に見てみましょう。
こちらの画像では$0.43/GBと書かれていますね。これは、例えば毎月バックアップの保存に10GB使用する場合、$4.3かかるという意味です。
ちなみに、Continuous Cloud Backupを有効にすると料金体系が変わるので、価格表示が消えます。
自分たちの使うインスタンスがどのぐらいバックアップが必要で、どのぐらいコストがかかるのか、この段階では分かりにくいですよね。これは実際に運用しているのを見る方が理解が早いので、弊社の検証環境にあるM10のインスタンスを見てみましょう。
このインスタンスは全体のディスクサイズが8GB(M10の初期値)で、実際には2.8GBがデータ格納として使用されています。
Cloud Backupはデフォルトの設定で運用しています。これは12時間ごとにスナップショットを取得し、2日間保持します。つまり常に4世代分が保管されています。
Cloud Backupのドキュメントを見ると、初回以外は差分バックアップのため、インスタンスのディスク使用量×世代のデータサイズ合計(このインスタンスの場合は2.8GB×4=11.2GB相当)がそのままバックアップのデータ使用量になるわけではないようです。ドキュメントでも次のように記載があります。
For example, a cluster with 10 GB of data and 3 snapshots may require less than 30 GB of total snapshot storage depending on how data changed between snapshots.
https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs/#cloud-backups
また、このインスタンスはContinuous Cloud Backupを使用しているため、インスタンスのバックアップデータにoplogを足した分が、バックアップのデータサイズ使用量となります。Continuous Cloud Backupに基づいた課金体系であれば、バックアップデータ使用量が5GBまでは無料となっています。
oplogのサイズは、デフォルトではインスタンス・ディスクサイズの5%ですが、Atlas上ではベストプラクティスに基づいて自動的に調整されるようです(クラスタ作成時の画面で”Atlas automatically adjusts the oplog size of your cluster to ensure optimal performance and cost based on MongoDB best practices.”の文言あり)
oplogウィンドウサイズ(oplogを何日分保持するか)は指定できますので、「すくなくとも3日前までは戻せる状態にしたい!」という要件がある場合は、ここに反映しましょう。当然、バックアップデータ使用量も大きくなります。
今回例に出したインスタンスは、検証用途で実運用はしていないため、データの増減がほとんど発生していません。そのため、バックアップデータ使用量が2.8GB程度にとどまっています。無料枠の5GBに収まっているため、バックアップコストはほぼ無料となっています。
とあるインスタンスの概算を出してみたので、参考にしてください。
基本的にCloud Backupは有効にするお客様が多いです。本番環境だけCloud Continuous Backupを有効にする、のように使い分けをされていますね。
データ転送量
サイズの大きいデータを出し入れしたり、外部環境(AWSとPrivate Endpoint接続など)と接続したりすると、無視できない額になってきます。クラウドサービスプロバイダによって価格が異なりますので、以下のドキュメントを参照してください。
https://www.mongodb.com/docs/atlas/billing/data-transfer-costs/
オプション
MongoDB Atlasのオプションはかなりの種類があります。現時点で見当たるものはプレビュー版をのぞき全てリストアップしましたが、気が付いたら増えているので、見逃したのもあるかもしれません。正直全く触っていない機能もいくつかあります…。「こんな機能を使ってみたい」というのがありましたら、ぜひお問合せください。私は検証が大好きなので、検証する良い口実になりますし、お客様の要望があるならMongoDBのソリューションアーキテクトも来てくれるはず(多分)
Atlasのオプションについては以下のドキュメントに概要がまとまっているので、こちらも参考にしてください。
https://www.mongodb.com/docs/atlas/billing/additional-services/#additional-services
料金に関しては各ドキュメントに散らばっていたので、2024年1月時点のものをここに集約してみました。
- LDAP認証
- クラスタ(インスタンス)の利用料金が15%割増しになります。
- KMSを利用したデータ保存時の暗号化
- クラスタ(インスタンス)の利用料金が15%割増しになります。LDAP認証が有効な場合は追加金額となりません。
- Database Auditing
- MongoDBの監査ログを取得する機能です。クラスタ(インスタンス)の利用料金の時間単価を10%割増しとなります。
- Push-Based Log Export
- AWSのS3にログを転送する機能です。こちらはデータ転送量(Data Transfer)の料金に乗ってきます。
- Private Endpoints
- Atlasのインスタンスはインターネット越しに接続できますが、こちらを使うと、外部の環境と閉じたネットワークで接続できる機能です。例えばAWS上にある自社のシステムとセキュアに接続したいときに使います。こちらはデータ転送量のコストにのってきます。
- Atlas Online Archive
- Cloud Backupと混同しそうになりますが、アクセス数の低いデータを読み取り専用のフェデレーションデータベースインスタンスに移動する機能です。リストアも出来ますが、バックアップとは異なる目的の機能なので、どちらかを使うというわけではなく、バックアップと併用するのが良さそうです。価格は保存されるデータ量と処理・転送時にかかるデータ量からコストを計算します。詳細は以下のリンクも見てみてください。
- https://www.mongodb.com/docs/atlas/online-archive/manage-online-archive/
- https://www.mongodb.com/pricing
- MongoDB Charts
- MongoDBデータを視覚化するツールです。2022年で少し古い記事となりますが、弊社ブログで李さんが執筆しています。見てみてください。料金に関してはデータ転送量の料金にのってきます。毎月1GBまでは無料です。料金はこちらに掲載されています。
- Atlas Search
- MongoDB Atlasで日本語を含む多言語の全文検索サービスです。こちらも2022年で少し古い記事ですが、こちらも弊社ブログで李さんが執筆しているので見てみてください。料金はこちらに掲載されています。
- BI Connector
- Tableauなどでデータを視覚化・分析したい場合に、Atlasから連携するコネクタを有効にします。料金はクラスタ作成時に出てきます。
以下のドキュメントを確認したところ、BI Connectorのコストはインスタンスの料金に加算されて請求されるとのことです。
https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs/#bic
- App Services(Realm)
- こちらはオプションというよりは、Webアプリやモバイルアプリの開発向けプラットフォームです。今はRealmからAtlas Device SDKという名前になりました。2021年の記事になりますが、弊社メンバーがThink ITで連載していたので知りたい方はこちらも読んでみてくださいね。
- https://www.creationline.com/tech-blog/50059
- 料金についてはこちらから。
- https://www.mongodb.com/docs/atlas/app-services/billing/
実は他にもPreviewの機能などがあるんですが、多すぎるので、ここまでにさせていただきます。
オプションの中では、Detabase Auditingはほとんどのお客様が有効化されていて、他は必要に応じてという印象です。
サポート料金(サブスクリプション)
こちらはMongoDB社が公式で提供するものと、クリエーションラインが提供するものがあります。
前者はBasicからEnterpriseまで4段階のサポートプランがあり、クリエーションラインを通して契約される場合は、基本的にPro以上のプランを必須で加入していただいています。
料金とサービスの違いについては以下の画像をご確認ください。こちらはAtlasのサインアップ後、ORGANIZATION -> Support -> Support Plan -> Editから見られます。(なぜかMongoDBのpricingのサイトからは見られない…)
クリエーションライン提供のサポートについては弊社セールスまでお問合せください。
おわりに
いかがでしたでしょうか。実はこんな感じで、毎回めちゃくちゃ泥くさく見積もりを作っています。複数パターンお願いされたときはヒィヒィ言っています(もちろんお仕事なので、ちゃんと作っていますよ)
「MongoDB Atlas使ってみたいけど、金額感がよく分からなくて踏み切れないんだよなあ…」という方の参考になれば嬉しいです。