Founded in 2010, PlaceIQ provides location intelligence for mobile advertising and other markets. The company’s flagship product, PlaceContext, extracts contextual intelligence generated from large amounts of location based data such as place data, event data, digital, mobile and social data – as well as a diversity of other location specific information. PlaceIQ performs a series of data cleansing, normalization, analysis, and machine learning processes to extract an understanding of the type of audience present in a specific location at a specific time – enabling the ability to audience target in mobile highly effectively.
The service’s back-end data tier has to be able to process vast amounts of data and handle real-time and mobile demands. It is critical that PlaceIQ has a highly scalable and efficient caching layer. Prior to using a caching solution, the data tier sent every request to fulfillment servers. The company considered deploying its own memcached infrastructure to create a caching solution.
PlaceIQ decided to use Amazon ElastiCache because “Amazon ElastiCache provided a turn-key approach to installing, managing, and scaling a large memcached cluster,” says Steve Milton, CTO and co-founder of PlaceIQ. Amazon ElastiCache allowed PlaceIQ to quickly implement and deploy a caching layer infrastructure within their existing application stack.
PlaceIQ’s existing data tier includes a RESTful interface for data retrieval. To employ Amazon ElastiCache and the memcached based protocol with the RESTful based web service, PlaceIQ uses a caching proxy layer with a Nginx web server and a corresponding Nginx memcached plugin. The diagram below demonstrates the site architecture.
The caching proxy layer hashes the requested uniform resource identifier (URI) and then queries the corresponding node within the Amazon ElastiCache group. The solution uses Elastic Load Balancing to distribute traffic across the Nginx caching proxy web servers running in Amazon Elastic Compute Cloud (Amazon EC2) instances.
This URI hashing strategy eliminates redundant copies of cached data in the Amazon ElastiCache cluster. If the requested URI is not found within Amazon ElastiCache, the request is forwarded to a set of origin servers for fulfillment. The resulting response from the origin server is placed in Amazon ElastiCache for future use. The PlaceIQ team uses Amazon Simple Notification Service (Amazon SNS) and Amazon CloudWatch to monitor the different components of PlaceIQ’s distributed architecture.
“After deploying Amazon ElastiCache, PlaceIQ’s average end-to end response time for its web services improved by 83 percent,” says Milton. “Furthermore, we are saving $1,000 per month in direct costs. Amazon ElastiCache allows us to improve our service response times rapidly and economically for our customers. This in turn allows us to serve customer demand with fewer backend servers reducing our cost.”
To learn more about how AWS can help support your in-memory caching needs, visit our AWS ElastiCache product detail page: http://aws.amazon.com/elasticache/.