Class: AWSCDK::Autoscaling::CfnAutoScalingGroup::LaunchTemplateOverridesProperty
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::Autoscaling::CfnAutoScalingGroup::LaunchTemplateOverridesProperty
- Defined in:
- autoscaling/cfn_auto_scaling_group.rb
Overview
Use this structure to let Amazon EC2 Auto Scaling do the following when the Auto Scaling group has a mixed instances policy: - Override the instance type that is specified in the launch template.
- Use multiple instance types.
Specify the instance types that you want, or define your instance requirements instead and let Amazon EC2 Auto Scaling provision the available instance types that meet your requirements. This can provide Amazon EC2 Auto Scaling with a larger selection of instance types to choose from when fulfilling Spot and On-Demand capacities. You can view which instance types are matched before you apply the instance requirements to your Auto Scaling group.
After you define your instance requirements, you don't have to keep updating these settings to get new EC2 instance types automatically. Amazon EC2 Auto Scaling uses the instance requirements of the Auto Scaling group to determine whether a new EC2 instance type can be used.
LaunchTemplateOverrides is a property of the AWS::AutoScaling::AutoScalingGroup LaunchTemplate property type.
Instance Attribute Summary collapse
-
#image_id ⇒ String?
readonly
The ID of the Amazon Machine Image (AMI) to use for instances launched with this override.
-
#instance_requirements ⇒ AWSCDK::IResolvable, ...
readonly
The instance requirements.
-
#instance_type ⇒ String?
readonly
The instance type, such as
m3.xlarge. -
#launch_template_specification ⇒ AWSCDK::IResolvable, ...
readonly
Provides a launch template for the specified instance type or set of instance requirements.
-
#weighted_capacity ⇒ String?
readonly
If you provide a list of instance types to use, you can specify the number of capacity units provided by each instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(image_id: nil, instance_requirements: nil, instance_type: nil, launch_template_specification: nil, weighted_capacity: nil) ⇒ LaunchTemplateOverridesProperty
constructor
A new instance of LaunchTemplateOverridesProperty.
- #to_jsii ⇒ Object
Constructor Details
#initialize(image_id: nil, instance_requirements: nil, instance_type: nil, launch_template_specification: nil, weighted_capacity: nil) ⇒ LaunchTemplateOverridesProperty
Returns a new instance of LaunchTemplateOverridesProperty.
2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 2027 def initialize(image_id: nil, instance_requirements: nil, instance_type: nil, launch_template_specification: nil, weighted_capacity: nil) @image_id = image_id Jsii::Type.check_type(@image_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "imageId") unless @image_id.nil? @instance_requirements = instance_requirements.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::InstanceRequirementsProperty.new(**instance_requirements.transform_keys(&:to_sym)) : instance_requirements Jsii::Type.check_type(@instance_requirements, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLkluc3RhbmNlUmVxdWlyZW1lbnRzUHJvcGVydHkifV19fQ==")), "instanceRequirements") unless @instance_requirements.nil? @instance_type = instance_type Jsii::Type.check_type(@instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "instanceType") unless @instance_type.nil? @launch_template_specification = launch_template_specification.is_a?(Hash) ? ::AWSCDK::Autoscaling::CfnAutoScalingGroup::LaunchTemplateSpecificationProperty.new(**launch_template_specification.transform_keys(&:to_sym)) : launch_template_specification Jsii::Type.check_type(@launch_template_specification, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5DZm5BdXRvU2NhbGluZ0dyb3VwLkxhdW5jaFRlbXBsYXRlU3BlY2lmaWNhdGlvblByb3BlcnR5In1dfX0=")), "launchTemplateSpecification") unless @launch_template_specification.nil? @weighted_capacity = weighted_capacity Jsii::Type.check_type(@weighted_capacity, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "weightedCapacity") unless @weighted_capacity.nil? end |
Instance Attribute Details
#image_id ⇒ String? (readonly)
The ID of the Amazon Machine Image (AMI) to use for instances launched with this override.
When using Instance Refresh with ReplaceRootVolume strategy, this specifies the AMI for root volume replacement operations.
For ReplaceRootVolume operations:
- All overrides in the
MixedInstancesPolicymust specify an ImageId - The AMI must contain only a single root volume
- Root volume replacement doesn't support multi-volume AMIs
2052 2053 2054 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 2052 def image_id @image_id end |
#instance_requirements ⇒ AWSCDK::IResolvable, ... (readonly)
The instance requirements.
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.
You can specify up to four separate sets of instance requirements per Auto Scaling group. This is useful for provisioning instances from different Amazon Machine Images (AMIs) in the same Auto Scaling group. To do this, create the AMIs and create a new launch template for each AMI. Then, create a compatible set of instance requirements for each launch template.
If you specify
InstanceRequirements, you can't specifyInstanceType.
2063 2064 2065 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 2063 def instance_requirements @instance_requirements end |
#instance_type ⇒ String? (readonly)
The instance type, such as m3.xlarge . You must specify an instance type that is supported in your requested Region and Availability Zones. For more information, see Instance types in the Amazon EC2 User Guide .
You can specify up to 40 instance types per Auto Scaling group.
2070 2071 2072 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 2070 def instance_type @instance_type end |
#launch_template_specification ⇒ AWSCDK::IResolvable, ... (readonly)
Provides a launch template for the specified instance type or set of instance requirements.
For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's specified in the LaunchTemplate definition. For more information, see Specifying a different launch template for an instance type in the Amazon EC2 Auto Scaling User Guide .
You can specify up to 20 launch templates per Auto Scaling group. The launch templates specified in the overrides and in the LaunchTemplate definition count towards this limit.
2079 2080 2081 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 2079 def launch_template_specification @launch_template_specification end |
#weighted_capacity ⇒ String? (readonly)
If you provide a list of instance types to use, you can specify the number of capacity units provided by each instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic.
When a Spot or On-Demand Instance is launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only launch an instance with a WeightedCapacity of five units, the instance is launched, and the desired capacity is exceeded by three units. For more information, see Configure instance weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide . Value must be in the range of 1-999.
If you specify a value for WeightedCapacity for one instance type, you must specify a value for WeightedCapacity for all of them.
Every Auto Scaling group has three size parameters (
DesiredCapacity,MaxSize, andMinSize). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.
2090 2091 2092 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 2090 def weighted_capacity @weighted_capacity end |
Class Method Details
.jsii_properties ⇒ Object
2092 2093 2094 2095 2096 2097 2098 2099 2100 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 2092 def self.jsii_properties { :image_id => "imageId", :instance_requirements => "instanceRequirements", :instance_type => "instanceType", :launch_template_specification => "launchTemplateSpecification", :weighted_capacity => "weightedCapacity", } end |
Instance Method Details
#to_jsii ⇒ Object
2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 |
# File 'autoscaling/cfn_auto_scaling_group.rb', line 2102 def to_jsii result = {} result.merge!({ "imageId" => @image_id, "instanceRequirements" => @instance_requirements, "instanceType" => @instance_type, "launchTemplateSpecification" => @launch_template_specification, "weightedCapacity" => @weighted_capacity, }) result.compact end |