Amazon ElastiCache
| Amazon ElastiCache | |
|---|---|
| Developer | Amazon.com |
| Release | August22, 2011;14 years ago(2011年08月22日).[1] |
| Available in | English |
| Type | Cloud storage |
| Website | aws |
Amazon ElastiCache is a fully managed in-memory data store and cache service by Amazon Web Services (AWS). The service improves the performance of web applications by retrieving information from managed in-memory caches, instead of relying entirely on slower disk-based databases. ElastiCache supports three in-memory caching engines: Valkey, Memcached, and Redis.[2]
As a web service running in the computing cloud, Amazon ElastiCache is designed to simplify the setup, operation, and scaling of Valkey, Memcached, and Redis deployments. Complex administration processes like patching software, backing up and restoring data sets and dynamically adding or removing capabilities are managed automatically. Scaling ElastiCache resources can be performed by a single API call.[3]
Amazon ElastiCache was first released on August 22, 2011,[4] supporting memcached. This was followed by support for reserved instances on April 5, 2012[5] and Redis on September 4, 2013.[6]
Uses
[edit ]As a managed database service with multiple supported engines, Amazon ElastiCache has a wide range of uses, including
Performance acceleration
[edit ]Database limitations are often a bottleneck for application performance. By placing Amazon ElastiCache between an application and its database tier, database operations can be accelerated.[7]
Cost reduction
[edit ]Using ElastiCache for database performance acceleration can significantly reduce the infrastructure needed to support the database. In many cases, the cost savings outweigh the cache costs. Expedia was able to use ElastiCache to reduce provisioned DynamoDB capacity by 90%, reducing total database cost by 6x.[8] [9]
Processing time series data
[edit ]Using the Redis engine, ElastiCache can rapidly process time-series data, quickly selecting newest or oldest records or events within range of a point-in-time.[10]
Leaderboards
[edit ]Leaderboards are an effective way to show a user quickly where they currently stand within a gamified system. For systems with large numbers of gamers, calculating and publishing player ranks can be challenging. Using Amazon ElastiCache with the Redis engine can enable high-speed at scale for leaderboards.[11]
Rate limitation
[edit ]Some APIs only allow a limited number of requests per time period. Amazon ElastiCache for Redis engine can use incremental counters and other tools to throttle API access to meet restrictions.[12]
Atomic counter
[edit ]Programs can use incremental counters to limit allowed quantities, such as the maximum number of students enrolled in a course or ensuring a game has at least 2 but not more than 8 players. Using counters can create a race condition where an operation is allowed because a counter was not updated promptly. Using the ElastiCache for Redis atomic counter functions, where a single operation both checks and increments the counter's value, prevents race conditions.[13]
Chat rooms and message boards
[edit ]ElastiCache for Redis supports publish-subscribe patterns, which enable the creation of chat rooms and message boards where messages are automatically distributed to interested users.[14]
Deployment options
[edit ]Amazon ElastiCache can use on-demand cache nodes or reserved cache nodes.
On-demand nodes provide cache capacity by the hour, with resources in the AWS cloud assigned when a cache node is provisioned. An on-demand node can be removed from service by its owner at any time. Each month, the owner will be billed for the hours used.[15]
Reserved nodes require a 1-year or 3-year commitment, which dedicates cache resources to the owner. The hourly cost of reserved nodes is significantly lower than the hourly cost of on-demand nodes.[16]
Performance
[edit ]An efficient cache can significantly increase application's performance and user navigation speed. Amazon CloudWatch exposes ElastiCache performance metrics that can be tracked.[17]
Key performance metrics
[edit ]- Client metrics (measure the volume of client connections and requests): Number of current client connections to the cache, Get and Set commands received by the cache
- Cache performance: Hits, misses, Replication Lag, Latency
- Memory metrics: Memory usage, Evictions, Amount of free memory available on the host, Swap Usage, Memory fragmentation ratio
- Other host-level metrics: CPU utilization, Number of bytes read from the network by the host, Number of bytes written to the network by the host
Metric collection
[edit ]Many ElastiCache metrics can be collected from AWS via CloudWatch or directly from the cache engine, whether Redis or Memcached, with a monitoring tool integrating with it:[18]
- Using the AWS Management Console
Using the online management console is the simplest way to monitor ElastiCache with CloudWatch. It allows to set up basic automated alerts and to get a visual picture of recent changes in individual metrics.
- CloudWatch command-line interface
Metrics related to ElastiCache can also be retrieved using command lines. It can be used for spot checks and ad hoc investigations.
- Monitoring tool integrated with CloudWatch
The third way to collect ElastiCache metrics is via a dedicated monitoring tool integrating with Amazon CloudWatch.
Notable customers
[edit ]Users of Amazon ElastiCache include Airbnb,[19] Expedia,[20] Zynga,[21] Tinder,[22] FanDuel,[23] and Mapbox [24]
Limitations
[edit ]As an AWS service, ElastiCache is designed to be accessed exclusively from within AWS, though it is possible to connect the service to applications and databases that are not hosted by AWS.[25]
Alternatives
[edit ]Other vendors provide cloud data cache services comparable to Amazon ElastiCache, including Azure Cache for Redis, Redis Ltd (company behind open source Redis and Redis Enterprise), Redis To Go, IBM Compose, Oracle Application Container Cloud Service, and Rackspace ObjectRocket.
References
[edit ]- ↑ "Amazon ElastiCache – Distributed In-Memory Caching". Amazon Web Services. 22 August 2011. Archived from the original on 3 June 2019. Retrieved 3 June 2019.
- ↑ "ElastiCache for Redis". Amazon Web Services. Archived from the original on 2016年11月14日. Retrieved 2016年08月29日.
- ↑ "Scaling". AWS ElastiCache Documentation. Archived from the original on 2016年12月11日. Retrieved 2016年07月08日.
- ↑ "Amazon ElastiCache – Distributed In-Memory Caching". amazon.com. 22 August 2011. Archived from the original on 2016年03月20日. Retrieved 2016年07月08日.
- ↑ "Reserved Cache Nodes for Amazon ElastiCache". amazon.com. 5 April 2012. Archived from the original on 2016年09月20日. Retrieved 2016年07月08日.
- ↑ "Amazon ElastiCache – Now With a Dash of Redis". amazon.com. 4 September 2013. Archived from the original on 2016年09月20日. Retrieved 2016年07月08日.
- ↑ "Use Memcached to improve database performance". CloudVPS. Archived from the original on 2016年07月13日. Retrieved 2016年07月08日.
- ↑ "Customer Testimonials". amazon.com. Archived from the original on 2016年08月22日. Retrieved 2016年07月08日.
- ↑ "AWS Building Scalable Applications on AWS NoSQL Services". youtube.com. Archived from the original on 2024年12月05日. Retrieved 2016年07月08日.
- ↑ "Using Redis as a Time Series Database: Why and How". InfoQueue. Archived from the original on 2016年08月02日. Retrieved 2016年07月08日.
- ↑ "USING REDIS TO BUILD YOUR GAME LEADERBOARD". Social Point. Archived from the original on 2018年09月14日. Retrieved 2016年07月08日.
- ↑ "DOWN BOY: HOW TO EASILY THROTTLE REQUESTS TO AN API USING REDIS". Collective Idea. 30 November 2012. Archived from the original on 2016年07月04日. Retrieved 2016年07月08日.
- ↑ "An Atomic Rant". Nate Wigel vs Technology. 18 February 2010. Archived from the original on 2016年05月28日. Retrieved 2016年07月08日.
- ↑ "Create a Simple Chat Room with Redis Pubsub". Program Every Day. Archived from the original on 2016年07月21日. Retrieved 2016年07月08日.
- ↑ "Amazon ElastiCache Pricing". amazon.com. Archived from the original on 2016年08月22日. Retrieved 2016年07月08日.
- ↑ "ElastiCache Reserved Cache Nodes". amazon.com. Archived from the original on 2016年07月02日. Retrieved 2016年07月08日.
- ↑ "Monitoring ElastiCache performance metrics with Redis or Memcached". 10 December 2015. Retrieved 2016年10月24日.
- ↑ "Collecting ElastiCache metrics + its Redis/Memcached metrics". 10 December 2015. Archived from the original on 2016年10月24日. Retrieved 2016年10月24日.
- ↑ "Airbnb Case Study". amazon.com. Retrieved 2016年07月08日.
- ↑ "Building Scalable Applications on AWS NoSQL Services". youtube.com. Archived from the original on 2017年07月29日. Retrieved 2016年07月08日.
- ↑ "AWS Case Study: Zynga". amazon.com. Archived from the original on 2016年06月11日. Retrieved 2016年07月08日.
- ↑ "Building resiliency at scale at Tinder with Amazon ElastiCache". amazon.com. Archived from the original on 2024年03月05日. Retrieved 2024年03月28日.
- ↑ "FanDuel Case Study". amazon.com. Archived from the original on 2016年08月30日. Retrieved 2016年07月08日.
- ↑ "Building Scalable Applications on AWS NoSQL Services". youtube.com. Archived from the original on 2017年07月29日. Retrieved 2016年07月08日.
- ↑ "Accessing ElastiCache Resources from Outside AWS". AWS Documentation. Archived from the original on 2016年08月06日. Retrieved 2016年07月08日.