AWS cloud has a broad global presence which is used by the customers around the world to create applications with presence in international markets to obtain agility, cost savings, elasticity and a wide range of services that simplify the implementation of their platforms and services.
More and more customers are enabling their workloads in the AWS cloud, however, sometimes integration with legacy applications makes this activity difficult. For these reasons, there is a need to implement hybrid architecture that allows the customer’s data center to be integrated with the AWS cloud so that it can be seen as an extension of their network.
With AWS Direct Connect a connection can be enabled from on-premises to the AWS cloud or an IPSec VPN can be configured within Virtual Private Cloud (VPC).
Some clients report having a high latency between their architecture in AWS and local database. It is sometimes found that the service responsible for the high latency is the database and not the distance.
This issue can be solved by moving the database to Amazon Relational Database Service (RDS) and creating RDS read-replicas, however, the licensing scheme of the database prevents from moving it to AWS. Another challenge when moving it is the integration between application and database since the system is in production and it is not feasible to rewrite the entire application to a different database engine, where it has no licensing restrictions.
One of the mechanisms to optimize its operation is to use a cache in memory using Amazon ElastiCache to reduce the load of its database. This would also help to improve the response time since the cache would be inside the VPC. This would provide an improvement in the experience for the end user.
Amazon ElastiCache is a web service that facilitates the implementation, operation and scaling of a cache or in-memory data store in the cloud. It improves the performance of applications by allowing to retrieve information from managed and fast memory datastores instead of relying on slower disk-based databases. Amazon ElastiCache supports two open source memory engines:
- Redis : Redis is a structured data warehouse in memory, cache and message broker. Amazon ElastiCache for Redis offers Multi-AZ with Auto-Failover and an enhanced robustness.
- Memcached : It is a high performance memory object caching system, designed to accelerate dynamic web applications.
Amazon ElastiCache helps detect and replace erroneous nodes and reduce the overheads associated with self-management infrastructure. It also reduces the risk of overloaded databases which causes slowing down of loading times of the application. If integrated with Amazon CloudWatch, it helps providing better visibility into the key performance metrics associated with Memcached or Redis nodes.
An in-memory layer can be added to your infrastructure in minutes with Amazon ElastiCache, using the AWS management console.
Amazon ElastiCache allows you to pay for memory capacity per hour while the nodes are active, without long-term commitments.
Some of the common uses of Amazon ElastiCache are:
- Reduction of latency in hybrid architectures where the database is in the local data center
- Reduction of the load in the databases
- Optimization of dynamic web pages and reduction of processing in servers and instances
- Data caches, for example, user preferences
- Session storage, for example, websites