Skip to content
Latchkey

MongoDB vs DynamoDB: ドキュメントかマネージドKVか?

MongoDBは自分で運用またはホストする柔軟なドキュメントデータベースであり、DynamoDBは予測可能なスケーリングを備えた完全マネージドのAWSのkey-valueおよびドキュメントストアです。

MongoDBは豊富なクエリ、aggregation pipeline、セカンダリインデックス、柔軟なドキュメントモデルを提供し、self-hostedまたはAtlas経由で利用できます。DynamoDBはserverlessでシームレスにスケールし、リクエストまたはキャパシティ単位で課金されますが、アドホックなクエリが限定的なため、キーとアクセスパターンの設計を事前に慎重に行う必要があります。MongoDBはクエリの柔軟性を、DynamoDBはAWS内での手離れの良いスケールを重視します。

MongoDBDynamoDB
モデルドキュメントkey-value / ドキュメント
クエリ豊富、アドホックキー/インデックスのアクセスパターン
運用self-host または Atlas完全マネージド(AWS)
スケーリングsharding自動、serverless
最適な用途柔軟なクエリAWSネイティブなスケール、低運用

ユースケースとスケーリング

MongoDBは、スケーリングの管理やAtlasへの支払いを受け入れられる場合の、柔軟で進化するクエリとaggregationを必要とするアプリに適しています。DynamoDBは、既知のアクセスパターンを持ち、データベース運用をゼロにしたいAWSネイティブで大規模なワークロードに適していますが、モデリングの規律とベンダーロックインが代償になります。

CIにおいて

MongoDBはservice containerとして簡単に動作します。DynamoDBはオフラインテスト用のDynamoDB Localがあるため、実際のAWSにアクセスせずに済みます。どちらもマネージドrunnerに適しており、より高速なrunnerはcontainerやローカルエミュレータの起動とテスト実行を短縮します。

結論

柔軟でアドホックなクエリとaggregation、クラウド間で移植可能なものが欲しいなら、MongoDBです。AWSネイティブで、予測可能なアクセスパターンと最小限の運用による大規模スケールが欲しいなら、DynamoDBです。この決定はしばしば、クラウドへのコミットメントと、アクセスパターンがDynamoDBのモデリングに十分固定されているかどうかに左右されます。

関連ガイド