Pages

Wednesday, July 31, 2013

Auto-Scaling with AWS Spot Instances

While working on inPowered's back-end systems we are using a lot of different AWS services. One of our sub-components recently needed to be able to handle many times the load it had been handling very well for over a year. Since we're using auto-scaling groups (ASGs) for pretty much everything of course the solution was to simply scale up more instances. However we had to go from a few dozen to a few hundred instances almost over night. And even though this ASG was utilizing t1.micros controlling cost became a concern. So we decided to try using spot instances.

Code Learnings in a Nutshell

A software engineer has the main objective of solving problems from a wide variety of domains. One of the main principles used in Computer Science and Software engineering is Reusability. As defined in Wikipedia, reusability is the likelihood that a segment of source code can be used again to add new functionalities with slight or no modification. Reusable modules and classes reduce implementation time, increase the likelihood that prior testing and use has eliminated bugs and localizes code modifications when a change in implementation is required. In this blog we aim at capturing code learning and solution patterns we have learned and applied in our careers.