← All articles

Do you even spot, bro? Cloud providers hate him because of this one little trick

By Taylor Christie

Do you even spot, bro? Cloud optimization unlocked.

2 short beeps

Long gone are the days of provisioning a physical server, installing an operating system, pertinent software packages, and then running your application on it. The lifecycle of managing that server is very cumbersome, because when you have issues with it you need to troubleshoot and fix it yourself. failed hardware, system upgrades, long standing edge case bugs, and security vulnerabilities were all your responsibility - yea including POST beeps.

The cloud has made this process so much easier. Now you can instantly provision a virtual machine to run and install your software. This doesn't protect you from all the problems of running a server, but does (mostly) limit your exposure to hardware failures and some of the more common issues that arise from running a server.

Cloud = Magic

That being said - hardware failures happen. AWS does not magically fix all these problems. The likelihood of an instance failing is low - but even AWS only has a 99.5% uptime SLA for a single EC2 instance. That's nearly two days of downtime per year. The cloud is in fact, still running servers behind the scenes.

The next evolution of cloud computing is to use multiple instances, with fault tolerant orchestration to continually run your workloads. At Solarium we use kubernetes almost exclusively for this purpose, and is how we can maintain our 99.9+% uptime SLA for all our customers.

YAML FTW

Kubernetes affords you the ability to run workloads in a way where your application isn't treated as something special - the ecosystem encourages you to treat workloads ephemerally and it expects them to fail at some point. This is actually the best practice, so you build things durably from the start.

While this adds some complexity up front, the benefits you reap are well worth it. Highly available, and ephemeral applications with no single point of failure allow any singular system to fail (ie: a 99.5% SLA EC2 instance) without disrupting your customers at all. Beyond that, it affords you the ability to look into more efficient ways to run compute on large cloud providers, like AWS.

Spot instances

Spot instances allow you to run AWS spare compute for your workloads at a heavily discounted price, with the caveat that this workload can be disrupted at any time with only 2 minutes before the instance is terminated.

I gave a really long preamble before diving into spot instances because it's important to understand that you can't just magically throw a website onto a spot instance to gain 90% compute savings. If you do that without proper fault tolerance, you'll have significantly more downtime than running a regular EC2 instance.

Solarium has saved companies $20k - $50k USD per MONTH on compute cost by rearchitecting their applications to be fault tolerant and spot compatible.

Spot isn't a one-size fit all though, if you are running low load systems sometimes it's cheaper (and more effective) to just run a single EC2 instance, so long as you can automatically recover from an instance/hardware failure.

Kubernetes covers both of these cases very simply, so we can run low availability/price workloads on non-preemptive instances, and larger throughput / higher availability workloads on spot. Spot is absolutely a economies of scale solution, and every cloud solution is a bit different.

Need Help?

Use an expert that knows cloud providers in and out to squeeze the most efficiency out of your cloud spend. You could be wasting thousands of dollars without even knowing it.

If you have high cloud bills then contact us for a completely free, no obligation cloud cost analysis.