Show / Hide Table of Contents

Interface CfnAutoScalingGroup.IInstanceRequirementsProperty

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

Namespace: Amazon.CDK.AWS.AutoScaling
Assembly: Amazon.CDK.AWS.AutoScaling.dll
Syntax (csharp)
public interface IInstanceRequirementsProperty
Syntax (vb)
Public Interface IInstanceRequirementsProperty
Remarks

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:

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

    For an example template, see Auto scaling template snippets .

    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.

    Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html

    ExampleMetadata: fixture=_generated

    Examples
    // The code below shows an example of how to instantiate this type.
    // The values are placeholders you should change.
    using Amazon.CDK.AWS.AutoScaling;
    
    var instanceRequirementsProperty = new InstanceRequirementsProperty {
        AcceleratorCount = new AcceleratorCountRequestProperty {
            Max = 123,
            Min = 123
        },
        AcceleratorManufacturers = new [] { "acceleratorManufacturers" },
        AcceleratorNames = new [] { "acceleratorNames" },
        AcceleratorTotalMemoryMiB = new AcceleratorTotalMemoryMiBRequestProperty {
            Max = 123,
            Min = 123
        },
        AcceleratorTypes = new [] { "acceleratorTypes" },
        AllowedInstanceTypes = new [] { "allowedInstanceTypes" },
        BareMetal = "bareMetal",
        BaselineEbsBandwidthMbps = new BaselineEbsBandwidthMbpsRequestProperty {
            Max = 123,
            Min = 123
        },
        BurstablePerformance = "burstablePerformance",
        CpuManufacturers = new [] { "cpuManufacturers" },
        ExcludedInstanceTypes = new [] { "excludedInstanceTypes" },
        InstanceGenerations = new [] { "instanceGenerations" },
        LocalStorage = "localStorage",
        LocalStorageTypes = new [] { "localStorageTypes" },
        MemoryGiBPerVCpu = new MemoryGiBPerVCpuRequestProperty {
            Max = 123,
            Min = 123
        },
        MemoryMiB = new MemoryMiBRequestProperty {
            Max = 123,
            Min = 123
        },
        NetworkBandwidthGbps = new NetworkBandwidthGbpsRequestProperty {
            Max = 123,
            Min = 123
        },
        NetworkInterfaceCount = new NetworkInterfaceCountRequestProperty {
            Max = 123,
            Min = 123
        },
        OnDemandMaxPricePercentageOverLowestPrice = 123,
        RequireHibernateSupport = false,
        SpotMaxPricePercentageOverLowestPrice = 123,
        TotalLocalStorageGb = new TotalLocalStorageGBRequestProperty {
            Max = 123,
            Min = 123
        },
        VCpuCount = new VCpuCountRequestProperty {
            Max = 123,
            Min = 123
        }
    };

    Synopsis

    Properties

    AcceleratorCount

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

    AcceleratorManufacturers

    Indicates whether instance types must have accelerators by specific manufacturers.

    AcceleratorNames

    Lists the accelerators that must be on an instance type.

    AcceleratorTotalMemoryMiB

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

    AcceleratorTypes

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

    AllowedInstanceTypes

    The instance types to apply your specified attributes against.

    BareMetal

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

    BaselineEbsBandwidthMbps

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

    BurstablePerformance

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

    CpuManufacturers

    Lists which specific CPU manufacturers to include.

    ExcludedInstanceTypes

    The instance types to exclude.

    InstanceGenerations

    Indicates whether current or previous generation instance types are included.

    LocalStorage

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

    LocalStorageTypes

    Indicates the type of local storage that is required.

    MemoryGiBPerVCpu

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

    MemoryMiB

    The minimum and maximum instance memory size for an instance type, in MiB.

    NetworkBandwidthGbps

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

    NetworkInterfaceCount

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

    OnDemandMaxPricePercentageOverLowestPrice

    The price protection threshold for On-Demand Instances.

    RequireHibernateSupport

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

    SpotMaxPricePercentageOverLowestPrice

    The price protection threshold for Spot Instances.

    TotalLocalStorageGb

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

    VCpuCount

    The minimum and maximum number of vCPUs for an instance type.

    Properties

    AcceleratorCount

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

    virtual object AcceleratorCount { get; }
    Property Value

    System.Object

    Remarks

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

    Default: No minimum or maximum limits

    Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratorcount

    AcceleratorManufacturers

    Indicates whether instance types must have accelerators by specific manufacturers.

    virtual string[] AcceleratorManufacturers { get; }
    Property Value

    System.String[]

    Remarks

      Default: Any manufacturer

      Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratormanufacturers

      AcceleratorNames

      Lists the accelerators that must be on an instance type.

      virtual string[] AcceleratorNames { get; }
      Property Value

      System.String[]

      Remarks

        Default: Any accelerator

        Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratornames

        AcceleratorTotalMemoryMiB

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

        virtual object AcceleratorTotalMemoryMiB { get; }
        Property Value

        System.Object

        Remarks

        Default: No minimum or maximum limits

        Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratortotalmemorymib

        AcceleratorTypes

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

        virtual string[] AcceleratorTypes { get; }
        Property Value

        System.String[]

        Remarks

          Default: Any accelerator type

          Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratortypes

          AllowedInstanceTypes

          The instance types to apply your specified attributes against.

          virtual string[] AllowedInstanceTypes { get; }
          Property Value

          System.String[]

          Remarks

          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

          Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-allowedinstancetypes

          BareMetal

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

          virtual string BareMetal { get; }
          Property Value

          System.String

          Remarks

          Default: excluded

          Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-baremetal

          BaselineEbsBandwidthMbps

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

          virtual object BaselineEbsBandwidthMbps { get; }
          Property Value

          System.Object

          Remarks

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

          Default: No minimum or maximum limits

          Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-baselineebsbandwidthmbps

          BurstablePerformance

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

          virtual string BurstablePerformance { get; }
          Property Value

          System.String

          Remarks

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

          Default: excluded

          Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-burstableperformance

          CpuManufacturers

          Lists which specific CPU manufacturers to include.

          virtual string[] CpuManufacturers { get; }
          Property Value

          System.String[]

          Remarks
            Don&apos;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

            Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-cpumanufacturers

            ExcludedInstanceTypes

            The instance types to exclude.

            virtual string[] ExcludedInstanceTypes { get; }
            Property Value

            System.String[]

            Remarks

            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

            Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-excludedinstancetypes

            InstanceGenerations

            Indicates whether current or previous generation instance types are included.

            virtual string[] InstanceGenerations { get; }
            Property Value

            System.String[]

            Remarks

              Default: Any current or previous generation

              Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-instancegenerations

              LocalStorage

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

              virtual string LocalStorage { get; }
              Property Value

              System.String

              Remarks

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

              Default: included

              Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-localstorage

              LocalStorageTypes

              Indicates the type of local storage that is required.

              virtual string[] LocalStorageTypes { get; }
              Property Value

              System.String[]

              Remarks

                Default: Any local storage type

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-localstoragetypes

                MemoryGiBPerVCpu

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

                virtual object MemoryGiBPerVCpu { get; }
                Property Value

                System.Object

                Remarks

                Default: No minimum or maximum limits

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-memorygibpervcpu

                MemoryMiB

                The minimum and maximum instance memory size for an instance type, in MiB.

                virtual object MemoryMiB { get; }
                Property Value

                System.Object

                Remarks

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-memorymib

                NetworkBandwidthGbps

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

                virtual object NetworkBandwidthGbps { get; }
                Property Value

                System.Object

                Remarks

                Default: No minimum or maximum limits

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-networkbandwidthgbps

                NetworkInterfaceCount

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

                virtual object NetworkInterfaceCount { get; }
                Property Value

                System.Object

                Remarks

                Default: No minimum or maximum limits

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-networkinterfacecount

                OnDemandMaxPricePercentageOverLowestPrice

                The price protection threshold for On-Demand Instances.

                virtual Nullable<double> OnDemandMaxPricePercentageOverLowestPrice { get; }
                Property Value

                System.Nullable<System.Double>

                Remarks

                This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your 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

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-ondemandmaxpricepercentageoverlowestprice

                RequireHibernateSupport

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

                virtual object RequireHibernateSupport { get; }
                Property Value

                System.Object

                Remarks

                Default: false

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-requirehibernatesupport

                SpotMaxPricePercentageOverLowestPrice

                The price protection threshold for Spot Instances.

                virtual Nullable<double> SpotMaxPricePercentageOverLowestPrice { get; }
                Property Value

                System.Nullable<System.Double>

                Remarks

                This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your 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: 100

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-spotmaxpricepercentageoverlowestprice

                TotalLocalStorageGb

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

                virtual object TotalLocalStorageGb { get; }
                Property Value

                System.Object

                Remarks

                Default: No minimum or maximum limits

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-totallocalstoragegb

                VCpuCount

                The minimum and maximum number of vCPUs for an instance type.

                virtual object VCpuCount { get; }
                Property Value

                System.Object

                Remarks

                Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-vcpucount

                Back to top Generated by DocFX