Amazon just announced a large price reduction for its cloud-hosted NoSQL DynamoDB database service. Provision throughput capacity – that is, the number of reads and writes your application uses – now costs 35 percent less, and the price for indexed storage dropped by 75 percent.
DynamoDB launched just over a year ago and provides developers with a cloud-based NoSQL database that is meant to be ultra-scalable and highly reliable. Amazon, of course, already offered a database service with Amazon RDS, a more traditional SQL-based service. DynamoDB works differently, though, and automatically spreads data and traffic across different servers for increased performance. All the data is also automatically replicated across three of Amazon’s availability zones to improve reliability and data durability.
DynamoDB uses SSD-backed storage servers that “are specifically designed to support DynamoDB,” Amazon CTO Werner Vogels writes on his personal blog today. The company was able to reduce costs by tuning the hardware based on what the team learned over the last year and bringing the cost of the hardware platform down. Amazon also found ways to improve its storage engine and other internal components. He also notes that the service has grown quickly, “which allows us to take advantage of economies of scale.”
In addition to the price reduction, Amazon also announced that it is launching a new Reserved Capacity pricing model for DynamoDB that allows developers to buy a set number of read or write capacity units and pay for them upfront. This is similar to Amazon’s EC2 Reserved Instances, and users can expect savings between 54 percent and 77 percent compared to the on-demand pricing.
As Vogels notes in his blog post today, DynamoDB was born out of the company’s experience with scaling relational databases. There are still good reasons to choose a relational database for some applications, Vogels writes, but “from our own experience designing and operating a highly available, highly scalable ecommerce platform, we have come to realize that relational databases should only be used when an application really needs the complex query, table join and transaction capabilities of a full-blown relational database.” In his view, no single database technology can meet every need, so “a combination of NoSQL and relational database may better service the needs of a complex application.”