AWS - DynamoDB Essentials

AWS - DynamoDB Essentials

After compute and memory, persistence storage is the main part of any business-critical application i.e. database. When it comes database systems, we have long list of available options that suites different types of data and access patterns. In my opinion, these 2 things are the most important parameters in choosing a database, namely, type of data and access patterns.

RDBMS is the de facto choice for most people due to their familiarity with the databases and the vast availability of support systems and software. You can easily install and get started with any RDBMS. It is super easy to write queries and use other things to speed up your development like ORMs etc. RDBMS are old and very rigid when it comes to schema changes. This is particularly due to increasing the efficiency of storing and retrieving data with minimal storage. Today, storage is cheap and schema requirements are unpredictable. This is where NoSQL Databases comes to rescue. If your data falls on NoSQL category i.e. data is mainly user generated and doesn’t conform to a specific structure, then you can use the DynamoDB to store that data.

DynamoDB is an managed database service from AWS that helps you scale your applications to web scale. You can find lot of key information like comparisons to other NoSQL databases.

Here are the some key features of DynamoDB that can save operational hours for your business-critical applications.

  1. NO infrastructure to provision and manage. This is one of the most important features of DynamoDB that lets you create and get started with tables with few clicks and gets you up and running.
  2. Flexible schema design. NoSQL DB should support schema changes that support iterative development. DynamoDB allows you store arbitrary data in a given document with an option to create index based on the query requirements.
  3. Virtually unlimited scale. You can build your web-scale application on top of the DynamoDB if you get your schema design right.
  4. Zero administrative effort. Since this is a managed services, all the infra is taken care by AWS, so, you can simply focus on building your application without worrying about the DB related tasks. This is a huge advantage compared to using your own server and spending lot of time on admin tasks.
  5. Finally, pay-as-you-go pricing. Your costs are dependent on the usage only, not by the fixes resources you allocate as is the case with other services like VMs and RDS instances.

Common Use Cases

  • User profiles and session stores
  • Real-time analytics
  • Serverless applications (with AWS Lambda)
  • IoT device data management
  • Mobile and gaming backends

Conclusion

DynamoDB is the most scalable database services from AWS that can serve a variety of use cases and scale your business to new heights.