One of the best practices for using EC2 Spot Instances effectively is to be flexible across a wide range of instance types. When customers configure their Auto Scaling group, EC2 Fleet, or Spot Fleet to use multiple instance types with Spot, they must choose a Spot allocation strategy. Spot allocation strategies determine how the Spot Instances in your fleet are fulfilled from Spot Instance pools. The capacity-optimized strategy automatically launches Spot Instances into the most available pools by looking at real-time capacity data and predicting which are the most available. This works well for workloads such as big data and analytics, image and media rendering, machine learning, and high performance computing that may have a higher cost of interruption. By offering the possibility of fewer interruptions, the capacity-optimized strategy can lower the overall cost of your workload.
Amazon EC2 Spot Instances let you take advantage of unused EC2 capacity available in the AWS cloud. Spot Instances are available at up to a 90% discount compared to On-Demand prices. You can use Spot Instances for various stateless, fault-tolerant, or flexible applications such as big data, containerized workloads, CI/CD, web servers, high-performance computing (HPC), and other test & development workloads. Spot Instances are easy to launch, scale and manage through AWS services such as Amazon ECS and Amazon EMR, or integrated third parties such as Terraform and Jenkins.
Spot Instances can be launched via RunInstances API with a single additional parameter. You can also provision compute capacity across Spot Instances, RIs and On-Demand instances to optimize performance and cost using EC2 Auto Scaling, EC2 Fleet, and Spot Fleet APIs.