There’s an AWS database solution for just about any project you can imagine: the trick is properly understanding the job each of them does best.
Got data? There’s an AWS database with your name on it.
Importing an existing MySQL, Oracle, Microsoft SQL, or PostgreSQL database into Amazon’s Relational Database Service (RDS), or building your own relational or NoSQL database from scratch is only the very beginning. And don’t forget the preview version of Amazon Aurora – the fifth member of the AWS database family (SQL branch) available to customers through Amazon RDS.
But there are AWS database offerings whose purpose can be downright mysterious to anyone without the background to appreciate it. So I am going to summarize all the many AWS database options, listing each one’s key benefits and some possible use cases.
AWS database: Relational Database Service (RDB)
Amazon’s RDS is a cloud service that makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and scalable capacity while handling time-consuming database management tasks, freeing you to focus on your applications and business.
Key benefits of RDB
- Gives you access to the capabilities of a familiar MySQL, Oracle, SQL Server, or PostgreSQL database engine.
- Scripts, applications, and tools you already use with your existing databases can be used with Amazon RDS.
- Automatically patches the AWS database software and backs up your data.
- You can scale the compute resources or storage capacity associated with your RDB instance through a single API call.
- Two distinct but complementary replication features: Multi-AZ deployments and Read Replicas.
- Simple and fast to deploy.
- Simple and fast to scale.
- Fast, predictable performance.
- No cost to get started – pay only for what you consume.
When you may want to use an RDB
Deploying a highly available (HA), scalable web application can be complex and expensive. RDB can provide you with a relatively straightforward and inexpensive solution. To provide high availability, you simply select Multi-AZ (Multiple Availability Zones) for your AWS database during configuration.
AWS database: DynamoDB
Amazon DynamoDB provides fast and flexible NoSQL database services for apps requiring consistent, low latency at any scale. It’s fully managed and supports both document and key-value data models.
Key Benefits of DynamoDB
- Predictable, scalable, and low-cost performance.
- Easy to set up and manage.
- Automatically spreads data among servers to match capacity needs.
- Automatically and synchronously replicates data across multiple Availability Zones within an AWS Region.
- Supports both key-value and document data models.
- Doesn’t require a schema (data is accessed through primary keys).
When you may want to use DynamoDB
Back-end infrastructures for online games can be difficult to maintain and anticipating usage peaks and heavy write operations are complex to manage. Amazon DynamoDB allows persistent access to player data no matter how large your player population grows. You can enjoy predictable performance with seamless scalability.
ElastiCache lets you deploy and scale a cloud-based in-memory cache. ElastiCache supports two caching engines: Memcached (distributed memory caching) and Redis (key-value cached and store).
Key Benefits of ElastiCache
- Monitors, and in case of failure, replaces nodes.
- Improves web application performance by reducing disk reads.
- Compatible with many existing applications.
When you may want to use ElastiCache
Amazon ElastiCache is particularly useful for read-heavy applications like social networking, media sharing, and gaming, or for compute-intensive workloads.
Amazon Redshift is a petabyte-scale data warehouse service that can analyze data using existing business intelligence packages.
Key Benefits of Amazon Redshift
- Performs parallel queries across multiple nodes.
- Works with PostgreSQL, ODBC, and JDBC drivers.
- Execution speed scales up with cluster size.
- Automatically incrementally backed up to Amazon S3.
- Fast data restores via background spooling.
- Built-in security.
- Adds analytic functions to applications.
- Cost effective over traditional enterprise data warehouse solutions.
When you may want to use Redshift
If your app receives significant request volumes from users (think online content providers like newspapers), you can greatly speed up query response and reduce infrastructure costs.
Amazon SimpleDB lets you store and query data items through its cloud-optimized and flexible non-relational data store architecture.
Key Benefits of Amazon SimpleDB
- Simple streamlined lookup and query functionality.
- Since you don’t need to pre-define your stores with any data formats, you can essentially add or modify attributes on the fly.
- Deeply integrated with Amazon EC2 and Amazon S3.
- Pay only for what you use.
When you may want to use Amazon SimpleDB
If you’re into writing code for simple mobile games, SimpleDB can be perfect for integrating multi-platform mobile devices.
Relational databases on Amazon EC2
Developers may use a number of powerful relational databases on Amazon EC2. An Amazon EC2 instance can be used to run an online database, and the data can be stored within an Amazon EBS volume.
Key Benefits of Amazon EC2
- Amazon EBS provides fast and reliable persistent storage.
- Provisioning can be fast and efficient using pre-built Amazon EC2 Relational Database AMIs.
When you may want to use Amazon EC2
If you wanted to quickly deploy a WordPress site using an Amazon Machine Image (AMI), then this is the database option you would most likely want to use. You can simply select the AMI of your choice and all the heavy lifting would be done for you. Your database will live on an EC2 instance and the data would probably be stored within an Amazon EBS volume.
Once again AWS has left nothing out of its database family (not even big data management solutions like AWS Machine Learning). Whether you need a relational database service with minimal administration; a fast, highly scalable, non-relational database service; an easy-to-operate in-memory cache; a fast petabyte-scale data warehouse; or a relational database you can manage on your own, you will surely find a suitable solution somewhere within AWS.