Table of contents
AWS Purpose-built databases Use Cases/Considerations
AWS Database Services - Introduction
Amazon RDS Amazon Relational Database Services (RDS) offers a full managed, scalable relational database with support for several database engines including Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle and SQL Server.
Amazon Aurora Amazon Aurora is a MySQL and PostgreSQL compatible relational database built for the cloud. It is well suited for workloads with requirements for high concurrency, high volume, low latency, or advanced replication.
Amazon Redshift Amazon Redshift is a fully managed, purpose-built, petabyte-scale data warehouse service in the cloud. It is also integrated with our data lake and other AWS database services for visibility into end-to-end business operations without data movement.
Amazon DynamoDB Amazon DynamoDB is a non-relational key-value database that delivers single digit millisecond performance at any scale. DynamoDB is also a wide-column and document database.
Amazon DocumentDB Amazon DocumentDB (with MongoDB compatibility) offers a fast, scalable, highly available document database service that is fully managed and supports MongoDB workloads.
Amazon ElastiCache Amazon ElastiCache offers a fully managed in-memory data store using Redis and Memcached. ElastiCache integrates with other AWS services to offer data caching for a wide variety of solutions.
Amazon Neptune Amazon Neptune is a fully managed graph database supporting highly connected datasets. Use cases include fraud detection or recommendation engines.
Amazon QLDB Amazon Quantum Ledger Database (Amazon QLDB) is a fully managed database that provides a transparent, immutable, and cryptographically verifiable transaction log.
Transactional compliance considerations
Strong consistency/Immediate consistency
Relational databases such as Amazon Aurora can provide ACID (Atomicity, Consistency, Isolation, and Durability) compliance and it is used where data is required to have strong consistency.
Non-relational databases can also provide ACID (Atomicity, Consistency, Isolation, and Durability) compliance such as the Amazon DynamoDB transactions feature or Amazon Neptune.
Eventual consistency
Use cases where performance is much more important can benefit from the extremely low latency available with Amazon DynamoDB or Amazon ElastiCache.
Data longevity
When designing a database in AWS, it is important to consider how long the data in your workload will need to be accessed.
Frequent access to data over an extended period
Amazon DynamoDB offers millisecond response rates for customer profiles and other active, fast-growing key-value datasets.
Infrequent access to an older dataset
Amazon Redshift Spectrum can query data stored in Amazon S3 and join it data stored locally in Amazon Redshift tables. This allows us to store data at the lower Amazon S3 prices when appropriate.
Short-term, low-latency access to temporary data
Amazon ElastiCache is an in-memory data store for sub-millisecond access to temporary data such as game user sessions.
Choosing a purpose-built database service on AWS
When planning a database for a particular workload, consider both non-relational and relational AWS database services. The following guidelines might be helpful:
• Relational databases add value for structured datasets that require a strict schema and complex querying.
• Non-relational databases are purpose built and optimized to enable high performance for specific data models (key-value store, document, or column-based store) and access patterns.
• Non-relational databases allow design trade-offs that may help us meet critical requirements more easily or more cost-effectively. For instance, speed may be more important than consistency, or a flexible schema may allow you to more efficiently incorporate frequently evolving data sources.
• Relational database solutions may be driven by existing application architecture, data formats, or integrations with transactional data.
Purpose-built databases use cases
Purpose-built databases enable us to create scalable, high-performing, and functional backend infrastructures to power your applications, addressing each use case with the most appropriate component.
Online bookstore application is best example for Purpose-built database services. It has different use cases, including a product catalog, product search, best sellers list and social recommendations.
Product catalog use case When a user accesses the bookstore’s web storefront, they might expect to see a list of products. Products typically contain unique identifiers and attributes such as descriptions, quantities, locations, and prices. Amazon DynamoDB is a great fit as DynamoDB provides fast, predictable performance at any scale for key-value lookups. With DynamoDB, the product catalog can start with a few hundred products and scale to billions of products without re-architect or change databases.
Product Search use case When customers want to locate the products, they intend to buy or search through the catalog to find it. They will use the keyword searches to find what they are looking for. Amazon ElasticSearch service is a database technology that solves these user needs. With natural-language capabilities, faceted navigation, and ranked results, Amazon ElasticSearch helps customers quickly find the items they want in the product catalog.
Best sellers list use case The bookstore application needs to keep the product catalog (in DynamoDB) in sync with the search index in Amazon ElasticSearch. Whenever a product is added, updated, or removed from the catalog’s product table in DynamoDB, the change also needs to be reflected in the search index in Amazon ElasticSearch. We use Amazon DynamoDB Streams with AWS Lambda to asynchronously update the Amazon ElasticSearch index every time a change is made to the product catalog in DynamoDB.
Social recommendations Social recommendations will be helpful for the bookstore’s customers to find more contextually appropriate content. Social recommendations are on the bookstore’s homepage and other pages on the site, the recommendations have to be fast. Also, if the website grows, the solution needs to scale with more products, pages, and users.
We can use a purpose-built graph database such as Amazon Neptune. It is a good fit to navigate links in the data, enabling recommendations that are based on social connections and related purchase activity. Amazon Neptune provides the needed functionality and performance we need to quickly build and execute queries to traverse graph relationships, and it will scale as the website (and application) grows without compromising on performance.
Hope you have got some idea about AWS Purpose-built Databases.
Happy Learning 📚
Community and Social Footprints:
[My LinkedIn] (linkedin.com/in/sraddepalli)
[My GitHub] (github.com/sraddepalli)
[CloudnLoud Twitter] (twitter.com/cloudnloud)
[CloudnLoud YouTube Free Trainings] (youtube.com/c/CloudnLoud)
[CloudnLoud LinkedIn Page] (linkedin.com/company/cloudnloud)
[CloudnLoud LinkedIn Group] (linkedin.com/groups/9124202)
[CloudnLoud Discord Channel] (discord.com/invite/vbjRQGVhuF)
[CloudnLoud Dev] (dev.to/cloudnloud)
Thank you!