About ICON Health & Fitness
ICON Health & Fitness, established in 1977, is one of the world’s largest exercise and equipment manufacturer. ICON markets about 17 consumer and commercial fitness brands, including NordicTrack, Weider, Gold's Gym, FreeMotion, and iFit. Based in Logan, Utah, ICON has nearly 2,500 employees in nine locations worldwide. The privately held company estimates that it serves about 80 percent of the home fitness market and reports approximately $1 billion per year in revenue.
iFit, the technology division of the company, provides the means to store and track workouts on fitness equipment, mobile applications, the Internet, and other devices, and create personalized workouts. iFit is a premier partner with Google and connects to Google Maps to display actual terrain for training. A trainer can create a workout incorporating street views of Paris or the Vatican, and send it to a client. All iFit devices are connected to Wi-Fi and with each other, so customers can share workouts, buy training content, and participate in races and other collaborative events.
As a result, iFit has millions of connected devices that share high volumes of data and traffic load can be as high as 30,000 requests per second. The company also experiences seasonal traffic spikes—New Year resolutions, for instance, can increase the number of new athletes in droves. iFit initially ran on the corporate co-location environment, but the facility’s outdated equipment couldn’t scale to handle the traffic load or provide the capacity that iFit needed to grow.
Why Amazon Web Services
With seasonal spikes in traffic, iFit needed be able to scale its databases horizontally—a challenge tailor-made for cloud computing. The company initially moved its MySQL database to another cloud provider, but still had scale and load problems. “Data is core to our business,” says Chase Brammer, Head of Product Development. “If our database goes down or if we lose our backups, it’s over. Having the scalability of Amazon Elastic Compute Cloud (Amazon EC2) instances with multiple Availability Zones providing redundancy was a clear winner for us.”
Moving to Amazon Web Services (AWS) gave iFit the opportunity to optimize its architecture for the cloud. Originally, iFit ran its Java enterprise web application on five on-premises servers, each of which performed the same tasks. For the cloud, iFit designed seven different server classes for specific jobs. “Running on AWS, we can launch as many instances as we need for different purposes,” explains Brammer. “We have separate servers for live requests, for processing workout logs, and for our customer-facing website. The main customer-facing server isn’t slowed down by processing workout logs, which improves the customer experience.” Figure 1 illustrates how iFit uses AWS.
Figure 1. iFit Architecture on AWS
iFit operates in the US East (Northern Virginia) Region with multiple Availability Zones for backup. The company uses Elastic Load Balancing in front of Amazon EC2 instances that run its MongoDB database. iFit uses Auto Scaling to scale between 50 and 500 instances. “Amazon EC2 is our bread and butter,” says Brammer. “We’re using Amazon EC2 Reserved Instances extensively, which reduced our hosting costs by 30 percent.” By signing up for AWS Support at the Business-level tier, iFit plans to take advantage of AWS Trusted Advisor to continue to optimize Reserved Instance usage.
iFit uses Amazon Route 53 extensively, especially to bring up new DNS stacks in development environments. The company uses AWS Elastic Beanstalk to manage its legacy Java application on the AWS Cloud and relies on Amazon Simple Email Service (Amazon SES) to handle approximately 100,000 system e-mail messages per day.
Amazon Simple Storage Service (Amazon S3) stores more than 150 million static images to date, and iFit adds more than 15 million images a month. “Amazon S3 does such a good job delivering static assets that it frees up a lot of server processing time—at least 30 percent, and that doesn’t include on-demand instances,” Brammer says.
iFit takes advantage of Amazon CloudFront to deliver content globally with consistent response times. “We were having trouble getting the response time to the Netherlands correct. Now that we’re using CloudFront, we have a consistent 50-millisecond response time. CloudFront makes it easy to deliver assets worldwide.”
According to iFit, moving to AWS allows the company to scale its infrastructure to innovate faster and meet spikes caused by heavy seasonal demand. “We benchmarked 4 GB of server traffic per second on AWS. That’s a four times increase in traffic in nine months,” Brammer says. “We wouldn’t have been able handle bandwidth like that on our corporate infrastructure.”
He adds, “With Auto Scaling, we can scale up to 500 servers, process 15 million images, and handle peak loads of 30,000 requests per second without downtime. Being able to bring up additional instances is a godsend. We would have crashed and burned if we tried that with our on-premises servers.” iFit only recently hired a dedicated resource to manage its infrastructure.
“The number one reason why I like AWS above any other cloud provider is because of the ecosystem of offerings,” Brammer says. “Amazon EC2 integrates with Amazon S3, Amazon SES, and Route 53. All those services boost efficiency because we don’t have to develop and maintain those services ourselves.”
Before moving to AWS, iFit’s release cycle could be as long as three weeks. It was hard to get staging environments for every feature—if one item out of a hundred was held up in testing, it would delay the launch for everything. In moving to AWS, iFit developed a standardized environment for deployment. The build process is automated, and with a push of a button, a developer can bring up an Amazon EC2 instance complete with DNS, Elastic Load Balancing, and a pared-down version of the production environment that runs the database and applications locally. “After a developer is finished, a test engineer can test and approve an item for production in the same day,” Brammer says. “It’s reduced the time to deploy fixes and new features from three weeks to hours. Using AWS helped change our time to market from a three-week process to continuous deployment five to ten times a day.”