Class: AWSCDK::Autoscaling::CfnAutoScalingGroup::InstanceRequirementsProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
autoscaling/cfn_auto_scaling_group.rb

Overview

The attributes for the instance types for a mixed instances policy.

Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.

When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.

To limit the list of instance types from which Amazon EC2 Auto Scaling can identify matching instance types, you can use one of the following parameters, but not both in the same request:

  • AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.
  • ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes.

You must specify VCpuCount and MemoryMiB . All other attributes are optional. Any unspecified optional attribute is set to its default.

For an example template, see Configure Amazon EC2 Auto Scaling resources .

For more information, see Creating an Auto Scaling group using attribute-based instance type selection in the Amazon EC2 Auto Scaling User Guide . For help determining which instance types match your attributes before you apply them to your Auto Scaling group, see Preview instance types with specified attributes in the Amazon EC2 User Guide for Linux Instances .

InstanceRequirements is a property of the LaunchTemplateOverrides property of the AWS::AutoScaling::AutoScalingGroup LaunchTemplate property type.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(memory_mib:, v_cpu_count:, accelerator_count: nil, accelerator_manufacturers: nil, accelerator_names: nil, accelerator_total_memory_mib: nil, accelerator_types: nil, allowed_instance_types: nil, bare_metal: nil, baseline_ebs_bandwidth_mbps: nil, baseline_performance_factors: nil, burstable_performance: nil, cpu_manufacturers: nil, excluded_instance_types: nil, instance_generations: nil, local_storage: nil, local_storage_types: nil, max_spot_price_as_percentage_of_optimal_on_demand_price: nil, memory_gib_per_v_cpu: nil, network_bandwidth_gbps: nil, network_interface_count: nil, on_demand_max_price_percentage_over_lowest_price: nil, require_hibernate_support: nil, spot_max_price_percentage_over_lowest_price: nil, total_local_storage_gb: nil) ⇒ InstanceRequirementsProperty

Returns a new instance of InstanceRequirementsProperty.

Parameters:



1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1523

def initialize(memory_mib:, v_cpu_count:, accelerator_count: nil, accelerator_manufacturers: nil, accelerator_names: nil, accelerator_total_memory_mib: nil, accelerator_types: nil, allowed_instance_types: nil, bare_metal: nil, baseline_ebs_bandwidth_mbps: nil, baseline_performance_factors: nil, burstable_performance: nil, cpu_manufacturers: nil, excluded_instance_types: nil, instance_generations: nil, local_storage: nil, local_storage_types: nil, max_spot_price_as_percentage_of_optimal_on_demand_price: nil, memory_gib_per_v_cpu: nil, network_bandwidth_gbps: nil, network_interface_count: nil, on_demand_max_price_percentage_over_lowest_price: nil, require_hibernate_support: nil, spot_max_price_percentage_over_lowest_price: nil, total_local_storage_gb: nil)
  @memory_mib = memory_mib.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::MemoryMiBRequestProperty.new(**memory_mib.transform_keys(&:to_sym)) : memory_mib
  Jsii::Type.check_type(@memory_mib, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLk1lbW9yeU1pQlJlcXVlc3RQcm9wZXJ0eSJ9XX19")), "memoryMiB")
  @v_cpu_count = v_cpu_count.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::VCpuCountRequestProperty.new(**v_cpu_count.transform_keys(&:to_sym)) : v_cpu_count
  Jsii::Type.check_type(@v_cpu_count, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLlZDcHVDb3VudFJlcXVlc3RQcm9wZXJ0eSJ9XX19")), "vCpuCount")
  @accelerator_count = accelerator_count.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::AcceleratorCountRequestProperty.new(**accelerator_count.transform_keys(&:to_sym)) : accelerator_count
  Jsii::Type.check_type(@accelerator_count, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLkFjY2VsZXJhdG9yQ291bnRSZXF1ZXN0UHJvcGVydHkifV19fQ==")), "acceleratorCount") unless @accelerator_count.nil?
  @accelerator_manufacturers = accelerator_manufacturers
  Jsii::Type.check_type(@accelerator_manufacturers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "acceleratorManufacturers") unless @accelerator_manufacturers.nil?
  @accelerator_names = accelerator_names
  Jsii::Type.check_type(@accelerator_names, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "acceleratorNames") unless @accelerator_names.nil?
  @accelerator_total_memory_mib = accelerator_total_memory_mib.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::AcceleratorTotalMemoryMiBRequestProperty.new(**accelerator_total_memory_mib.transform_keys(&:to_sym)) : accelerator_total_memory_mib
  Jsii::Type.check_type(@accelerator_total_memory_mib, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLkFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUJSZXF1ZXN0UHJvcGVydHkifV19fQ==")), "acceleratorTotalMemoryMiB") unless @accelerator_total_memory_mib.nil?
  @accelerator_types = accelerator_types
  Jsii::Type.check_type(@accelerator_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "acceleratorTypes") unless @accelerator_types.nil?
  @allowed_instance_types = allowed_instance_types
  Jsii::Type.check_type(@allowed_instance_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "allowedInstanceTypes") unless @allowed_instance_types.nil?
  @bare_metal = bare_metal
  Jsii::Type.check_type(@bare_metal, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "bareMetal") unless @bare_metal.nil?
  @baseline_ebs_bandwidth_mbps = baseline_ebs_bandwidth_mbps.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::BaselineEbsBandwidthMbpsRequestProperty.new(**baseline_ebs_bandwidth_mbps.transform_keys(&:to_sym)) : baseline_ebs_bandwidth_mbps
  Jsii::Type.check_type(@baseline_ebs_bandwidth_mbps, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLkJhc2VsaW5lRWJzQmFuZHdpZHRoTWJwc1JlcXVlc3RQcm9wZXJ0eSJ9XX19")), "baselineEbsBandwidthMbps") unless @baseline_ebs_bandwidth_mbps.nil?
  @baseline_performance_factors = baseline_performance_factors.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::BaselinePerformanceFactorsRequestProperty.new(**baseline_performance_factors.transform_keys(&:to_sym)) : baseline_performance_factors
  Jsii::Type.check_type(@baseline_performance_factors, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLkJhc2VsaW5lUGVyZm9ybWFuY2VGYWN0b3JzUmVxdWVzdFByb3BlcnR5In1dfX0=")), "baselinePerformanceFactors") unless @baseline_performance_factors.nil?
  @burstable_performance = burstable_performance
  Jsii::Type.check_type(@burstable_performance, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "burstablePerformance") unless @burstable_performance.nil?
  @cpu_manufacturers = cpu_manufacturers
  Jsii::Type.check_type(@cpu_manufacturers, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "cpuManufacturers") unless @cpu_manufacturers.nil?
  @excluded_instance_types = excluded_instance_types
  Jsii::Type.check_type(@excluded_instance_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "excludedInstanceTypes") unless @excluded_instance_types.nil?
  @instance_generations = instance_generations
  Jsii::Type.check_type(@instance_generations, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "instanceGenerations") unless @instance_generations.nil?
  @local_storage = local_storage
  Jsii::Type.check_type(@local_storage, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "localStorage") unless @local_storage.nil?
  @local_storage_types = local_storage_types
  Jsii::Type.check_type(@local_storage_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "localStorageTypes") unless @local_storage_types.nil?
  @max_spot_price_as_percentage_of_optimal_on_demand_price = max_spot_price_as_percentage_of_optimal_on_demand_price
  Jsii::Type.check_type(@max_spot_price_as_percentage_of_optimal_on_demand_price, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "maxSpotPriceAsPercentageOfOptimalOnDemandPrice") unless @max_spot_price_as_percentage_of_optimal_on_demand_price.nil?
  @memory_gib_per_v_cpu = memory_gib_per_v_cpu.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::MemoryGiBPerVCpuRequestProperty.new(**memory_gib_per_v_cpu.transform_keys(&:to_sym)) : memory_gib_per_v_cpu
  Jsii::Type.check_type(@memory_gib_per_v_cpu, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLk1lbW9yeUdpQlBlclZDcHVSZXF1ZXN0UHJvcGVydHkifV19fQ==")), "memoryGiBPerVCpu") unless @memory_gib_per_v_cpu.nil?
  @network_bandwidth_gbps = network_bandwidth_gbps.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::NetworkBandwidthGbpsRequestProperty.new(**network_bandwidth_gbps.transform_keys(&:to_sym)) : network_bandwidth_gbps
  Jsii::Type.check_type(@network_bandwidth_gbps, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLk5ldHdvcmtCYW5kd2lkdGhHYnBzUmVxdWVzdFByb3BlcnR5In1dfX0=")), "networkBandwidthGbps") unless @network_bandwidth_gbps.nil?
  @network_interface_count = network_interface_count.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::NetworkInterfaceCountRequestProperty.new(**network_interface_count.transform_keys(&:to_sym)) : network_interface_count
  Jsii::Type.check_type(@network_interface_count, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLk5ldHdvcmtJbnRlcmZhY2VDb3VudFJlcXVlc3RQcm9wZXJ0eSJ9XX19")), "networkInterfaceCount") unless @network_interface_count.nil?
  @on_demand_max_price_percentage_over_lowest_price = on_demand_max_price_percentage_over_lowest_price
  Jsii::Type.check_type(@on_demand_max_price_percentage_over_lowest_price, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "onDemandMaxPricePercentageOverLowestPrice") unless @on_demand_max_price_percentage_over_lowest_price.nil?
  @require_hibernate_support = require_hibernate_support
  Jsii::Type.check_type(@require_hibernate_support, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "requireHibernateSupport") unless @require_hibernate_support.nil?
  @spot_max_price_percentage_over_lowest_price = spot_max_price_percentage_over_lowest_price
  Jsii::Type.check_type(@spot_max_price_percentage_over_lowest_price, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "spotMaxPricePercentageOverLowestPrice") unless @spot_max_price_percentage_over_lowest_price.nil?
  @total_local_storage_gb = total_local_storage_gb.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::TotalLocalStorageGBRequestProperty.new(**total_local_storage_gb.transform_keys(&:to_sym)) : total_local_storage_gb
  Jsii::Type.check_type(@total_local_storage_gb, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLlRvdGFsTG9jYWxTdG9yYWdlR0JSZXF1ZXN0UHJvcGVydHkifV19fQ==")), "totalLocalStorageGb") unless @total_local_storage_gb.nil?
end

Instance Attribute Details

#accelerator_countAWSCDK::IResolvable, ... (readonly)

The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type.

To exclude accelerator-enabled instance types, set Max to 0 .

Default: No minimum or maximum limits



1594
1595
1596
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1594

def accelerator_count
  @accelerator_count
end

#accelerator_manufacturersArray<String>? (readonly)

Indicates whether instance types must have accelerators by specific manufacturers.

  • For instance types with NVIDIA devices, specify nvidia .
  • For instance types with AMD devices, specify amd .
  • For instance types with AWS devices, specify amazon-web-services .
  • For instance types with Xilinx devices, specify xilinx .

Default: Any manufacturer



1606
1607
1608
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1606

def accelerator_manufacturers
  @accelerator_manufacturers
end

#accelerator_namesArray<String>? (readonly)

Lists the accelerators that must be on an instance type.

  • For instance types with NVIDIA A100 GPUs, specify a100 .
  • For instance types with NVIDIA V100 GPUs, specify v100 .
  • For instance types with NVIDIA K80 GPUs, specify k80 .
  • For instance types with NVIDIA T4 GPUs, specify t4 .
  • For instance types with NVIDIA M60 GPUs, specify m60 .
  • For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520 .
  • For instance types with Xilinx VU9P FPGAs, specify vu9p .

Default: Any accelerator



1621
1622
1623
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1621

def accelerator_names
  @accelerator_names
end

#accelerator_total_memory_mibAWSCDK::IResolvable, ... (readonly)

The minimum and maximum total memory size for the accelerators on an instance type, in MiB.

Default: No minimum or maximum limits



1628
1629
1630
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1628

def accelerator_total_memory_mib
  @accelerator_total_memory_mib
end

#accelerator_typesArray<String>? (readonly)

Lists the accelerator types that must be on an instance type.

  • For instance types with GPU accelerators, specify gpu .
  • For instance types with FPGA accelerators, specify fpga .
  • For instance types with inference accelerators, specify inference .

Default: Any accelerator type



1639
1640
1641
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1639

def accelerator_types
  @accelerator_types
end

#allowed_instance_typesArray<String>? (readonly)

The instance types to apply your specified attributes against.

All other instance types are ignored, even if they match your specified attributes.

You can use strings with one or more wild cards, represented by an asterisk ( * ), to allow an instance type, size, or generation. The following are examples: m5.8xlarge , c5*.* , m5a.* , r* , *3* .

For example, if you specify c5* , Amazon EC2 Auto Scaling will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.* , Amazon EC2 Auto Scaling will allow all the M5a instance types, but not the M5n instance types.

If you specify AllowedInstanceTypes , you can't specify ExcludedInstanceTypes .

Default: All instance types



1654
1655
1656
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1654

def allowed_instance_types
  @allowed_instance_types
end

#bare_metalString? (readonly)

Indicates whether bare metal instance types are included, excluded, or required.

Default: excluded



1661
1662
1663
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1661

def bare_metal
  @bare_metal
end

#baseline_ebs_bandwidth_mbpsAWSCDK::IResolvable, ... (readonly)

The minimum and maximum baseline bandwidth performance for an instance type, in Mbps.

For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide .

Default: No minimum or maximum limits



1670
1671
1672
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1670

def baseline_ebs_bandwidth_mbps
  @baseline_ebs_bandwidth_mbps
end

#baseline_performance_factorsAWSCDK::IResolvable, ... (readonly)

The baseline performance factors for the instance requirements.



1675
1676
1677
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1675

def baseline_performance_factors
  @baseline_performance_factors
end

#burstable_performanceString? (readonly)

Indicates whether burstable performance instance types are included, excluded, or required.

For more information, see Burstable performance instances in the Amazon EC2 User Guide .

Default: excluded



1684
1685
1686
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1684

def burstable_performance
  @burstable_performance
end

#cpu_manufacturersArray<String>? (readonly)

Lists which specific CPU manufacturers to include.

  • For instance types with Intel CPUs, specify intel .
  • For instance types with AMD CPUs, specify amd .
  • For instance types with AWS CPUs, specify amazon-web-services .
  • For instance types with Apple CPUs, specify apple .

Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.

Default: Any manufacturer



1698
1699
1700
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1698

def cpu_manufacturers
  @cpu_manufacturers
end

#excluded_instance_typesArray<String>? (readonly)

The instance types to exclude.

You can use strings with one or more wild cards, represented by an asterisk ( * ), to exclude an instance family, type, size, or generation. The following are examples: m5.8xlarge , c5*.* , m5a.* , r* , *3* .

For example, if you specify c5* , you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.* , Amazon EC2 Auto Scaling will exclude all the M5a instance types, but not the M5n instance types.

If you specify ExcludedInstanceTypes , you can't specify AllowedInstanceTypes .

Default: No excluded instance types



1711
1712
1713
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1711

def excluded_instance_types
  @excluded_instance_types
end

#instance_generationsArray<String>? (readonly)

Indicates whether current or previous generation instance types are included.

  • For current generation instance types, specify current . The current generation includes EC2 instance types currently recommended for use. This typically includes the latest two to three generations in each instance family. For more information, see Instance types in the Amazon EC2 User Guide .
  • For previous generation instance types, specify previous .

Default: Any current or previous generation



1721
1722
1723
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1721

def instance_generations
  @instance_generations
end

#local_storageString? (readonly)

Indicates whether instance types with instance store volumes are included, excluded, or required.

For more information, see Amazon EC2 instance store in the Amazon EC2 User Guide .

Default: included



1730
1731
1732
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1730

def local_storage
  @local_storage
end

#local_storage_typesArray<String>? (readonly)

Indicates the type of local storage that is required.

  • For instance types with hard disk drive (HDD) storage, specify hdd .
  • For instance types with solid state drive (SSD) storage, specify ssd .

Default: Any local storage type



1740
1741
1742
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1740

def local_storage_types
  @local_storage_types
end

#max_spot_price_as_percentage_of_optimal_on_demand_priceNumeric? (readonly)

[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price.

The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.

The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

If you set DesiredCapacityType to vcpu or memory-mib , the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price.

Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999 .



1753
1754
1755
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1753

def max_spot_price_as_percentage_of_optimal_on_demand_price
  @max_spot_price_as_percentage_of_optimal_on_demand_price
end

#memory_gib_per_v_cpuAWSCDK::IResolvable, ... (readonly)

The minimum and maximum amount of memory per vCPU for an instance type, in GiB.

Default: No minimum or maximum limits



1760
1761
1762
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1760

def memory_gib_per_v_cpu
  @memory_gib_per_v_cpu
end

#network_bandwidth_gbpsAWSCDK::IResolvable, ... (readonly)

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

Default: No minimum or maximum limits



1767
1768
1769
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1767

def network_bandwidth_gbps
  @network_bandwidth_gbps
end

#network_interface_countAWSCDK::IResolvable, ... (readonly)

The minimum and maximum number of network interfaces for an instance type.

Default: No minimum or maximum limits



1774
1775
1776
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1774

def network_interface_count
  @network_interface_count
end

#on_demand_max_price_percentage_over_lowest_priceNumeric? (readonly)

[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price.

The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.

The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

To turn off price protection, specify a high value, such as 999999 .

If you set DesiredCapacityType to vcpu or memory-mib , the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per instance price.

Default: 20



1789
1790
1791
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1789

def on_demand_max_price_percentage_over_lowest_price
  @on_demand_max_price_percentage_over_lowest_price
end

#require_hibernate_supportBoolean, ... (readonly)

Indicates whether instance types must provide On-Demand Instance hibernation support.

Default: false



1796
1797
1798
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1796

def require_hibernate_support
  @require_hibernate_support
end

#spot_max_price_percentage_over_lowest_priceNumeric? (readonly)

[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price.

The identified Spot price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.

The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.

If you set DesiredCapacityType to vcpu or memory-mib , the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price.

Only one of SpotMaxPricePercentageOverLowestPrice or MaxSpotPriceAsPercentageOfOptimalOnDemandPrice can be specified. If you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as 999999 .



1809
1810
1811
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1809

def spot_max_price_percentage_over_lowest_price
  @spot_max_price_percentage_over_lowest_price
end

#total_local_storage_gbAWSCDK::IResolvable, ... (readonly)

The minimum and maximum total local storage size for an instance type, in GB.

Default: No minimum or maximum limits



1816
1817
1818
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1816

def total_local_storage_gb
  @total_local_storage_gb
end

Class Method Details

.jsii_propertiesObject



1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1818

def self.jsii_properties
  {
    :memory_mib => "memoryMiB",
    :v_cpu_count => "vCpuCount",
    :accelerator_count => "acceleratorCount",
    :accelerator_manufacturers => "acceleratorManufacturers",
    :accelerator_names => "acceleratorNames",
    :accelerator_total_memory_mib => "acceleratorTotalMemoryMiB",
    :accelerator_types => "acceleratorTypes",
    :allowed_instance_types => "allowedInstanceTypes",
    :bare_metal => "bareMetal",
    :baseline_ebs_bandwidth_mbps => "baselineEbsBandwidthMbps",
    :baseline_performance_factors => "baselinePerformanceFactors",
    :burstable_performance => "burstablePerformance",
    :cpu_manufacturers => "cpuManufacturers",
    :excluded_instance_types => "excludedInstanceTypes",
    :instance_generations => "instanceGenerations",
    :local_storage => "localStorage",
    :local_storage_types => "localStorageTypes",
    :max_spot_price_as_percentage_of_optimal_on_demand_price => "maxSpotPriceAsPercentageOfOptimalOnDemandPrice",
    :memory_gib_per_v_cpu => "memoryGiBPerVCpu",
    :network_bandwidth_gbps => "networkBandwidthGbps",
    :network_interface_count => "networkInterfaceCount",
    :on_demand_max_price_percentage_over_lowest_price => "onDemandMaxPricePercentageOverLowestPrice",
    :require_hibernate_support => "requireHibernateSupport",
    :spot_max_price_percentage_over_lowest_price => "spotMaxPricePercentageOverLowestPrice",
    :total_local_storage_gb => "totalLocalStorageGb",
  }
end

Instance Method Details

#to_jsiiObject



1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
# File 'autoscaling/cfn_auto_scaling_group.rb', line 1848

def to_jsii
  result = {}
  result.merge!({
    "memoryMiB" => @memory_mib,
    "vCpuCount" => @v_cpu_count,
    "acceleratorCount" => @accelerator_count,
    "acceleratorManufacturers" => @accelerator_manufacturers,
    "acceleratorNames" => @accelerator_names,
    "acceleratorTotalMemoryMiB" => @accelerator_total_memory_mib,
    "acceleratorTypes" => @accelerator_types,
    "allowedInstanceTypes" => @allowed_instance_types,
    "bareMetal" => @bare_metal,
    "baselineEbsBandwidthMbps" => @baseline_ebs_bandwidth_mbps,
    "baselinePerformanceFactors" => @baseline_performance_factors,
    "burstablePerformance" => @burstable_performance,
    "cpuManufacturers" => @cpu_manufacturers,
    "excludedInstanceTypes" => @excluded_instance_types,
    "instanceGenerations" => @instance_generations,
    "localStorage" => @local_storage,
    "localStorageTypes" => @local_storage_types,
    "maxSpotPriceAsPercentageOfOptimalOnDemandPrice" => @max_spot_price_as_percentage_of_optimal_on_demand_price,
    "memoryGiBPerVCpu" => @memory_gib_per_v_cpu,
    "networkBandwidthGbps" => @network_bandwidth_gbps,
    "networkInterfaceCount" => @network_interface_count,
    "onDemandMaxPricePercentageOverLowestPrice" => @on_demand_max_price_percentage_over_lowest_price,
    "requireHibernateSupport" => @require_hibernate_support,
    "spotMaxPricePercentageOverLowestPrice" => @spot_max_price_percentage_over_lowest_price,
    "totalLocalStorageGb" => @total_local_storage_gb,
  })
  result.compact
end