GumGum Utilizes Spot to Help Drastically Reduce Costs without Compromising Availability or Scalability
How can you prevent the rate of Infrastructure Cost Growth from overtaking the rate of Company Growth?
Rapid growth is a great thing for any company. With companies who have heavy AWS usage, the positivity of this growth comes with one common caveat: with increased growth comes increased AWS infrastructure costs. For GumGum, the company’s incredible success saw cost increase rapidly, as the demands on their highly scalable infrastructure grew.
In their largest datacenter, GumGum’s Ad Server received around 4 million requests per minute at low traffic points. For peaks, this number grew to over 18 million – needing over 130
c5.9xl machines to be provisioned. This meant costs grew for GumGum to around $120k per month for EC2, on just one of their four Ad Server datacenters.
Demand for Scalability means GumGum’s Environments unsuitable for Reserved Instances
The first option explored by GumGum to reduce their costs was to commit to a large number of
reserved instances (RIs). These RIs could be purchased in advance for a discounted rate, but the scalability of GumGum’s workloads meant that this solution wasn’t suitable.
As RIs have to be bought in advance, GumGum had two options:
- Buy enough RIs to cover their peak traffic, meaning that they would always be able to run on discounted VMs. This would mean, however, that RIs would go largely unutilized when the Ad Servers weren’t dealing with peak traffic.
- Buy enough RIs to cover the minimum traffic and scale on on demand instances. This would allow full RI utilization, but would mean that all the scaling would still be done without any discount, resulting in high costs.
Neither continued high costs or underutilized RIs were viable solutions to GumGum’s problems. This is why they looked at Spot. Spot instances would allow complete scaling flexibility at high discounted rates, yet the lack of SLA or application stability would have to be addressed.
Spot Helps GumGum Utilize Spot Instances with Confidence
When GumGum looked for a solution to help them utilize spot instances, they knew it needed to fulfill 3 criteria:
- It had to be a managed service – GumGum’s developer team was fully dedicated to supporting their growing infrastructure and business needs, therefore adding management demands would be impossible.
- It had to guarantee capacity – GumGum’s workloads couldn’t go offline, meaning that guaranteed uptime was a necessity.
- It had to have a user friendly console – GumGum demanded a console UI which was easy to navigate and simple to understand. A complex interface would add considerable time and stress for the GumGum team.
Spot was able to meet all GumGum’s needs, offering a fully managed service for provisioning existing applications on spot instances. Simultaneously, Spot’s ability to predict and preempt spot terminations meant that the availability of applications running on these instances could be guaranteed. Spot even backs this guarantee with an SLA. As for the UI: “it’s a great interface, simple, concise and clear. All you’d ask for and need, perfect,” said GumGum Software Engineer, Chanel Chang.
GumGum Enjoys Additional Benefit of Default Blue/Green Deployments for CodeDeploy
Apart from the clear benefits of huge cost reductions, GumGum also experienced the additional benefit of Spot’s default Blue/Green deployments for CodeDeploy. Before using Spot, GumGum was doing in place deployment through
CodeDeploy. In place deployment is when the application on each instance in the deployment group is stopped, the latest application revision is installed, and the new version of the application is started and validated. This results in needing to take out a certain percentage of existing instances to deploy to. This removal of instances from their load balancers meant that GumGum could be faced with capacity drops and production issues.
Spot deploys CodeDeploy through a
Blue/Green deployment process. This is where a new set of instances are provisioned with the updated application version. Traffic will then be redirected from the existing set of instances (running the old application) to the new set, after which the old instances are terminated.
Utilizing Blue/Green deployments with Spot has reduced GumGum’s deployment time by over 50%, leading to a huge increase in capacity for their developer teams.
“Through a simple integration process, Spot has helped us to save money and increase productivity” – Vaibhav Puranik, SVP of Engineering at GumGum.