HerokuのMongoDBデータベースアドオンをSaaS製品に使用しています。AmazonがクラウドデータベースサービスであるDynamoDBを立ち上げたので、それがNoSQLオファリングのランドスケープをどのように変えるのか疑問に思いましたか?
特にクラウドベースのサービスまたはSaaSベンダーの場合、MongoDBと比較してDynamoDBの使用はどのように改善されますか?コスト、パフォーマンス、スケーラビリティ、信頼性、ドライバー、コミュニティなどの利点はありますか?どちらを使用しますか?
手始めに、Amazonのエキスパートチームによって完全に管理されるため、エンドユーザー(開発者)からの入力がほとんどなく、非常に適切にスケーリングできることに間違いありません。
また、Amazonによって構築および管理されているため、インフラストラクチャと非常にうまく機能するように設計されているため、パフォーマンスが一流であると想定できます。インフラストラクチャ用に特別に構築されていることに加えて、ストレージとしてSSDを使用することを選択しているため、ディスクスループットは、HDDでサポートされているAWSの他のデータストアよりも大幅に高くなります。
ドライバーはまだ見たことがありませんが、コミュニティがこれにどのように反応するかを説明するには時期尚早だと思いますが、Amazonにはすべての最も人気のある言語のドライバーがあり、コミュニティはこれを十分に受け入れて、次に作成するでしょう。追加のドライバーとツール。
MongoDBは、DynamoDBがSaaSホストとしてのみ利用可能)であるため、どこでも(AWSや他のクラウドサービスや社内を含む)インストールできるソフトウェアであることを考慮する必要があると思います。 Amazon(AWS)からのサービス。アプリケーションを社内でホストするオプションを保持する場合、DynamoDBはオプションではありません。AWSの外部でホストすることを検討しない場合は、非常に具体的な機能を除いて、DynamoDBをデフォルトの選択にする必要があります。より高い配慮が必要です。
次のリンクに、DynamoDBとCassandraの属性をまとめた表があります。
http://www.datastax.com/dev/blog/Amazon-dynamodb
より使いやすくなるためにDynamoDBを改善する必要があるのは、主キー以外の列にインデックスを付ける可能性です。
更新1(2013年6月4日)
2013年4月18日、Amazonはローカルセカンダリインデックスのサポートを発表しました。これにより、DynamoDBが優れたものになりました。
Herokuのアドオンを通じてMongoDBを使用すると、MongoDBが効果的にSaaS製品にもなります。
実際には、1つの永続化ソリューションを別の永続化ソリューションと比較するのではなく、選択したプロバイダーがAmazonが提供できるサービスと比較してサービスを比較します。
これは非常に難しいことです。各プロバイダーはさまざまな価格でさまざまなレベルのサービスを提供するため、開発目的で独自のハードウェアでローカルに実行するオプションを歓迎するオプションと考えることができます。
私は正直でなければなりません。新しいDynamoDBについて聞いてとても興奮し、昨日のウェビナーに参加しました。しかし、彼らが言ったすべてがまだ非常にあいまいだったので、現時点で決定を下すことは非常に困難です。私は彼らのサービスを通じて許可/使用される予定の機能を知りません。
私が知っていることの1つは、スケーリングが自動的に処理されることです。これは非常にすばらしいことですが、まだ多くの未知数が存在するため、すべての事実が明らかになり、使用を開始できるようになるまで、実際に優れた分析を行うのは困難です。
これまでのところ、私は今まで取り組んできたプロジェクトにおいて、mongoが(個人的に)私にとってはるかにうまく機能していると考えています。
ほとんどのDBの決定と同様に、ニーズに最も適したものをプロジェクトで決定することで、プロジェクトを決定することができます。
ベータ版であり、最新で最高のものを採用してテスターになるために出荷するつもりはありませんが、今のところ、私は製品に関する詳細情報を心配しています。
DynamoDBと他のNoSQLオファリングの主な違いの1つは、プロビジョニングされたスループットです。テーブルの特定のスループットレベルに対して支払い、データが適切にパーティション分割されていれば、常にスループットが満たされると期待できます。したがって、アプリケーションの負荷が増大しても、スケールアップしてパフォーマンスをほぼ一定に保つことができます。
Amazon DynamoDBは、かなりまともなNoSQLソリューションのようです。それは高速で、かなり使いやすいです。 AWSアカウントを持っていることを除いて、実際にはセットアップやメンテナンスは必要ありません。現在、機能セットとAPIはMongoDB/CouchDB/Cassandraに比べるとかなり小さいですが、開発者コミュニティからのフィードバックを受けて、時間の経過とともに増えると思います。現在、すべての 公式AWS SDK にはDynamoDBクライアントが含まれています。
長所
短所
これは、スケーラブルなアプリケーションでのセッションストレージの代替として非常に優れています。もう1つの有効な使用法は、大規模なシステムでのロギング/監査です。頻繁な拡張や変更を伴う機能豊富なアプリケーションには適していません。