Elastigroup Instance Weighting - Spot.io

Elastigroup Instance Weighting

Reading Time: 2 minutes

We are happy to introduce one of the most powerful abilities that Elastigroup offers for managing large-scale cloud clusters.

Starting from today, when you launch an Elastigroup, you can define the capacity units that each instance type would contribute to your application’s performance and availability. By using Instance Weighting you can now define more flexible scaling rules and to maximize overall cost efficiency while putting zero DevOps efforts.

Normally, when an application scales, it typically does that in an Instance Unit, meaning, one or more Instances at a time, in most of the cases – it is the same instance type or size, for example, my application scales from 5 instances if c3.2xlarge to 15 instances of c3.2xlarge at peak hours.

Weigting

When you use the Elastigroup weighting feature, You can define a Target Weight Capacity for your application. And specify a custom wight per Instance type or size, this custom weighting feature gives you unprecedented flexibility and control over your cluster.

For example (Let’s define a unit as the amount of RAM available in each node):

  • r3.2xlarge = 61 points
  • r3.4xlarge = 122 points

As we would like to provision a cluster with 350 GB of RAM, let’s define the Target Weight Capacity as 350.

With Instance Weighting, Elastigroup is able to provide the most economical and performance distribution of EC2 pools in real time, according to the application workload and the Instances type, size and pricing.

 

Weigting #2 (1)

Elastigroup calculates the number of instances to launch by dividing the target capacity by the instance weight. In case that the result isn’t an integer, Elastigroup rounds it up to the next integer, so that the size of your cluster is not below its target capacity. But, firstly and most importantly, Elastigroup will pick up the best servers size or family according to their overall availability, pricing and durability.

In our use case – Elastigroup will provision a cluster with 4 nodes

  • 4 nodes of r3.2xlarge = 244 points
  • 1 node of r3.4xlarge = 122 points

Total of 366 points.

 

This calculation was made based on the fact that r3.2xlarge instances have a higher uptime, so Elastigroup will most likely utilize r3.2xlarge first before provisioning r3.4xlarge.

Wrap up –

In this post, we have demonstrated how Elastigroup can manage complex environments, provide smart autoscaling, deliver powerful MapReduce clusters which are highly economical and worthwhile.
With Instance Weighting, you can now gain a true flexibility to run multi-instance type & size both autoscaling or static clusters in AWS.

You can now easily run, scale and manage heterogeneous clusters with ease.