Kit Wai Chan - Fotolia
AWS Spot Instances can offer deep discounts over On-Demand instances, but have a way of vanishing when the Spot Price gets too high -- a problem one startup company has found a way around.
ClusterK, Inc. inserts a software layer called a Balancer between Amazon Web Sevices (AWS) Spot Instances and the applications that use them. The Balancer algorithmically predicts the Spot Price based on historical data, as well as Spot Price spikes that could cause the instances to shut down.
Using the new Spot Instance "two-minute warning," the Balancer can also spin up new Spot Instances before failures happen, to ensure capacity doesn't drop below a user-set minimum. It also continually tries to provision a user-designated optimum number of Spot Instance cores that span multiple instance types.
ClusterK's founder and CEO Dmitry Pushkarev is familiar with Spot Instance problems. He came from a gene-sequencing background in which he used the instance type on AWS. Frustrated when a Spot Instance shut down 90% of the way through a job -- meaning the job had to be restarted -- Pushkarev got the idea for ClusterK's software.
ClusterK beta customer 6sense, a predictive analytics software maker based in San Francisco, also ran into trouble with Spot Instances, which required either overprovisioning resources to insure against instance shutdowns or tediously and manually provisioning new resources when the need arose.
AWS' Auto-Scaling groups could address some of the manual labor, but are tied to launch configurations that must be specified for each instance type. ClusterK's Balancer aggregates Spot Instances from multiple instance types together, and came recommended by AWS officials, according to Premal Shah, co-founder and software engineer with 6sense.
If 6sense were to use Auto-Scaling groups, it would still need to write an algorithm to find out Spot Market pricing and account for all of the variances in that, Shah said.
"A lot of companies have done this in the past, but we just don't have the resources," he said.
Instead, 6sense's app pings the ClusterK API when resources are needed, specifying a minimum and optimum number of cores.
ClusterK has an algorithm to figure out which instances to use at a particular time and balances across multiple instance types, so that even if one instance dies because of a spike in the prices, ClusterK will automatically go and add others.
"So it's not like your whole application comes to a halt, it's more like a 20%, 30% [performance] hit depending on the distribution," Shah said.
When all the jobs are done and capacity is no longer needed, 6sense's app calls ClusterK's API again to reduce the number of units, and ClusterK selectively takes the boxes away.
With hundreds of Hadoop jobs running on Spot Instances per day, Shah said ClusterK has saved him an average of $500 to $600 a day over On-Demand instance prices. As a beta tester, 6sense did not pay a license fee for ClusterK's software; other customers pay between 10% and 20% of the cost savings realized from using Spot Instances for ClusterK's Balancer, according to Pushkarev.
As a new product, ClusterK's Balancer is also sanding down some rough edges, with 6sense along for the ride; one area Shah said he's been working on with the startup is to migrate a cluster that uses the Apache Mesos open source container framework.
ClusterK supports Mesos, has examples in its documentation about how to deploy Mesos clusters, and is beginning to work with Mesosphere, a company commercializing the Mesos open source project, a company spokesperson said.