Outsmart 2005 Ltd., is an entertainment and online media company best known for SmallWorlds, a web-based three-dimensional (3D) virtual world that combines media, web content and social interaction for an immersive and engaging experience. Outsmart is headquartered in Auckland, New Zealand and has about 30 employees. The company also provides a Portuguese version of SmallWorlds, MiniMundos, for Brazilian players. Altogether, Outsmart estimates that it provides games and virtual worlds for a community of more than 15 million users across 2 languages and 56 countries.
Outsmart consistently experiences daily usage spikes for SmallWorlds within the same eight to twelve-hour period. Outside this timeframe, Outsmart estimates that load generally declines by more than half. By early 2012, Outsmart began to outgrow its current infrastructure. The amount of data that Outsmart generated each month was reaching the Internet connection limits provided by its then service provider. “Our SmallWorlds environment began to suffer outages,” says Nick Langstone, Operations Manager for Outsmart. “Additionally, we weren’t able to support more than 400,000 active game users.”
To avoid wasted resources, minimize costs and maintain performance at levels demanded by users, Outsmart realized that it needed to run the SmallWorlds environment in a dynamically scalable infrastructure. The company began to look for a way to increase capacity without driving up costs.
Why Amazon Web Services
After evaluating several cloud providers, Outsmart chose Amazon Web Services (AWS). AWS provides a global infrastructure that enables Outsmart to work with only one service provider to run services in different geographic regions. Furthermore, AWS could provide the services that Outsmart needed at a competitive price.
Outsmart uses Java, Apache and some custom PHP to build the SmallWorlds and MiniMundos environments on Linux. For both environments, Outsmart uses Amazon Simple Storage Service (Amazon S3) to store content, Amazon Route 53 for domain name services, and Amazon CloudFront to distribute content to users.
To run its MySQL databases, Outsmart uses five extra-large Amazon Elastic Compute Cloud (Amazon EC2) instances in four clusters with Amazon EBS Provisioned IOPS (EBS Provisioned IOPS) to deliver predictable, high performance for the I/O intensive game environment. Outsmart runs SmallWorlds and MiniMundos on 50 to 120 Amazon Elastic Compute Cloud (Amazon EC2) instances apiece, depending on demand. The company uses Elastic Load Balancing to distribute traffic across instances and Auto Scaling to add up to 60 additional servers dynamically to meet demand. Figure 1 describes Outsmart’s architecture.
Figure 1: Outsmart Architecture Diagram
Since migrating to the AWS Cloud, Outsmart has been able to scale to meet increased demand for SmallWorlds and MiniMundos. “The number of players that we can support for SmallWorlds has grown from 400,000 to 1,000,000 active users on a monthly basis,” says Langstone. Outsmart also reports improved performance. “We don’t have the drop-off in performance that we had with our previous provider when loads increased. In fact, we’re seeing up to 20 percent performance improvement during off-peak periods and more during heavy loads.” Outsmart estimates that its cost per month per active user has fallen by about 50 percent.
Automatically scaling Amazon EC2 instances and hourly billing allows Outsmart to create a system that responds to users’ performance demands while keeping costs under control. “If there is a problem, the system can basically turn off the servers that are having problems and just start new ones,” says Langstone. “This has reduced our costs dramatically. While our evaluations are at a preliminary stage, we’re estimating a 10 to 15 percent cost reduction.”
Outsmart has also experienced a substantial decrease in latency. “At peak load, we have essentially reduced latency of about 20 percent,” says Langstone. “The stability and performance of SmallWorlds on AWS has been a great success for us.”