Amazon ElastiCache is a web service that makes it easy to deploy, operate, and scale an in-memory data store or cache in the cloud. The service improves the performance of web applications by allowing you to retrieve information from fast, managed, in-memory data stores, instead of relying entirely on slower disk-based databases. Amazon ElastiCache supports two open-source in-memory engines:
- Redis - a fast, open source, in-memory data store and cache. Amazon ElastiCache for Redis is a Redis-compatible in-memory service that delivers the ease-of-use and power of Redis along with the availability, reliability and performance suitable for the most demanding applications. Both single-node and up to 15-shard clusters are available, enabling scalability to up to 3.55 TiB of in-memory data. ElastiCache for Redis is fully managed, scalable, and secure - making it an ideal candidate to power high-performance use cases such as Web, Mobile Apps, Gaming, Ad-Tech, and IoT.
- Memcached - a widely adopted memory object caching system. ElastiCache is protocol compliant with Memcached, so popular tools that you use today with existing Memcached environments will work seamlessly with the service.
Amazon ElastiCache automatically detects and replaces failed nodes, reducing the overhead associated with self-managed infrastructures and provides a resilient system that mitigates the risk of overloaded databases, which slow website and application load times. Through integration with Amazon CloudWatch, Amazon ElastiCache provides enhanced visibility into key performance metrics associated with your Redis or Memcached nodes.
Using Amazon ElastiCache, you can add an in-memory layer to your infrastructure in a matter of minutes by using the AWS Management Console.
Amazon ElastiCache makes it very easy to deploy a Memcached or Redis compliant in-memory environment. Use the AWS Management Console or simple API calls to access the capabilities of a production-ready cluster in minutes without worrying about infrastructure provisioning, or installing and maintaining software.
Amazon ElastiCache automates time-consuming management tasks --such as patch management, failure detection and recovery-- allowing you to pursue higher value application development.
With Amazon ElastiCache, you get native access to the Memcached or Redis in-memory environments. This facilitates compatibility with your existing tools and applications.
Amazon ElastiCache with Memcached includes sharding to scale in-memory cache with up to 20 nodes. Amazon ElastiCache for Redis includes clustering, with up to 15 shards forming a single in-memory key-value store of up to 3.55 TiB, plus up to 5 read-replicas per shard for increased data access performance.
Amazon ElastiCache has multiple features that enhance reliability for critical production deployments, including automatic failure detection and recovery. Amazon ElastiCache runs on the same highly reliable infrastructure used by other Amazon Web Services.
Amazon ElastiCache is designed for seamless use with other Amazon Web Services, including Amazon Relational Database Service (Amazon RDS), Amazon DynamoDB, Amazon Elastic Compute Cloud (Amazon EC2), Amazon CloudWatch, and Amazon Simple Notification Service (Amazon SNS).
Amazon ElastiCache provides a number of mechanisms to secure your clusters.
- Amazon ElastiCache provides web service interfaces that allow you to configure firewall settings that control network access to your cluster.
- Amazon ElastiCache allows you to run your cluster in Amazon Virtual Private Cloud (Amazon VPC). Amazon VPC enables you to isolate your cluster by specifying the IP ranges you wish to use for your nodes, and connect to your existing applications inside Amazon VPC. To learn more about Amazon ElastiCache in VPC, refer to the Amazon ElastiCache User Guide.
Amazon ElastiCache saves you the administrative cost of setting up and managing multi-node clusters. You can run clusters of the size you need to deliver optimum performance as your application usage pattern changes, paying only for the resources you actually consume. The on-demand pricing allows you to pay for memory/compute capacity by the hour with no long-term commitments. This makes the use of Amazon ElastiCache very cost effective and frees you from the costs and complexities of planning, purchasing, and maintaining hardware.
Amazon ElastiCache provides replication features for the Redis engine and Multi-AZ functionality. You can take advantage of multiple AWS Availability Zones to gain availability, and scale beyond the capacity constraints of a single node. In case of primary node loss, ElastiCache will automatically detect the failure and failover to a read replica to provide higher availability without the need for manual intervention.
Amazon ElastiCache for Redis helps you protect your data by creating snapshots of your clusters. Via a few clicks on the console or simple API calls, you can set up automatic snapshots, as well as initiate a backup whenever you choose. The snapshots can then be used for seeding new ElastiCache for Redis clusters.
Amazon ElastiCache can be used to significantly improve latency and throughput for various application workloads (such as social networking, gaming, AdTech, media sharing and Q&A portals) or compute-intensive workloads (such as a recommendation engine). When used as a cache, ElastiCache can improve application performance by storing critical pieces of data in memory for low-latency access. This information may include the results of I/O-intensive database queries or the results of computationally-intensive calculations. Applications that require a fast in-memory data structure server, a highly available cache or a message broker will find the Redis engine most useful.