How to run fault-tolerant workloads for up to 90% off using Amazon EC2 Spot Instances?

Reading Time: 10 minutes

Understanding cloud bills and how to get the most out of the budget on AWS is becoming increasingly important as enterprises migrate more applications and services to the cloud and a larger portion of IT budgets is diverted to cloud providers. With specialized tools, economic models, and best practices, AWS cost optimization has become its own specialty. If you are looking for the deepest discounts on EC2 prices and your process can be interrupted, then EC2 Spot Instance is the best way to save the most of your computing cost. Spot Instances can save you up to 90% on your costs. The most important caveat is that spot instances can be terminated at any time with 2 minutes of notice.

If you are new to AWS and Elastic Compute Cloud (EC2), refer to our blog to know everything about EC2 instances: AWS EC2.

In this blog, we will discuss EC2 Spot Instances, benefits, how it works, use cases, features, best practices, pricing, & companies using it. In part 2 of this blog, we demonstrated how to run Spot Instance On AWS with step-by-step instructions.

In this blog, we will cover:

  • What are Amazon EC2 Spot Instances?
  • Benefits of EC2 Spot Instances
  • EC2 Spot Instances vs On-Demand EC2 instances
  • How does Spot instances work?
  • Use Cases of EC2 Spot Instances
  • Features of EC2 Spot instances
  • What is a Spot fleet?
  • Best Practices for EC2 Spot Instances
  • Amazon EC2 Spot Instances Pricing
  • Companies using Amazon EC2 Spot Instances 
  • Conclusion

What are Amazon EC2 Spot Instances?

You can use Amazon EC2 Spot Instances to take advantage of unused AWS EC2 capacity. When compared to On Demand rates, Spot Instances offer up to a 90% reduction. Spot Instances can be used for a variety of stateless, fault-tolerant, or flexible applications, including large data, containerized workloads, high-performance computing (HPC), and test & development workloads. You can select how to launch and maintain your Spot Instances-based applications because Spot Instances are intimately connected with AWS services such as Auto Scaling, CloudFormation, Data Pipeline, and AWS Batch. 

To further optimize workload cost and performance, you may easily combine Spot Instances with On Demand, RIs, and Savings Plan Instances. Spot Instances can help you perform hyper-scale applications at a lower cost. When EC2 reclaims capacity, you have the choice to hibernate, stop, or terminate your Spot Instances with two minutes’ notice.  

Benefits of EC2 Spot Instances

Low, Predictable Prices

Spot Instances can be purchased for up to 90 percent less than On-Demand instances. You can also use EC2 Auto Scaling to provision capacity across Spot, On Demand, RIs, and Savings Plans Instances to balance workload cost and performance. 

Benefits of Amazon EC2 Spot Instances

Massive Scale

Spot provides you with the benefits of AWS’ huge operational scale. You can save a lot of money by running hyper-scale workloads, or you can speed up your workloads by performing parallel jobs.

Easy to use

Spot Instances may be easily launched, scaled, and managed using AWS services like EC2 Auto Scaling and ECS, as well as third-party integrations like Terraform and Jenkins.

EC2 Spot Instances vs On-Demand EC2 instances

Spot Instances vs On-Demand Instances

Spot instances behave identically like On-Demand or Reserved instances when they’re running. Spot instances often give a large discount over On-Demand costs, your instances can be interrupted by Amazon EC2 for capacity requirements with a 2-minute notice, and Spot prices fluctuate gradually based on long-term availability and demand for spare EC2 capacity.

How does Spot instances work?

Step 1: Before running Spot instances, refer to using Spot instances.

Step 2: Choose all instances and Availability Zones that work for your workloads.

Step 3: Select your interruption behavior (Stop/Terminate).

Step 4: Launch and Scale your target capacity.

How does Amazon EC2 Spot Instances work

Use Cases of EC2 Spot Instances

Big Data and Analytics: Use Spot Instances with Amazon EMR, Hadoop, or Spark to process enormous volumes of data quickly for big data and machine learning tasks.

Containerized Workloads: Containers are ideal for Spot Instances since they are frequently stateless and fault tolerant. On Spot, you may run containerized workloads of any scale using Amazon ECS, Amazon EKS, or self-managed Kubernetes clusters.

CI/CD & Testing: CI/CD workloads are fault tolerant and designed to take advantage of Spot Instances’ cost reductions. With the EC2 Spot Fleet plug-in, you can quickly and cost-effectively launch your CI/CD workflows in the AWS Cloud.

Use cases of Amazon EC2 Spot Instances

Web Services: Using Spot Instances, you can maintain great web performance during high traffic at a reasonable cost. Using EC2 Auto Scaling, you may expand to tens of thousands of Spot Instances by deploying a fleet of EC2 instances behind a load balancer.

Image and Media Rendering: Media & Entertainment studios can cost-effectively manage rendering workloads using Spot Instances, scaling on-premises or cloud infrastructures with nearly limitless capacity as projects and timelines demand.

High-Performance Computing: Accelerate loosely coupled or embarrassingly parallel HPC workloads such as genomic sequencing and algorithmic trading. You can use Spot Instances with other AWS services such as AWS Batch to run HPC workloads. 

Features of EC2 Spot instances

Amazon EC2 Auto Scaling Integration: You may use Amazon EC2 Auto Scaling groups to automatically launch and manage Spot instances, maintain application availability, and scale your Amazon EC2 Spot capacity up or down based on criteria and maximum costs.  AWS Auto Scaling can be used to scale additional services in addition to EC2.

Optimize for cost or reduce Interruptions: Amazon EC2 Fleet allows you to supply compute capacity across EC2 instance types, Availability Zones, and purchasing models with a single API call, allowing you to optimize scale, performance, and cost. You can use EC2 Fleet to specify how much On Demand and Spot capacity to launch. You can also choose between several instance kinds and whether to grow capacity by cores, instances, or memory.  In EC2 Auto Scaling, EC2 Fleet, and Spot Fleet, allocation techniques control how Spot Instances in your fleet are supplied from Spot Instance pools. By monitoring capacity measurements, the capacity-optimized allocation approach tries to provision Spot Instances from the most available Spot Instance pools. For workloads with a high cost of interruption, such as big data and analytics, image and video rendering, machine learning, and high-performance computing, this method is a strong fit. Spot Instances are launched using the lowest price allocation approach, which diversifies among ‘N’ lowest priced pools.

On-Demand Run Instances Function Integration: With a single additional parameter, the Run Instances API may start Spot instances. Spot instances launched with RunInstances are identical to any EC2 instance; they offer Amazon EC2’s stability, security, performance, control, and elasticity at market-driven costs. Simply mention the market option as Spot when requesting capacity.

Stop/Hibernate and resume Workloads: Instead of terminating your instances when capacity is no longer available, Spot can hibernate or pause (shutdown) them in the event of an interruption. When capacity becomes available, instances will be resumed from their previous state, allowing your instances to continue their work sooner.

Track when Spot Instances run and terminate: You will never pay more than the maximum fee you selected while using Spot instances. Your instance will be automatically terminated (or stopped/hibernate, if you decide on this option on persistent request) if the Spot price exceeds your maximum willingness to pay for a given instance or when capacity is no longer available. Spot has three capabilities that allow you to keep track of and regulate when Spot instances start and stop:

  • Termination Notices.
  • Persistent Requests.
  • Block Durations.

Amazon EMR Integration: Customers of Amazon Web Services can now deploy Amazon Elastic MapReduce (EMR) clusters on Spot instances, lowering the cost of processing large amounts of data on managed Hadoop clusters. Customers can use the numerous Instance Group’s capability to combine Spot instances with On Demand and/or Reserved instances in their EMR clusters.

Features of Amazon EC2 Spot Instances

Amazon CloudFormation Integration: AWS CloudFormation makes it simple to arrange and deploy a group of AWS resources, including EC2 Spot, while also allowing you to specify any dependencies or custom parameters to pass in at runtime. The cfncluster demo is a CloudFormation-based High-Performance Computing platform that can utilize Spot instances.

Amazon ECS Integration: Customers who use Amazon Elastic Container Service (ECS) can operate Amazon ECS clusters on Spot instances to lower the cost of operating containerized apps on Amazon ECS. Customers can utilize the Create Cluster Wizard to quickly set up an ECS cluster with Spot instances using Amazon ECS Console and Amazon EC2 Spot.

Amazon Batch Integration: Customers’ batch computing workloads are planned, scheduled, and executed by AWS Batch. AWS Batch makes dynamic Spot Instance requests on your behalf, lowering the cost of running batch processes.

ThinkBox Deadline Integration: Through the AWS Portal, Thinkbox Deadline makes it simple to set up a render farm on EC2 using Spot fleet. You may spin up an EC2 Spot fleet using any 3rd party product you desire, such as Autodesk Maya or Autodesk 3dsMax. Deadline 10 includes a file system that syncs your asset files to Amazon S3 automatically.

Attach Encrypted EBS Volumes at Launch: When launching the instance, you can specify an unencrypted snapshot and ask Spot to build encrypted EBS volume(s). When submitting a Spot request, specify “Encrypted: true” as the encryption behavior within block device mappings. If you specify the snapshot ID without the “Encrypted” flag and Spot creates encrypted volumes in your existing encrypted EBS snapshot, Spot will continue to produce encrypted volumes in that snapshot.

Control your Spot Instance budget: When you request a Spot instance, the On Demand fee will be set to the maximum price you are ready to pay per Spot instance hour. You can also give yourself more control over your Spot instance budget by indicating in your request the maximum price you’re ready to spend each instance hour. You’ll continue to pay the current Spot pricing for the duration of your instances’ operation. Your instance will be terminated, paused, or hibernated if the Spot price climbs over your maximum price.

Third-Party Integration: To run continuous integration build tasks on Spot instances, utilize the Spot Fleet plugin for Jenkins and Atlassin Bamboo.

What is a Spot fleet?

Spot fleet

A Spot Fleet allows you to automatically request and manage many Spot instances for your cluster or application, such as a batch processing job, a Hadoop workflow, or an HPC grid computing project, that provides the best pricing per unit of capacity. The instance types that your application can use can be included. After the fleet is launched, you establish a target capacity depending on your application demands (in units like instances, vCPUs, memory, storage, or network throughput) and update the target capacity. Spot fleets allow you to launch and maintain the desired capacity, as well as request resources to replace those that are disrupted or terminated manually.

Best Practices for EC2 Spot Instances

Spot Instances are ideal for stateless, fault-tolerant, and adaptable applications. Spot Instances, for example, are ideal for big data, containerized workloads, continuous integration/delivery (CI/CD), stateless web servers, high-performance computing (HPC), and rendering tasks.

Its best practices include:

  • Prepare individual instances for interruptions
  • Be flexible about instance types and Availability Zones
  • Use EC2 Auto Scaling groups or Spot Fleet to manage your aggregate capacity
  • Use the capacity-optimized allocation strategy
  • Use proactive capacity rebalancing
  • Use integrated AWS services to manage your Spot Instances

Amazon EC2 Spot Instances Pricing

You pay the Spot fee for the time period your instances are running when you use Spot Instances. Amazon EC2 sets Spot Instance rates, which fluctuate over time depending on long-term patterns in supply and demand for Spot Instance capacity. 

Spot Instances can also be run for a preset period of time – in hourly increments up to six hours – at a 30-50 percent reduction compared to On-Demand pricing.

Charges when Spot instances are interrupted

  • You will not be charged if your Spot instance is terminated or stopped by Amazon EC2 within the first instance hour. 
  • You will be charged to the closest second if you terminate the instance yourself. 
  • You will be charged to the closest second if the Spot instance is terminated or stopped by Amazon EC2 in the next hour. 
  • You will be charged for a complete hour if you are using Windows and end the instance yourself.

Companies using Amazon EC2 Spot Instances 

NextRoll 

NextRoll is a global pioneer in ad retargeting, with cross platform reach and capabilities to enable targeted ad campaigns across big display inventory sources. Because of the low latency, assured throughput, and ability to scale quickly, NextRoll picked Amazon EC2, S3, and DynamoDB to run their business. They also use Spot for changeable capacity, which allows them to execute workloads faster and more efficiently at a reduced cost.

Lyft

With a valuation of $5.5 billion, Lyft is a San Francisco-based ridesharing firm that is on Fortune magazine’s “Unicorn” list of hot startups. Lyft saves up to 90% a month by switching to AWS Spot instances by merely modifying four lines of code.

CoreLogic

CoreLogic is Australia and New Zealand’s largest provider of property information, analytics, and risk management services. CoreLogic reduced its computing costs by 90% by replacing its EC2 fleet with spot instances and employing a worker architecture.

Conclusion

In this blog, we have explored EC2 Spot instances, their benefits, features, use cases, and how it works. Spot instances are unused EC2 capacity that can save you up to 90% off On-Demand costs and can be interrupted by Amazon Web Services with a 2-minute notification. The spot is best suited for fault-tolerant, flexible workloads and uses the same underlying EC2 instances as On-Demand and Reserved Instances. We will demonstrate the full implementation of Amazon EC2 Spot instances with step-by-step instructions in our upcoming blog. Stay tuned to keep getting all updates about our upcoming new blogs on AWS and relevant technologies. 

For any further queries, feel free to post your comments, we are happy to help!

Meanwhile …

Keep Exploring -> Keep Learning -> Keep Mastering

This blog is part of our effort towards building a knowledgeable and kick-ass tech community. At Workfall, we strive to provide the best tech and pay opportunities to AWS-certified talents. If you’re looking to work with global clients, build kick-ass products while making big bucks doing so, give it a shot at workfall.com/partner today.

Back To Top