Class CfnWarmPool

java.lang.Object
software.amazon.jsii.JsiiObject
All Implemented Interfaces:
IConstruct, IDependable, IInspectable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct

@Generated(value="jsii-pacmak/1.84.0 (build 5404dcf)", date="2023-06-19T16:30:45.351Z") @Stability(Stable) public class CfnWarmPool extends CfnResource implements IInspectable
A CloudFormation AWS::AutoScaling::WarmPool.

The AWS::AutoScaling::WarmPool resource creates 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.

When you create a warm pool, you can define a minimum size. When your Auto Scaling group scales out and the size of the warm pool shrinks, Amazon EC2 Auto Scaling launches new instances into the warm pool to maintain its minimum size.

For more information, see Warm pools for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide .

CloudFormation supports the UpdatePolicy attribute for Auto Scaling groups. During an update, if UpdatePolicy is set to AutoScalingRollingUpdate , CloudFormation replaces InService instances only. Instances in the warm pool are not replaced. The difference in which instances are replaced can potentially result in different instance configurations after the stack update completes. If UpdatePolicy is set to AutoScalingReplacingUpdate , you do not encounter this issue because CloudFormation replaces both the Auto Scaling group and the warm pool.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.autoscaling.*;
 CfnWarmPool cfnWarmPool = CfnWarmPool.Builder.create(this, "MyCfnWarmPool")
         .autoScalingGroupName("autoScalingGroupName")
         // the properties below are optional
         .instanceReusePolicy(InstanceReusePolicyProperty.builder()
                 .reuseOnScaleIn(false)
                 .build())
         .maxGroupPreparedCapacity(123)
         .minSize(123)
         .poolState("poolState")
         .build();
 
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnWarmPool

      protected CfnWarmPool(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnWarmPool

      protected CfnWarmPool(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnWarmPool

      @Stability(Stable) public CfnWarmPool(@NotNull Construct scope, @NotNull String id, @NotNull CfnWarmPoolProps props)
      Create a new AWS::AutoScaling::WarmPool.

      Parameters:
      scope -
      • scope in which this resource is defined.
      This parameter is required.
      id -
      • scoped id of the resource.
      This parameter is required.
      props -
      • resource properties.
      This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector -
      • tree inspector to collect and process attributes.
      This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getAutoScalingGroupName

      @Stability(Stable) @NotNull public String getAutoScalingGroupName()
      The name of the Auto Scaling group.
    • setAutoScalingGroupName

      @Stability(Stable) public void setAutoScalingGroupName(@NotNull String value)
      The name of the Auto Scaling group.
    • getInstanceReusePolicy

      @Stability(Stable) @Nullable public Object getInstanceReusePolicy()
      Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

      The default is to terminate instances in the Auto Scaling group when the group scales in.

    • setInstanceReusePolicy

      @Stability(Stable) public void setInstanceReusePolicy(@Nullable IResolvable value)
      Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

      The default is to terminate instances in the Auto Scaling group when the group scales in.

    • setInstanceReusePolicy

      @Stability(Stable) public void setInstanceReusePolicy(@Nullable CfnWarmPool.InstanceReusePolicyProperty value)
      Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

      The default is to terminate instances in the Auto Scaling group when the group scales in.

    • getMaxGroupPreparedCapacity

      @Stability(Stable) @Nullable public Number getMaxGroupPreparedCapacity()
      Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.

      This is an optional property. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity.

      If a value for MaxGroupPreparedCapacity is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity. If you specify a value for MaxGroupPreparedCapacity , Amazon EC2 Auto Scaling uses the difference between the MaxGroupPreparedCapacity and the desired capacity instead.

      The size of the warm pool is dynamic. Only when MaxGroupPreparedCapacity and MinSize are set to the same value does the warm pool have an absolute size.

      If the desired capacity of the Auto Scaling group is higher than the MaxGroupPreparedCapacity , the capacity of the warm pool is 0, unless you specify a value for MinSize . To remove a value that you previously set, include the property but specify -1 for the value.

    • setMaxGroupPreparedCapacity

      @Stability(Stable) public void setMaxGroupPreparedCapacity(@Nullable Number value)
      Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.

      This is an optional property. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity.

      If a value for MaxGroupPreparedCapacity is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity. If you specify a value for MaxGroupPreparedCapacity , Amazon EC2 Auto Scaling uses the difference between the MaxGroupPreparedCapacity and the desired capacity instead.

      The size of the warm pool is dynamic. Only when MaxGroupPreparedCapacity and MinSize are set to the same value does the warm pool have an absolute size.

      If the desired capacity of the Auto Scaling group is higher than the MaxGroupPreparedCapacity , the capacity of the warm pool is 0, unless you specify a value for MinSize . To remove a value that you previously set, include the property but specify -1 for the value.

    • getMinSize

      @Stability(Stable) @Nullable public Number getMinSize()
      Specifies the minimum number of instances to maintain in the warm pool.

      This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.

    • setMinSize

      @Stability(Stable) public void setMinSize(@Nullable Number value)
      Specifies the minimum number of instances to maintain in the warm pool.

      This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.

    • getPoolState

      @Stability(Stable) @Nullable public String getPoolState()
      Sets the instance state to transition to after the lifecycle actions are complete.

      Default is Stopped .

    • setPoolState

      @Stability(Stable) public void setPoolState(@Nullable String value)
      Sets the instance state to transition to after the lifecycle actions are complete.

      Default is Stopped .