Today web and mobile applications can go viral any moment and DevOps have to be prepared to meet such contingencies. While it is easy to spawn more server instances using AWS EC2, databases could become bottlenecks in autoscale scenarios. AWS DynamoDB is one such internet-scale database, which can help DevOps scale quickly. How? AWS DynamoDB stores data on Solid State Drives (SSDs) and replicates it synchronously across multiple AWS Availability Zones in an AWS Region to provide built-in high availability and data durability.
As a fully managed NoSQL database service featuring fast performance at any scale, AWS DynamoDB eases developers challenges of provisioning hardware and software, including setting up and configuring a distributed database cluster and managing ongoing cluster operations. Above all, it has the capability to handle all the complexities of scaling and partitions and re-partitions your data over more machine resources to meet your I/O performance requirements. Further, it automatically replicates data across multiple Availability Zones to meet stringent availability and durability requirements.
Making Sense of the Benefits Offered by AWS DynamoDB
AWS DynamoDB was actually born out of AWS’ need for a highly reliable, ultra-scalable key/value database. Chiefly, this database was targeted at use cases that were core to the Amazon e-commerce operation, such as the shopping cart and session service. Here are the five salient Amazon DynamoDB features every DevOps professional must know:
1. AWS DynamoDB Scalability
Today’s web-based applications often encounter database scaling challenges when faced with growth in users, traffic, and data. To address the scalability issues of database, AWS offers DynamoDB which is a fully managed NoSQL database service designed for fast performance at any scale.
By using Amazon DynamoDB, developers who want to develop scalable cloud-based applications can start small capacity initially and then increase the request capacity of specific tables as their app grows in popularity.
Their tables can also scale up to the limit pre-configured. Developers can typically achieve data retrieval in the single-digit milliseconds. DevOps need not worry about managing high availability and data durability because Amazon DynamoDB automatically replicates it synchronously across multiple AWS Availability Zones (AZs).
2. AWS DynamoDB Pricing Mechanism
AWS DynamoDB provides DevOps with the ability to configure the read and write units in seconds as the pricing scheme is based on read and write units per second. DynamoDB can be provisioned according to a number of Write units and a number of Read units allocated.
3. AWS DynamoDB Data Model and Indexing
In AWS DynamoDB, all tables are collections of items. Each item is in turn a collection of attributes. Each table should have one attribute as primary key. And there are two types of data: Scalar and multi-valued. The scalar data type can be a string, a number, or a binary. Whereas the multi-valued can be a string set, number set or binary Set. And every table is indexed by the primary key.
Along with the normal indexing mechanism for keys, AWS DynamoDB also provides a special hash-key mechanism called Hash-Range for indexing a range of values. In the earlier versions of DynamoDB, creating the indexes were mandatory and specified at the time of creation of table itself. Now, a Global Secondary Index (GSI) has been introduced to index alternate keys as well.
4. Data Partition and Replication
DynamoDB stores data in partitions. A partition is an allocation of storage for a table in solid-state drives (SSDs). The partitions gets automatically replicated across multiple AZs within an AWS Region. These partitions are self-management by DynamoDB and are transparent to the users. The user’s database table remains always available based on provisioned throughput requirements like read-write units per second. Moreover, the indexes created for the tables are also stored in these partitions and are completely transparent to the user.
5. AWS DynamoDB APIs
DynamoDB utilizes JSON as a transport protocol, not as a storage format. The AWS SDKs use JSON to send data to DynamoDB, and DynamoDB responds with JSON, but DynamoDB does not store data persistently in JSON format. According to AWS, DynamoDB provides a low-level AWS DynamoDB API to allow developers to interact with the database. The AWS SDKs construct low-level DynamoDB API requests on your behalf and process the responses from DynamoDB. To call the AWS DynamoDB APIs, every HTTP(S) request must be correctly formatted and carry a valid digital signature. The API can be used to put and get objects from the database.
To Wrap Up
AWS DynamoDB is a handy for developers who want to implement e-commerce scale data-centric apps. It is also a great tool for DevOps as it facilitates auto scaling and reduces the complexity of managing the high availability and scaling for peak usage times.
If you are a DevOps person, you should check out how Botmetric can track unused AWS DynamoDB tables and help you optimize your overall AWS costs. Take up 14-day Botmetric trial to know how. And do share your thoughts and experience with us on Twitter, LinkedIn, Facebook.