Class: AWSCDK::Autoscaling::CfnAutoScalingGroup::InstancesDistributionProperty
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::Autoscaling::CfnAutoScalingGroup::InstancesDistributionProperty
- Defined in:
- autoscaling/cfn_auto_scaling_group.rb
Overview
Use this structure to specify the distribution of On-Demand Instances and Spot Instances and the allocation strategies used to fulfill On-Demand and Spot capacities for a mixed instances policy.
For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide .
InstancesDistribution is a property of the AWS::AutoScaling::AutoScalingGroup MixedInstancesPolicy property type.
Instance Attribute Summary collapse
-
#on_demand_allocation_strategy ⇒ String?
readonly
The allocation strategy to apply to your On-Demand Instances when they are launched.
-
#on_demand_base_capacity ⇒ Numeric?
readonly
The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances.
-
#on_demand_percentage_above_base_capacity ⇒ Numeric?
readonly
Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond
OnDemandBaseCapacity. -
#spot_allocation_strategy ⇒ String?
readonly
The allocation strategy to apply to your Spot Instances when they are launched.
-
#spot_instance_pools ⇒ Numeric?
readonly
The number of Spot Instance pools across which to allocate your Spot Instances.
-
#spot_max_price ⇒ String?
readonly
The maximum price per unit hour that you are willing to pay for a Spot Instance.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(on_demand_allocation_strategy: nil, on_demand_base_capacity: nil, on_demand_percentage_above_base_capacity: nil, spot_allocation_strategy: nil, spot_instance_pools: nil, spot_max_price: nil) ⇒ InstancesDistributionProperty
constructor
A new instance of InstancesDistributionProperty.
- #to_jsii ⇒ Object
Constructor Details
#initialize(on_demand_allocation_strategy: nil, on_demand_base_capacity: nil, on_demand_percentage_above_base_capacity: nil, spot_allocation_strategy: nil, spot_instance_pools: nil, spot_max_price: nil) ⇒ InstancesDistributionProperty
Returns a new instance of InstancesDistributionProperty.
1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1897 def initialize(on_demand_allocation_strategy: nil, on_demand_base_capacity: nil, on_demand_percentage_above_base_capacity: nil, spot_allocation_strategy: nil, spot_instance_pools: nil, spot_max_price: nil) @on_demand_allocation_strategy = on_demand_allocation_strategy Jsii::Type.check_type(@on_demand_allocation_strategy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "onDemandAllocationStrategy") unless @on_demand_allocation_strategy.nil? @on_demand_base_capacity = on_demand_base_capacity Jsii::Type.check_type(@on_demand_base_capacity, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "onDemandBaseCapacity") unless @on_demand_base_capacity.nil? @on_demand_percentage_above_base_capacity = on_demand_percentage_above_base_capacity Jsii::Type.check_type(@on_demand_percentage_above_base_capacity, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "onDemandPercentageAboveBaseCapacity") unless @on_demand_percentage_above_base_capacity.nil? @spot_allocation_strategy = spot_allocation_strategy Jsii::Type.check_type(@spot_allocation_strategy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "spotAllocationStrategy") unless @spot_allocation_strategy.nil? @spot_instance_pools = spot_instance_pools Jsii::Type.check_type(@spot_instance_pools, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "spotInstancePools") unless @spot_instance_pools.nil? @spot_max_price = spot_max_price Jsii::Type.check_type(@spot_max_price, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "spotMaxPrice") unless @spot_max_price.nil? end |
Instance Attribute Details
#on_demand_allocation_strategy ⇒ String? (readonly)
The allocation strategy to apply to your On-Demand Instances when they are launched.
Possible instance types are determined by the launch template overrides that you specify.
The following lists the valid values:
- lowest-price - Uses price to determine which instance types are the highest priority, launching the lowest priced instance types within an Availability Zone first. This is the default value for Auto Scaling groups that specify
InstanceRequirements. - prioritized - You set the order of instance types for the launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling launches your highest priority instance types first. If all your On-Demand capacity cannot be fulfilled using your highest priority instance type, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on. This is the default value for Auto Scaling groups that don't specify
InstanceRequirementsand cannot be used for groups that do.
1923 1924 1925 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1923 def on_demand_allocation_strategy @on_demand_allocation_strategy end |
#on_demand_base_capacity ⇒ Numeric? (readonly)
The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances.
This base portion is launched first as your group scales.
This number has the same unit of measurement as the group's desired capacity. If you change the default unit of measurement (number of instances) by specifying weighted capacity values in your launch template overrides list, or by changing the default desired capacity type setting of the group, you must specify this number using the same unit of measurement.
Default: 0
An update to this setting means a gradual replacement of instances to adjust the current On-Demand Instance levels. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the previous ones.
1936 1937 1938 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1936 def on_demand_base_capacity @on_demand_base_capacity end |
#on_demand_percentage_above_base_capacity ⇒ Numeric? (readonly)
Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond OnDemandBaseCapacity .
Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). If set to 100, only On-Demand Instances are used.
Default: 100
An update to this setting means a gradual replacement of instances to adjust the current On-Demand and Spot Instance levels for your additional capacity higher than the base capacity. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the previous ones.
1947 1948 1949 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1947 def on_demand_percentage_above_base_capacity @on_demand_percentage_above_base_capacity end |
#spot_allocation_strategy ⇒ String? (readonly)
The allocation strategy to apply to your Spot Instances when they are launched.
Possible instance types are determined by the launch template overrides that you specify.
The following lists the valid values:
- capacity-optimized - Requests Spot Instances using pools that are optimally chosen based on the available Spot capacity. This strategy has the lowest risk of interruption. To give certain instance types a higher chance of launching first, use
capacity-optimized-prioritized. - capacity-optimized-prioritized - You set the order of instance types for the launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best effort basis but optimizes for capacity first. Note that if the On-Demand allocation strategy is set to
prioritized, the same priority is applied when fulfilling On-Demand capacity. This is not a valid value for Auto Scaling groups that specifyInstanceRequirements. - lowest-price - Requests Spot Instances using the lowest priced pools within an Availability Zone, across the number of Spot pools that you specify for the
SpotInstancePoolsproperty. To ensure that your desired capacity is met, you might receive Spot Instances from several pools. This is the default value, but it might lead to high interruption rates because this strategy only considers instance price and not available capacity. - price-capacity-optimized (recommended) - The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price.
1961 1962 1963 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1961 def spot_allocation_strategy @spot_allocation_strategy end |
#spot_instance_pools ⇒ Numeric? (readonly)
The number of Spot Instance pools across which to allocate your Spot Instances.
The Spot pools are determined from the different instance types in the overrides. Valid only when the SpotAllocationStrategy is lowest-price . Value must be in the range of 1–20.
Default: 2
1970 1971 1972 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1970 def spot_instance_pools @spot_instance_pools end |
#spot_max_price ⇒ String? (readonly)
The maximum price per unit hour that you are willing to pay for a Spot Instance.
If your maximum price is lower than the Spot price for the instance types that you selected, your Spot Instances are not launched. We do not recommend specifying a maximum price because it can lead to increased interruptions. When Spot Instances launch, you pay the current Spot price. To remove a maximum price that you previously set, include the property but specify an empty string ("") for the value.
If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify one.
Valid Range: Minimum value of 0.001
1981 1982 1983 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1981 def spot_max_price @spot_max_price end |
Class Method Details
.jsii_properties ⇒ Object
1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1983 def self.jsii_properties { :on_demand_allocation_strategy => "onDemandAllocationStrategy", :on_demand_base_capacity => "onDemandBaseCapacity", :on_demand_percentage_above_base_capacity => "onDemandPercentageAboveBaseCapacity", :spot_allocation_strategy => "spotAllocationStrategy", :spot_instance_pools => "spotInstancePools", :spot_max_price => "spotMaxPrice", } end |
Instance Method Details
#to_jsii ⇒ Object
1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1994 def to_jsii result = {} result.merge!({ "onDemandAllocationStrategy" => @on_demand_allocation_strategy, "onDemandBaseCapacity" => @on_demand_base_capacity, "onDemandPercentageAboveBaseCapacity" => @on_demand_percentage_above_base_capacity, "spotAllocationStrategy" => @spot_allocation_strategy, "spotInstancePools" => @spot_instance_pools, "spotMaxPrice" => @spot_max_price, }) result.compact end |