Back to Blog

SpotFleet on Convox (ECS)

By Brian Galura -

SpotFleet on Convox (ECS)

At Convox, our commitment to harnessing the latest in cloud technology guides our continuous evolution, ensuring that our customers access the most efficient and advanced solutions. With this mindset, we’re enhancing our v2 (ECS) racks with the ability to utilize SpotFleet. This addition is a notable leap from our current AWS Spot Instance bid feature, bringing a new level of flexibility and cost-effectiveness to resource management. By adopting SpotFleet, we offer a solution that adapts seamlessly to the dynamic needs of our AWS users, further cementing our role as innovators in cloud resource management.

Spot Instances Overview

For our customers, the existing AWS Spot Instance bid feature has been game-changing, offering considerable cost savings and enhanced flexibility in their cloud management. Unlike traditional fixed-price models, AWS’s spot instances enable our users to capitalize on the varying market prices for unused capacity. By setting a maximum bid price, they often receive these instances at the current spot price, which is typically much lower than standard on-demand rates. This dynamic pricing model has positioned spot instances as an exceptionally cost-effective choice for resource management.

Elevating this approach, the integration of SpotFleet support represents a significant enhancement. SpotFleet not only maintains the cost benefits of spot instances but also introduces greater sophistication and automation in resource allocation and cost management. This upgrade offers our customers an even more powerful tool, optimizing cloud resources with advanced efficiency and adapting adeptly to their evolving needs in the AWS ecosystem.

SpotFleet Feature Single Subnet/AZ Limitation:

It’s important to note that our newly released SpotFleet feature currently operates within a single subnet and Availability Zone (AZ). This brings specific considerations, such as potential impacts on fault tolerance and latency due to the geographical and infrastructural limitations of a single AZ. We are diligently working towards enabling full multi-AZ support to provide even greater resilience and flexibility.

For racks configured with High Availability (HighAvailability=true), while the overall rack architecture utilizes multiple subnets/AZs to ensure redundancy and reliability, the SpotFleet placement is currently constrained to the subnet defined as Subnet0CIDR in the rack parameters. This means that even in HA setups, the SpotFleet will deploy resources within this single designated subnet and AZ. We recognize the importance of expanding this capability and are actively working towards enabling full multi-AZ support for SpotFleet.

Practical Usage and General Use Case Examples:

The introduction of SpotFleet support into Convox’s v2 (ECS) racks opens a world of versatile and dynamic configurations, tailored to meet a wide range of operational needs. Whether you’re dealing with fluctuating workloads or resource-intensive applications, this new feature brings a level of scalability and customization that can significantly enhance your cloud resource management. Let’s explore a couple of scenarios where SpotFleet could be particularly beneficial:

Cost-Effective Scaling: Automatically scale your resources in the most cost-effective manner, especially beneficial for variable workloads.

Example Parameters:

  • SpotFleetAllowedInstanceTypes: For variable workloads, choose a mix of instance types that offer both performance and cost-efficiency. For instance, combining m5.large for baseline performance with c5.2xlarge for compute-intensive peaks can be effective.
  • SpotFleetAllocationStrategy: The lowestPrice strategy is often suitable here, as it focuses on cost savings. However, if your workload requires a specific performance level, consider capacityOptimized to ensure the availability of high-performance instances.
  • SpotFleetMaxPrice: Set a ceiling that aligns with your budget while also considering the typical spot prices for your selected instance types.
  • SpotFleetMinOnDemandCount: While the default of 1 (or 2 for HA configurations) offers a baseline of stability, you might want to increase this number during periods of high demand to ensure continuous operation.

Resource-Intensive Applications: Efficiently run applications with specific memory or CPU requirements by tailoring your Spot Fleet configurations.

Example Parameters:

  • SpotFleetAllowedInstanceTypes: Select instance types that cater to high memory and CPU demands. For instance, types like c5.4xlarge could be ideal for their balance of compute and memory resources.
  • SpotFleetTargetType: For memory-intensive applications, setting this to memory-mib ensures that the fleet prioritizes memory allocation. Conversely, for CPU-intensive tasks, vcpu would be the more appropriate choice.
  • SpotFleetMinMemoryMiB ** and ** SpotFleetMinVcpuCount: Adjust these to match the performance thresholds of your applications – e.g. high-traffic webserver could require setting SpotFleetMinMemoryMiB to 16000 (16 GB) and SpotFleetMinVcpuCount to 8 ensure robust handling of simultaneous requests and data processing.
  • SpotFleetAllocationStrategy: The capacityOptimized strategy would be beneficial here, focusing on acquiring instances that can sustain the high performance required by dynamic and resource-intensive web applications.

SpotFleet Configuration Parameters:

To fully leverage the capabilities of SpotFleet, we have introduced several control parameters, each designed to fine-tune your resource management:

SpotFleetAllowedInstanceTypes: This parameter enables the specification of permissible instance types using a comma-separated list. For example, you can list specific types like m5.8xlarge, r5.large or use patterns like c5*.*, *3* to allow a range of instances. This flexibility allows for precise control over the instance types used in your Spot Fleet.

SpotFleetAllocationStrategy: This setting dictates how instances are selected within the fleet with options:

  • lowestPrice - Prioritizes cost by choosing the least expensive instances, ideal for cost-sensitive operations.
  • diversified - Spreads instances across different types and availability zones, reducing the risk of simultaneous loss.
  • capacityOptimized - Focuses on selecting instances based on available capacity, suitable for LOB and performance-critical applications.

SpotFleetMaxPrice: Determining the maximum price involves analyzing your workload requirements and market trends. A higher max price increases the likelihood of instance availability but could raise costs. It’s a balance between ensuring instance availability and managing expenses.

SpotFleetMinMemoryMiB and SpotFleetMinVcpuCount: Separating these parameters allows for finer control.

SpotFleetMinOnDemandCount: This parameter, defaulting to 2 (or 1 if HighAvailbility=false) sets the minimum number of on-demand fleet instances for rack API and rack service placement. It’s advisable to be cautious when lowering this value, as it might impact the stability and communication to the rack should the fleet be generally misconfigured.

SpotFleetTargetType: Controls how the capacity of the Spot Fleet is measured and scaled. It allows you to define the primary metric that the Spot Fleet should use to fulfill the capacity requirement, ensuring that the fleet aligns with your specific resource needs with options:

  • memory-mib - Select this option to prioritize memory allocation, ideal for memory-intensive applications where ample memory is key to performance
  • units - A balanced choice that considers a combination of resources, suitable for a variety of general-purpose applications.
  • vcpu - Focus on CPU capacity, perfect for applications that require significant processing power.

By carefully selecting and configuring these parameters, users can optimize their SpotFleet deployment for various scenarios, ensuring that they are not only cost-effective but also tailored to the specific performance requirements of their applications.

Conclusion:

With the introduction of SpotFleet support for Convox v2 (ECS) racks, we are not just offering a new feature — we are providing a gateway to more sophisticated, flexible, and cost-effective cloud resource management. We invite you to explore this new capability and experience the enhanced efficiency and optimization it brings to your rack.