Other Database Services
As time has passed, more and more specialized database types have been developed. This is partly due to the fact that relational database structures and designs do not work well for storing the data of newer and different technologies. In this section, we examine some of the various non-relational database services of AWS.
DynamoDB
Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. It is a great fit for mobile, web, gaming, ad tech, Internet of Things (IoT), and many other applications. Figure 14-2 shows the DynamoDB service in the AWS Management Console.
Figure 14-2 The DynamoDB Service of AWS
Benefits of DynamoDB include the following:
Fast, consistent performance: DynamoDB delivers consistent, fast performance at any scale for all applications.
Highly scalable: When you create a table, you specify how much request capacity you require. If your throughput requirements change, you update your table’s request capacity by using the AWS Management Console or the DynamoDB APIs. DynamoDB manages all the scaling behind the scenes, and you are still able to achieve your previous throughput levels while scaling is underway. Instant scaling and autoscaling capabilities now exist that even assist you if you are unsure about the initial capacity you require.
Fully managed: DynamoDB is a fully managed cloud NoSQL database service. You create a database table, optionally set your throughput or allow autoscaling, and let the service handle the rest.
Event-driven programming: DynamoDB integrates with Lambda to provide triggers that enable you to architect applications that automatically react to data changes.
Fine-grained access control: DynamoDB integrates with IAM for fine-grained access control.
Flexible: DynamoDB supports both document and key/value data structures, giving you the flexibility to design the data architecture that is optimal for your application.
ElastiCache
ElastiCache is a web service that makes it easy to deploy, operate, and scale an in-memory cache in the cloud. The service improves the performance of web applications by allowing you to retrieve information from fast, managed, in-memory caches instead of relying entirely on slower disk-based databases. Figure 14-3 shows the ElastiCache service in the AWS Management Console.
Figure 14-3 The ElastiCache Service in AWS
ElastiCache supports two open-source in-memory caching engines:
Redis: Redis is a fast, open-source in-memory data store and cache. ElastiCache for Redis is a Redis-compatible in-memory service that delivers the ease of use and power of Redis along with availability, reliability, and performance that are suitable for the most demanding applications.
Memcached: Memcached is a widely adopted memory object caching system. ElastiCache is protocol compliant with Memcached, so tools that you use today with existing Memcached environments work seamlessly with the service.
Redshift
Redshift is a fast, fully managed, petabyte-scale data warehouse that allows you to easily and cost-effectively analyze all your data using your existing business intelligence tools. Features include the following:
High performance: Redshift provides high query performance on data sets ranging in size from 100 GB to 1 PB or more.
High efficiency: Redshift uses columnar storage, data compression, and zone maps to reduce the amount of I/O needed to perform queries.
Parallel processing: Redshift’s massively parallel processing (MPP) data warehouse architecture allows it to parallelize and distribute SQL operations to take advantage of all available resources. The underlying hardware is designed for high-performance data processing, using locally attached storage to maximize throughput between the CPUs and drives and a 10GigE mesh network to maximize throughput between nodes.