Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Amazon SimpleDB vs Amazon DynamoDB

I have some basic understanding what Amazon SimpleDB is, but according to the Amazon DynamoDB description it seems to be almost the same: a NoSQL Key-value store service.

Can someone simply explain the main differences between them and tell in which cases to choose one over the other.

like image 729
Bilgin Ibryam Avatar asked Jan 22 '12 13:01

Bilgin Ibryam


People also ask

What is the difference between SimpleDB and DynamoDB?

SimpleDB has a strict storage limitation of 10 GB. However, DynamoDB has no storage limitations for the data. It is highly scalable in terms of both storage and computation. SimpleDB can handle max up to 25 Write Operations/Second.

What is difference between Amazon SimpleDB and Amazon RDS?

Amazon SimpleDB provides simple index and query capabilities. Amazon RDS enables you to run a fully featured relational database while offloading database administration. And, using one of our many relational database AMIs on Amazon EC2 and Amazon EBS allows you to operate your own relational database in the cloud.

Is AWS SimpleDB deprecated?

SimpleDB is deprecated, more expensive than DDB, and kind of weird to use. Backing your keystore with a deprecated service just sounds like a road to many sleepless nights ;) The utility does depend on three external services: DynamoDB, KMS, and IAM (for permissioning).

What is SimpleDB in AWS?

Amazon SimpleDB is a highly available NoSQL data store that offloads the work of database administration. Developers simply store and query data items via web services requests and Amazon SimpleDB does the rest.


6 Answers

This is addressed by the respective FAQ Q: How does Amazon DynamoDB differ from Amazon SimpleDB? Which should I use? (hash link no longer works, but use in-page Find to locate question within page) to some extent already, with the most compact summary at the end of the paragraph:

While SimpleDB has scaling limitations, it may be a good fit for smaller workloads that require query flexibility. Amazon SimpleDB automatically indexes all item attributes and thus supports query flexibility at the cost of performance and scale.

So it's a trade off between performance/scalability and simplicity/flexibility, i.e. for simpler scenarios it might still be easier getting started with SimpleDB to avoid the complexities of architecturing your application for DynamoDB (see below for a different perspective).

The linked FAQ entry references Werner Vogel's Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications as well, which is indeed an elaborate and thus highly recommended read concerning the History of NoSQL at Amazon in general and Dynamo in particular; it contains many more insights addressing your question as well, e.g.

It became obvious that developers [even Amazon engineers] strongly preferred simplicity to fine-grained control as they voted "with their feet" and adopted cloud-based AWS solutions, like Amazon S3 and Amazon SimpleDB, over Dynamo. [addition mine]

Obviously DynamoDB has been introduced to address this and could thus be qualified as a successor of SimpleDB rather than 'just' amending their existing NoSQL offering:

We concluded that an ideal solution would combine the best parts of the original Dynamo design (incremental scalability, predictable high performance) with the best parts of SimpleDB (ease of administration of a cloud service, consistency, and a table-based data model that is richer than a pure key-value store).

Werner's Summary suggests DynamoDB to be a good fit for applications of any size now accordingly:

Amazon DynamoDB is designed to maintain predictably high performance and to be highly cost efficient for workloads of any scale, from the smallest to the largest internet-scale applications.

like image 179
Steffen Opel Avatar answered Oct 03 '22 19:10

Steffen Opel


SimpleDB does not seem to be getting any love from Amazon these days - its hard to even find where to provision it in the AWS Console. Seems like SimpleDB is no longer being iterated on - use DynamoDB as your first choice for a Document Database on AWS.

SimpleDb is no longer really "iterated on". Meaning that there is no new development in the future for simpledb. It is "maintained and supported", but it won't be getting any better.

like image 25
saille Avatar answered Oct 03 '22 18:10

saille


3 key differences:

  1. Indexing

    • SimpleDB creates index for "EVERY" field in a table.
    • DynamoDB you have to set indexing fields before creating the database, and cannot be modified.
  2. Pricing:

    • SimpleDB pricing is based on machine hours and storage capacity
    • DynamoDB charge money by capacity of Read/Writes records per seconds.
  3. Scalability:

    • SimpleDB requires manual partitioning if data storage exceeds 10GB.
    • DynamoDB automatically distributes data under the hood, thus provides very high scalability.
like image 30
Sagar Ranglani Avatar answered Oct 03 '22 19:10

Sagar Ranglani


One of the differences used to be (as @Mason Zhang states in his article above) in indexing. DynamoDB used to limit you to creating indexes at the time of creating the table. However, now (since early 2014), there is the concept of Global Secondary Index (GSI). The GSI can be created on the table at any time. Upto 5 are supported. So, indexing is no longer a blocking issue for many use cases.

You should also know that SimpleDB has size and performance limits. (10GB and say, 25 requests/sec)

Perhaps eventually, DynamoDB will replace SimpleDB in all but the most simple use cases.

like image 36
kalyanswaroop Avatar answered Oct 03 '22 18:10

kalyanswaroop


In simple terms both data stores are NoSql.

The difference lies on scalability ( and a few other aspects , but scaling carries the biggest value in my opinion). SimpleDB is quite similar to MongoDB but has a bunch of limitations when it comes to scaling.

But DynamoDB lets you provision small , and scale up as many Provisioned Throughput you need. And scale down when it's not required. ( ie. During a promotion , Celebrity referral signups etc scenarios like this will have a time-based spike of hardware requirements )

like image 24
Gayan Hewa Avatar answered Oct 03 '22 19:10

Gayan Hewa


These are two major differences, you should be aware of.

With DynamoDB You can build applications with virtually unlimited throughput and storage.That is not the case with SimpleDB.

  • 1: STRICT STORAGE LIMITATION OF 10GB

SimpleDB has a strict storage limitation of 10 GB. However, DynamoDB has no storage limitations for the data. It is highly scalable in terms of both storage and computation.

  • 2: MAX UP TO 25 WRITE OPERATIONS/SECOND

SimpleDB can handle max up to 25 Write Operations/Second. No such limit in DynamoDB.

like image 32
Sateesh Avatar answered Oct 03 '22 18:10

Sateesh