Skip to content

Commit f09a406

Browse files
author
AWS
committed
Auto Scaling Update: This release adds support for three new features: 1) Image ID overrides in mixed instances policy, 2) Replace Root Volume - a new strategy for Instance Refresh, and 3) Instance Lifecycle Policy for enhanced instance lifecycle management.
1 parent 3a752c6 commit f09a406

File tree

2 files changed

+83
-6
lines changed

2 files changed

+83
-6
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Auto Scaling",
4+
"contributor": "",
5+
"description": "This release adds support for three new features: 1) Image ID overrides in mixed instances policy, 2) Replace Root Volume - a new strategy for Instance Refresh, and 3) Instance Lifecycle Policy for enhanced instance lifecycle management."
6+
}

services/autoscaling/src/main/resources/codegen-resources/service-2.json

Lines changed: 77 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@
3939
},
4040
"errors":[
4141
{"shape":"ResourceContentionFault"},
42-
{"shape":"ServiceLinkedRoleFailure"}
42+
{"shape":"ServiceLinkedRoleFailure"},
43+
{"shape":"InstanceRefreshInProgressFault"}
4344
],
4445
"documentation":"<note> <p>This API operation is superseded by <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachTrafficSources.html\">AttachTrafficSources</a>, which can attach multiple traffic sources types. We recommend using <code>AttachTrafficSources</code> to simplify how you manage traffic sources. However, we continue to support <code>AttachLoadBalancerTargetGroups</code>. You can use both the original <code>AttachLoadBalancerTargetGroups</code> API operation and <code>AttachTrafficSources</code> on the same Auto Scaling group.</p> </note> <p>Attaches one or more target groups to the specified Auto Scaling group.</p> <p>This operation is used with the following load balancer types: </p> <ul> <li> <p>Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS. </p> </li> <li> <p>Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP. </p> </li> <li> <p>Gateway Load Balancer - Operates at the network layer (layer 3).</p> </li> </ul> <p>To describe the target groups for an Auto Scaling group, call the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeLoadBalancerTargetGroups.html\">DescribeLoadBalancerTargetGroups</a> API. To detach the target group from the Auto Scaling group, call the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancerTargetGroups.html\">DetachLoadBalancerTargetGroups</a> API.</p> <p>This operation is additive and does not detach existing target groups or Classic Load Balancers from the Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
4546
},
@@ -56,7 +57,8 @@
5657
},
5758
"errors":[
5859
{"shape":"ResourceContentionFault"},
59-
{"shape":"ServiceLinkedRoleFailure"}
60+
{"shape":"ServiceLinkedRoleFailure"},
61+
{"shape":"InstanceRefreshInProgressFault"}
6062
],
6163
"documentation":"<note> <p>This API operation is superseded by <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachTrafficSources.html\">https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachTrafficSources.html</a>, which can attach multiple traffic sources types. We recommend using <code>AttachTrafficSources</code> to simplify how you manage traffic sources. However, we continue to support <code>AttachLoadBalancers</code>. You can use both the original <code>AttachLoadBalancers</code> API operation and <code>AttachTrafficSources</code> on the same Auto Scaling group.</p> </note> <p>Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers.</p> <p>To describe the load balancers for an Auto Scaling group, call the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeLoadBalancers.html\">DescribeLoadBalancers</a> API. To detach a load balancer from the Auto Scaling group, call the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancers.html\">DetachLoadBalancers</a> API.</p> <p>This operation is additive and does not detach existing Classic Load Balancers or target groups from the Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
6264
},
@@ -73,7 +75,8 @@
7375
},
7476
"errors":[
7577
{"shape":"ResourceContentionFault"},
76-
{"shape":"ServiceLinkedRoleFailure"}
78+
{"shape":"ServiceLinkedRoleFailure"},
79+
{"shape":"InstanceRefreshInProgressFault"}
7780
],
7881
"documentation":"<p>Attaches one or more traffic sources to the specified Auto Scaling group.</p> <p>You can use any of the following as traffic sources for an Auto Scaling group:</p> <ul> <li> <p>Application Load Balancer</p> </li> <li> <p>Classic Load Balancer</p> </li> <li> <p>Gateway Load Balancer</p> </li> <li> <p>Network Load Balancer</p> </li> <li> <p>VPC Lattice</p> </li> </ul> <p>This operation is additive and does not detach existing traffic sources from the Auto Scaling group. </p> <p>After the operation completes, use the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeTrafficSources.html\">DescribeTrafficSources</a> API to return details about the state of the attachments between traffic sources and your Auto Scaling group. To detach a traffic source from the Auto Scaling group, call the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachTrafficSources.html\">DetachTrafficSources</a> API.</p>"
7982
},
@@ -887,7 +890,8 @@
887890
},
888891
"errors":[
889892
{"shape":"LimitExceededFault"},
890-
{"shape":"ResourceContentionFault"}
893+
{"shape":"ResourceContentionFault"},
894+
{"shape":"InstanceRefreshInProgressFault"}
891895
],
892896
"documentation":"<p>Creates or updates a warm pool for the specified Auto Scaling group. A warm pool is a pool of pre-initialized EC2 instances that sits alongside the Auto Scaling group. Whenever your application needs to scale out, the Auto Scaling group can draw on the warm pool to meet its new desired capacity.</p> <p>This operation must be called from the Region in which the Auto Scaling group was created.</p> <p>You can view the instances in the warm pool using the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeWarmPool.html\">DescribeWarmPool</a> API call. If you are no longer using a warm pool, you can delete it by calling the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeleteWarmPool.html\">DeleteWarmPool</a> API.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html\">Warm pools for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
893897
},
@@ -1551,6 +1555,10 @@
15511555
"CapacityReservationSpecification":{
15521556
"shape":"CapacityReservationSpecification",
15531557
"documentation":"<p> The capacity reservation specification. </p>"
1558+
},
1559+
"InstanceLifecyclePolicy":{
1560+
"shape":"InstanceLifecyclePolicy",
1561+
"documentation":"<p> The instance lifecycle policy applied to this Auto Scaling group. This policy determines instance behavior when an instance transitions through its lifecycle states. It provides additional control over graceful instance management processes. </p>"
15541562
}
15551563
},
15561564
"documentation":"<p>Describes an Auto Scaling group.</p>"
@@ -1654,6 +1662,10 @@
16541662
"shape":"LaunchTemplateSpecification",
16551663
"documentation":"<p>The launch template for the instance.</p>"
16561664
},
1665+
"ImageId":{
1666+
"shape":"XmlStringMaxLen255",
1667+
"documentation":"<p> The ID of the Amazon Machine Image (AMI) associated with the instance. This field shows the current AMI ID of the instance's root volume. It may differ from the original AMI used when the instance was first launched. </p> <p> This field appears for: </p> <ul> <li> <p>Instances with root volume replacements through Instance Refresh</p> </li> <li> <p>Instances launched with AMI overrides </p> </li> </ul> <p>This field won't appear for:</p> <ul> <li> <p>Existing instances launched from Launch Templates without overrides</p> </li> <li> <p>Existing instances that didn’t have their root volume replaced through Instance Refresh</p> </li> </ul>"
1668+
},
16571669
"ProtectedFromScaleIn":{
16581670
"shape":"InstanceProtected",
16591671
"documentation":"<p>Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling in.</p>"
@@ -2179,6 +2191,10 @@
21792191
"CapacityReservationSpecification":{
21802192
"shape":"CapacityReservationSpecification",
21812193
"documentation":"<p> The capacity reservation specification for the Auto Scaling group. </p>"
2194+
},
2195+
"InstanceLifecyclePolicy":{
2196+
"shape":"InstanceLifecyclePolicy",
2197+
"documentation":"<p> The instance lifecycle policy for the Auto Scaling group. This policy controls instance behavior when an instance transitions through its lifecycle states. Configure retention triggers to specify when instances should move to a <code>Retained</code> state for manual intervention instead of automatic termination. </p> <note> <p>Instances in a Retained state will continue to incur standard EC2 charges until terminated.</p> </note>"
21822198
}
21832199
}
21842200
},
@@ -3219,6 +3235,12 @@
32193235
},
32203236
"exception":true
32213237
},
3238+
"ImageId":{
3239+
"type":"string",
3240+
"max":21,
3241+
"min":5,
3242+
"pattern":"^ami-[a-z0-9]{1,17}$"
3243+
},
32223244
"ImpairedZoneHealthCheckBehavior":{
32233245
"type":"string",
32243246
"enum":[
@@ -3266,6 +3288,10 @@
32663288
"shape":"LaunchTemplateSpecification",
32673289
"documentation":"<p>The launch template for the instance.</p>"
32683290
},
3291+
"ImageId":{
3292+
"shape":"XmlStringMaxLen255",
3293+
"documentation":"<p> The ID of the Amazon Machine Image (AMI) used for the instance's current root volume. This value reflects the most recent AMI applied to the instance, including updates made through root volume replacement operations. </p> <p> This field appears for: </p> <ul> <li> <p>Instances with root volume replacements through Instance Refresh</p> </li> <li> <p>Instances launched with AMI overrides </p> </li> </ul> <p>This field won't appear for:</p> <ul> <li> <p>Existing instances launched from Launch Templates without overrides</p> </li> <li> <p>Existing instances that didn’t have their root volume replaced through Instance Refresh</p> </li> </ul>"
3294+
},
32693295
"ProtectedFromScaleIn":{
32703296
"shape":"InstanceProtected",
32713297
"documentation":"<p>Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling in.</p>"
@@ -3326,6 +3352,16 @@
33263352
"type":"list",
33273353
"member":{"shape":"XmlStringMaxLen19"}
33283354
},
3355+
"InstanceLifecyclePolicy":{
3356+
"type":"structure",
3357+
"members":{
3358+
"RetentionTriggers":{
3359+
"shape":"RetentionTriggers",
3360+
"documentation":"<p> Specifies the conditions that trigger instance retention behavior. These triggers determine when instances should move to a Retained state instead of being terminated. This allows you to maintain control over instance management when lifecycle operations fail. </p>"
3361+
}
3362+
},
3363+
"documentation":"<p> Defines the lifecycle policy for instances in an Auto Scaling group. This policy controls instance behavior when lifecycles transition and operations fail. Use lifecycle policies to ensure graceful shutdown for stateful workloads or applications requiring extended draining periods. </p>"
3364+
},
33293365
"InstanceMaintenancePolicy":{
33303366
"type":"structure",
33313367
"members":{
@@ -3438,6 +3474,10 @@
34383474
"RollbackDetails":{
34393475
"shape":"RollbackDetails",
34403476
"documentation":"<p>The rollback details.</p>"
3477+
},
3478+
"Strategy":{
3479+
"shape":"RefreshStrategy",
3480+
"documentation":"<p> The strategy to use for the instance refresh. This determines how instances in the Auto Scaling group are updated. Default is Rolling. </p> <ul> <li> <p> <code>Rolling</code> – Terminates instances and launches replacements in batches</p> </li> <li> <p> <code>ReplaceRootVolume</code> – Updates instances by replacing only the root volume without terminating the instance</p> </li> </ul>"
34413481
}
34423482
},
34433483
"documentation":"<p>Describes an instance refresh for an Auto Scaling group. </p>"
@@ -4004,6 +4044,10 @@
40044044
"InstanceRequirements":{
40054045
"shape":"InstanceRequirements",
40064046
"documentation":"<p>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.</p> <p>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. </p> <note> <p>If you specify <code>InstanceRequirements</code>, you can't specify <code>InstanceType</code>.</p> </note>"
4047+
},
4048+
"ImageId":{
4049+
"shape":"ImageId",
4050+
"documentation":"<p> The ID of the Amazon Machine Image (AMI) to use for instances launched with this override. When using Instance Refresh with <code>ReplaceRootVolume</code> strategy, this specifies the AMI for root volume replacement operations. </p> <p> For <code>ReplaceRootVolume</code> operations: </p> <ul> <li> <p>All overrides in the <code>MixedInstancesPolicy</code> must specify an ImageId</p> </li> <li> <p>The AMI must contain only a single root volume</p> </li> <li> <p>Root volume replacement doesn't support multi-volume AMIs</p> </li> </ul>"
40074051
}
40084052
},
40094053
"documentation":"<p>Use this structure to let Amazon EC2 Auto Scaling do the following when the Auto Scaling group has a mixed instances policy:</p> <ul> <li> <p>Override the instance type that is specified in the launch template.</p> </li> <li> <p>Use multiple instance types.</p> </li> </ul> <p>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.</p> <p>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.</p>"
@@ -5152,7 +5196,10 @@
51525196
},
51535197
"RefreshStrategy":{
51545198
"type":"string",
5155-
"enum":["Rolling"]
5199+
"enum":[
5200+
"Rolling",
5201+
"ReplaceRootVolume"
5202+
]
51565203
},
51575204
"RequestedCapacity":{
51585205
"type":"integer",
@@ -5196,6 +5243,23 @@
51965243
"min":1,
51975244
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*"
51985245
},
5246+
"RetentionAction":{
5247+
"type":"string",
5248+
"enum":[
5249+
"retain",
5250+
"terminate"
5251+
]
5252+
},
5253+
"RetentionTriggers":{
5254+
"type":"structure",
5255+
"members":{
5256+
"TerminateHookAbandon":{
5257+
"shape":"RetentionAction",
5258+
"documentation":"<p> Specifies the action when a termination lifecycle hook is abandoned due to failure, timeout, or explicit abandonment (calling CompleteLifecycleAction). </p> <p> Set to <code>Retain</code> to move instances to a <code>Retained</code> state. Set to <code>Terminate</code> for default termination behavior. </p> <p> Retained instances don't count toward desired capacity and remain until you call <code>TerminateInstanceInAutoScalingGroup</code>. </p>"
5259+
}
5260+
},
5261+
"documentation":"<p> Defines the specific triggers that cause instances to be retained in a Retained state rather than terminated. Each trigger corresponds to a different failure scenario during the instance lifecycle. This allows fine-grained control over when to preserve instances for manual intervention. </p>"
5262+
},
51995263
"RetryStrategy":{
52005264
"type":"string",
52015265
"enum":[
@@ -5289,7 +5353,10 @@
52895353
"Successful",
52905354
"Failed",
52915355
"Cancelled",
5292-
"WaitingForConnectionDraining"
5356+
"WaitingForConnectionDraining",
5357+
"WaitingForInPlaceUpdateToStart",
5358+
"WaitingForInPlaceUpdateToFinalize",
5359+
"InPlaceUpdateInProgress"
52935360
]
52945361
},
52955362
"ScalingPolicies":{
@@ -6040,6 +6107,10 @@
60406107
"CapacityReservationSpecification":{
60416108
"shape":"CapacityReservationSpecification",
60426109
"documentation":"<p> The capacity reservation specification for the Auto Scaling group. </p>"
6110+
},
6111+
"InstanceLifecyclePolicy":{
6112+
"shape":"InstanceLifecyclePolicy",
6113+
"documentation":"<p> The instance lifecycle policy for the Auto Scaling group. Use this to add, modify, or remove lifecycle policies that control instance behavior when an instance transitions through its lifecycle states. Configure retention triggers to specify when to preserve instances for manual intervention. </p>"
60436114
}
60446115
}
60456116
},

0 commit comments

Comments
 (0)