Citymaps , a startup based in New York, NY, provides a social mapping platform available on iOS, Android, and the web and supports the easy creation and sharing of maps by different users around the world. The mission of Citymaps is simple: make mapping a social activity. The company strives to provide an attractive and intuitive mapping interface that allows users to seamlessly share individual locations, or a collection of locations, and to discover new places to explore.
From inception, Citymaps has made it a priority to maintain operational efficiency with a small engineering team that is focused on the development of applications. In addition to being able to put its resources toward application development rather than infrastructure operations, the team’s key needs included the ability to scale effectively as the company grew and an efficient way to measure application response time, error rates, and service availability. The Citymaps team needed an IT solution to help them scale effectively, use their resources efficiently, and perform application stack log analysis seamlessly.
Why Amazon Web Services
Citymaps began using AWS four years ago, soon after the company was founded. “Very early on, we made the decision to move to AWS, and we’ve been very happy with that choice,” explains Bob Matsuoka, CTO of Citymaps. “The AWS API, services, and offerings have increased at a remarkable rate. AWS provides nearly everything we need, and we’ve been very happy with the level of service and the offerings.”
In order to get turnkey, analytics-like reporting for its application logs, the company engaged with Loggly, an AWS Partner Network (APN) Technology Partner. “We had been using other analytics tools to give us insight into the health of our machines, but we didn’t get a lot of insight into what was going on at the application level,” says Matsuoka. “Our developers are expected to monitor logs throughout the deployment process, but that didn’t really help us when we had to manage our logs on production machines. We tried developing tools to consolidate the logs ourselves but decided that was not efficient. We wanted good reporting, and seamless coverage of all of the stacks that we use, along with frictionless implementation. We picked Loggly after a fair amount of research. Loggly makes the management of logs a straightforward process.”
Citymaps uses a number of services on AWS, including approximately 30 Amazon Elastic Compute Cloud (Amazon EC2) instances backed by Amazon Elastic Block Store (Amazon EBS) storage, on which the company runs all services. Citymaps moved to an Amazon Virtual Private Cloud (Amazon VPC) about a year after launching on AWS, and last year moved all of its Amazon EC2 instances into Amazon VPC, including development instances. The company uses Amazon ElastiCache for Redis and uses Amazon Simple Storage Service (Amazon S3) for object backup. “Amazon ElastiCache for Redis has worked great for us, and we are increasingly using Amazon S3,” Matsuoka explains. “We also do a lot of messaging for our application, and we use Amazon Simple Notification Service (Amazon SNS) for our push notifications.”
A key AWS service Citymaps uses is Amazon CloudFront. “Amazon CloudFront has been a very big part of our application stack,” says Matsuoka. “We have 22 different application distributions, and 15-16 different active distributions. A large part of our scalability model is to try and push as much through Amazon CloudFront as we can, and we’ve been very happy with the results.”
The company uses Loggly in a few different capacities: to provide its developers with insight into application behavior as new features are deployed, to catch errors, and for performance tuning. “Instead of doing piecemeal log management analysis, we have a mile-high view of all of our applications with Loggly. We expect a certain number of errors or issues, but with Loggly we can detect and respond to them before they threaten the health of our business,” says Matsuoka. “We are also able to do performance tuning, which has been important. We can analyze the timing of our various API requests very easily now, which allows us to identify areas that our developers should address.”
“With AWS, we’ve been able to largely focus on development rather than operations, which I think is a maingoal of every startup,” says Matsuoka. “In a startup operation where we run 30 servers, the fact that we have around 50 hours per month of resources devoted to operations is a testament to our operations efficiency. We typically don’t have to think about operations.”
While the company sees fairly predictable traffic day to day, it has experienced massive traffic spikes of 400-500 percent on days when its app has seen additional promotion, such as being featured on the front page of a mobile app store. “On days when we had large traffic spikes, we were able to handle that scalability seamlessly, and Amazon CloudFront was a very big reason for that,” explains Matsuoka.
Citymaps has also benefited in using Loggly on top of AWS. “AWS is great in that it is agnostic as far as your applications go,” says Matsuoka. “Using Loggly on top of the AWS platform allows us to get a high level of visibility into the health of our applications, both from a performance perspective and a stability perspective. We have experienced much less application downtime since we started using Loggly because we are catching issues before they happen.”
One area in particular where Citymaps has experienced success is in using Loggly to report business metrics from the logs that Amazon CloudFront generates. “Because a lot of our requests are handled by Amazon CloudFront, and we have a number of partners who use our map-generation software development kit, we wanted a way to be able to track usage for different partners, and do a report on what percentage of requests are coming from us versus the percentage of requests coming from our partners,” explains Matsuoka. “With Loggly, we were able to deploy an Amazon CloudFront–based application with confidence that we could properly attribute traffic to our partners, which helps us with service cost modeling and attribution.”
“Our experience with both AWS and with Loggly has been excellent,” says Matsuoka. “It’s hard for me to imagine how we would function without them.”
“With AWS, we’ve been able to largely focus on development rather than operations, which I think is a main goal of every startup.”
Bob Matsuoka, CTO