ElastiCache and its Use Cases

So this week we’ll review ElastiCache. I hope you’ve been getting value out of the course so far – if not, please contact me and I’ll try and help.

In essence the level of detail with Elasticache needs only be be light – but as ever, there are some important meta-concepts at play.

Section in this guideReference Info
Analysing Elasticache ConceptsIntro to ElastiCache
Learning about ElastiCacheElastiCache Overview (User Guide)
Determining Elasticache RequirementsDetermining ElastiCache Requirements Questions Sheet
An Overview of ElasticacheOverview Questions

Starting with the intro page we can identify a few overarching themes, and something that might help us think about the exam:

Analysing Elasticache Concepts

Amazon ElastiCache allows you to seamlessly set up, run, and scale popular open-Source compatible in-memory data stores in the cloud. Build data-intensive apps or boost the performance of your existing databases by retrieving data from high throughput and low latency in-memory data stores.

ElastiCache overview

So in memory data stores are the ‘AWS’ way to front a database – that makes sense when we consider that database queries are relatively expensive (why do we need connection pools after all?), and especially expensive relative to something that’s already in memory.

Likewise think of indexing in relational databases – we use those for when the read ratio is high relative to the number of writes. So a read-heavy app sounds a good candidate for ElastiCache too – possible exam hint there.

Also another use case for it is data intensive apps, what you might call a CPU bound app, where the majority of the applications time is spent processing instructions. If the performance is bottlenecked by expensive calculations, then make sure that the calculation only happens once. We want the benefits of those calculations, not the performance overhead.

Looking under the benefits section of the intro page:

Extreme Performance

We see that we can get sub-millisecond response times using this technology – so if we get a question on real-time processing, we might consider ElastiCache as an option.

Fully Managed

Managed services come up again as a benefit, so if an exam question asks about ‘ease of use’, we might have a case for using ElastiCache.

Scalable

It scales in and out. Remember how we talked about horizontal scaling when we mentioned DynamoDB? So if a question has a mention of peak workloads and/or cost effectiveness, a solution that allows for scaling might be what’s needed.

Disclaimer

NB: With all of these pointers I give, it’s not a magic formula. I’m not saying that it’s a guarantee that if you see ‘scalable’ in a question that you should assume ElastiCache is the answer.

What I’m getting at is that you should think about these things as you learn the technologies, and recognise the use cases. All things being equal, you might be able to filter your answers down quicker with an understanding of these overall, or meta-concepts. That in turn takes your exam choices from 4 down to 2 a lot of the time.

Learning about ElastiCache

On the practice exam papers I took, ElastiCache was more a ‘breadth’ subject than a ‘depth’ one. So what it paid most was to know the differences between the 2 implementations, Redis and MemCached, and then having a simple overview of the technology itself. (If you can’t understand it, you’ll struggle to remember it).

Of course you’ll know by now, that I don’t think rote learning is that effective. But I also accept there are some parts of the exam that don’t warrant the same depth of focus as the others.

So let’s start with the very high level cheat sheet. You will probably find Comparing Memcached and Redis a useful reference for this.

Overview Questions

ConceptAnswer
What is Elasticache?An in-memory key-value store implemented by either Memcached or Redis
Under which circumstances would I want to choose Memcached?– Simplest model possible
– Large nodes with multiple cores or threads
– Scaling in and out
– Caching of objects
Under which circumstances would I want to choose Redis?– I want streams, so I can append items in real time
– I want to use encryption (and don’t want to handle in my application)
– I want complex data types
Features similar to an RDBMS, such as backup/restore and replication
– I want failover
What is re-sharding, why would I want to use it and which ElastiCache implementation supports it?– When the data outgrows its original physical capacity you need to add more database
– Re-sharding lets you distribute the data for load balancing and preference
Redis (but only cluster mode enabled) supports it

This week we only need to deep-dive into a few questions on Elasticache.

ElastiCache Questions

If you want t get enough knowledge on ElastiCache to get exam coverage and then move on with your life I can suggest the following:

SectionQuestions to read first
Determining ElastiCache Requirements (Redis)Determining ElastiCache Requirements
Determining ElastiCache Requirements (Memcached)Determining ElastiCache Requirements
Understanding ElastiCache Redis Overview Questions
Understanding ElastiCache MemcachedOverview Questions

Conclusion

The most important thing I think to take from ElastiCache is the concepts of caching, and when which type of implementation should be deployed. The question sheets will help you dive deeper though. You can use them to build out some flashcards to increase your own comprehension, retention and confidence.

I hope this info was useful. As ever, feel to give feedback as to what you found useful, or what was unclear. Next week it’s EC2, AutoScaling Groups and Load Balancers.