

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::EC2::SpotFleet
<a name="aws-resource-ec2-spotfleet"></a>

Specifies a Spot Fleet request.

The Spot Fleet request specifies the total target capacity and the On-Demand target capacity. Amazon EC2 calculates the difference between the total capacity and On-Demand capacity, and launches the difference as Spot capacity.

You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot Fleet requests Spot Instances in the Spot Instance pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet.

You can specify tags for the Spot Fleet request and instances launched by the fleet. You cannot tag other resource types in a Spot Fleet request because only the `spot-fleet-request` and `instance` resource types are supported.

For more information, see [Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html) in the *Amazon EC2 User Guide*.

## Syntax
<a name="aws-resource-ec2-spotfleet-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-ec2-spotfleet-syntax.json"></a>

```
{
  "Type" : "AWS::EC2::SpotFleet",
  "Properties" : {
      "[SpotFleetRequestConfigData](#cfn-ec2-spotfleet-spotfleetrequestconfigdata)" : SpotFleetRequestConfigData,
      "[Tags](#cfn-ec2-spotfleet-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-ec2-spotfleet-syntax.yaml"></a>

```
Type: AWS::EC2::SpotFleet
Properties:
  [SpotFleetRequestConfigData](#cfn-ec2-spotfleet-spotfleetrequestconfigdata): 
    SpotFleetRequestConfigData
  [Tags](#cfn-ec2-spotfleet-tags): 
    - Tag
```

## Properties
<a name="aws-resource-ec2-spotfleet-properties"></a>

`SpotFleetRequestConfigData`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata"></a>
Describes the configuration of a Spot Fleet request.  
*Required*: Yes  
*Type*: [SpotFleetRequestConfigData](aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-ec2-spotfleet-tags"></a>
The tags for a Spot Fleet resource.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ec2-spotfleet-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-ec2-spotfleet-return-values"></a>

### Ref
<a name="aws-resource-ec2-spotfleet-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the ID of the Spot Fleet.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-ec2-spotfleet-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-ec2-spotfleet-return-values-fn--getatt-fn--getatt"></a>

`Id`  <a name="Id-fn::getatt"></a>
The ID of the Spot Fleet.

## Examples
<a name="aws-resource-ec2-spotfleet--examples"></a>



**Topics**
+ [Create a Spot Fleet using a launch template](#aws-resource-ec2-spotfleet--examples--Create_a_Spot_Fleet_using_a_launch_template)
+ [Create a Spot Fleet using a launch specification](#aws-resource-ec2-spotfleet--examples--Create_a_Spot_Fleet_using_a_launch_specification)

### Create a Spot Fleet using a launch template
<a name="aws-resource-ec2-spotfleet--examples--Create_a_Spot_Fleet_using_a_launch_template"></a>

The following example specifies a Spot Fleet with a target capacity of 2 instances and a launch template that provides the instance configuration.

#### JSON
<a name="aws-resource-ec2-spotfleet--examples--Create_a_Spot_Fleet_using_a_launch_template--json"></a>

```
{
    "Resources": {
        "mySpotFleet": {
            "Type": "AWS::EC2::SpotFleet",
            "Properties": {
                "SpotFleetRequestConfigData": {
                    "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
                    "TargetCapacity": 2,
                    "LaunchTemplateConfigs": [
                        {
                            "LaunchTemplateSpecification": {
                                "LaunchTemplateId": {
                                    "Ref": "myLaunchTemplate"
                                },
                                "Version": {
                                    "Fn::GetAtt": [
                                        "myLaunchTemplate",
                                        "DefaultVersionNumber"
                                    ]
                                }
                            }
                        }
                    ]
                }
            }
        },
        "myLaunchTemplate": {
            "Type": "AWS::EC2::LaunchTemplate",
            "Properties": {
                "LaunchTemplateData": {
                    "ImageId": "ami-0a70b9d193ae8a799",
                    "InstanceType": "t2.micro",
                    "SecurityGroupIds": [
                        "sg-12a4c434"
                    ],
                    "TagSpecifications": [
                        {
                            "ResourceType": "instance",
                            "Tags": [
                                {
                                    "Key": "department",
                                    "Value": "dev"
                                }
                            ]
                        }
                    ]
                }
            }
        }
    }
}
```

#### YAML
<a name="aws-resource-ec2-spotfleet--examples--Create_a_Spot_Fleet_using_a_launch_template--yaml"></a>

```
Resources:
   mySpotFleet:
     Type: 'AWS::EC2::SpotFleet'
     Properties: 
       SpotFleetRequestConfigData: 
         IamFleetRole: arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role
         TargetCapacity: 2
         LaunchTemplateConfigs:
           - LaunchTemplateSpecification:
               LaunchTemplateId: !Ref myLaunchTemplate
               Version: !GetAtt myLaunchTemplate.DefaultVersionNumber
   myLaunchTemplate:
     Type: 'AWS::EC2::LaunchTemplate'
     Properties:
       LaunchTemplateData:
          ImageId: ami-0a70b9d193ae8a799
          InstanceType: t2.micro
          SecurityGroupIds:
            - sg-12a4c434
          TagSpecifications:
            - ResourceType: instance
              Tags:
              - Key: department
                Value: dev
```

### Create a Spot Fleet using a launch specification
<a name="aws-resource-ec2-spotfleet--examples--Create_a_Spot_Fleet_using_a_launch_specification"></a>

The following example specifies a Spot Fleet with two launch specifications. The weighted capacities are the same, so Amazon EC2 launches the same number of instances for each specification. For more information, see [How Spot Fleet Works](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html) in the *Amazon EC2 User Guide*.

#### JSON
<a name="aws-resource-ec2-spotfleet--examples--Create_a_Spot_Fleet_using_a_launch_specification--json"></a>

```
"SpotFleet": {
  "Type": "AWS::EC2::SpotFleet",
  "Properties": {
    "SpotFleetRequestConfigData": {
     "IamFleetRole": { "Fn::GetAtt": [ "IAMFleetRole", "Arn"] },
     "SpotPrice": "1000",
     "TargetCapacity": { "Ref": "TargetCapacity" },
     "LaunchSpecifications": [
     {
         "EbsOptimized": "false",
         "InstanceType": { "Ref": "InstanceType" },
         "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" },
                      { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] }
                     ]},
          "SubnetId": { "Ref": "Subnet1" },
          "WeightedCapacity": "8"
     },
     {
         "EbsOptimized": "true",
         "InstanceType": { "Ref": "InstanceType" },
         "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" },
                      { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] }
                     ]},
          "Monitoring": { "Enabled": "true" },
          "SecurityGroups": [ { "GroupId": { "Fn::GetAtt": [ "SG0", "GroupId" ] } } ],
          "SubnetId": { "Ref": "Subnet0" },
          "IamInstanceProfile": { "Arn": { "Fn::GetAtt": [ "RootInstanceProfile", "Arn" ] } },
          "WeightedCapacity": "8"
         }
         ]
     }
   }
}
```

#### YAML
<a name="aws-resource-ec2-spotfleet--examples--Create_a_Spot_Fleet_using_a_launch_specification--yaml"></a>

```
SpotFleet:
  Type: AWS::EC2::SpotFleet
  Properties:
    SpotFleetRequestConfigData:
      IamFleetRole: !GetAtt [IAMFleetRole, Arn]
      SpotPrice: '1000'
      TargetCapacity:
        Ref: TargetCapacity
      LaunchSpecifications:
      - EbsOptimized: 'false'
        InstanceType:
          Ref: InstanceType
      ImageId:
        Fn::FindInMap:
        - AWSRegionArch2AMI
        - Ref: AWS::Region
        - Fn::FindInMap:
          - AWSInstanceType2Arch
          - Ref: InstanceType
          - Arch
      SubnetId:
        Ref: Subnet1
      WeightedCapacity: '8'
    - EbsOptimized: 'true'
      InstanceType:
        Ref: InstanceType
      ImageId:
        Fn::FindInMap:
        - AWSRegionArch2AMI
        - Ref: AWS::Region
        - Fn::FindInMap:
        - AWSInstanceType2Arch
        - Ref: InstanceType
        - Arch
      Monitoring:
        Enabled: 'true'
        SecurityGroups:
         - GroupId:
             Fn::GetAtt:
             - SG0
             - GroupId
       SubnetId:
          Ref: Subnet0
       IamInstanceProfile:
         Arn:
         Fn::GetAtt:
         - RootInstanceProfile
         - Arn
       WeightedCapacity: '8'
```

## See also
<a name="aws-resource-ec2-spotfleet--seealso"></a>
+  [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) 
+  [AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html) 



# AWS::EC2::SpotFleet AcceleratorCountRequest
<a name="aws-properties-ec2-spotfleet-acceleratorcountrequest"></a>

The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set `Max` to `0`.

## Syntax
<a name="aws-properties-ec2-spotfleet-acceleratorcountrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-acceleratorcountrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-acceleratorcountrequest-max)" : Integer,
  "[Min](#cfn-ec2-spotfleet-acceleratorcountrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-acceleratorcountrequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-acceleratorcountrequest-max): Integer
  [Min](#cfn-ec2-spotfleet-acceleratorcountrequest-min): Integer
```

## Properties
<a name="aws-properties-ec2-spotfleet-acceleratorcountrequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-acceleratorcountrequest-max"></a>
The maximum number of accelerators. To specify no maximum limit, omit this parameter. To exclude accelerator-enabled instance types, set `Max` to `0`.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-acceleratorcountrequest-min"></a>
The minimum number of accelerators. To specify no minimum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet AcceleratorTotalMemoryMiBRequest
<a name="aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest"></a>

The minimum and maximum amount of total accelerator memory, in MiB.

## Syntax
<a name="aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-max)" : Integer,
  "[Min](#cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-max): Integer
  [Min](#cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-min): Integer
```

## Properties
<a name="aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-max"></a>
The maximum amount of accelerator memory, in MiB. To specify no maximum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-min"></a>
The minimum amount of accelerator memory, in MiB. To specify no minimum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet BaselineEbsBandwidthMbpsRequest
<a name="aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest"></a>

The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*.

## Syntax
<a name="aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-max)" : Integer,
  "[Min](#cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-max): Integer
  [Min](#cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-min): Integer
```

## Properties
<a name="aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-max"></a>
The maximum baseline bandwidth, in Mbps. To specify no maximum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-min"></a>
The minimum baseline bandwidth, in Mbps. To specify no minimum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet BaselinePerformanceFactorsRequest
<a name="aws-properties-ec2-spotfleet-baselineperformancefactorsrequest"></a>

The baseline performance to consider, using an instance family as a baseline reference. The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this baseline to guide instance type selection, but there is no guarantee that the selected instance types will always exceed the baseline for every application.

Currently, this parameter only supports CPU performance as a baseline performance factor. For example, specifying `c6i` would use the CPU performance of the `c6i` family as the baseline reference.

## Syntax
<a name="aws-properties-ec2-spotfleet-baselineperformancefactorsrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-baselineperformancefactorsrequest-syntax.json"></a>

```
{
  "[Cpu](#cfn-ec2-spotfleet-baselineperformancefactorsrequest-cpu)" : CpuPerformanceFactorRequest
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-baselineperformancefactorsrequest-syntax.yaml"></a>

```
  [Cpu](#cfn-ec2-spotfleet-baselineperformancefactorsrequest-cpu): 
    CpuPerformanceFactorRequest
```

## Properties
<a name="aws-properties-ec2-spotfleet-baselineperformancefactorsrequest-properties"></a>

`Cpu`  <a name="cfn-ec2-spotfleet-baselineperformancefactorsrequest-cpu"></a>
The CPU performance to consider, using an instance family as the baseline reference.  
*Required*: No  
*Type*: [CpuPerformanceFactorRequest](aws-properties-ec2-spotfleet-cpuperformancefactorrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet BlockDeviceMapping
<a name="aws-properties-ec2-spotfleet-blockdevicemapping"></a>

Specifies a block device mapping.

You can specify `Ebs` or `VirtualName`, but not both.

## Syntax
<a name="aws-properties-ec2-spotfleet-blockdevicemapping-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-blockdevicemapping-syntax.json"></a>

```
{
  "[DeviceName](#cfn-ec2-spotfleet-blockdevicemapping-devicename)" : String,
  "[Ebs](#cfn-ec2-spotfleet-blockdevicemapping-ebs)" : EbsBlockDevice,
  "[NoDevice](#cfn-ec2-spotfleet-blockdevicemapping-nodevice)" : String,
  "[VirtualName](#cfn-ec2-spotfleet-blockdevicemapping-virtualname)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-blockdevicemapping-syntax.yaml"></a>

```
  [DeviceName](#cfn-ec2-spotfleet-blockdevicemapping-devicename): String
  [Ebs](#cfn-ec2-spotfleet-blockdevicemapping-ebs): 
    EbsBlockDevice
  [NoDevice](#cfn-ec2-spotfleet-blockdevicemapping-nodevice): String
  [VirtualName](#cfn-ec2-spotfleet-blockdevicemapping-virtualname): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-blockdevicemapping-properties"></a>

`DeviceName`  <a name="cfn-ec2-spotfleet-blockdevicemapping-devicename"></a>
The device name. For available device names, see [Device names for volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html).  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Ebs`  <a name="cfn-ec2-spotfleet-blockdevicemapping-ebs"></a>
Parameters used to automatically set up EBS volumes when the instance is launched.  
*Required*: Conditional  
*Type*: [EbsBlockDevice](aws-properties-ec2-spotfleet-ebsblockdevice.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NoDevice`  <a name="cfn-ec2-spotfleet-blockdevicemapping-nodevice"></a>
To omit the device from the block device mapping, specify an empty string. When this property is specified, the device is removed from the block device mapping regardless of the assigned value.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VirtualName`  <a name="cfn-ec2-spotfleet-blockdevicemapping-virtualname"></a>
The virtual device name (`ephemeral`N). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1`. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.  
NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect.  
Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet ClassicLoadBalancer
<a name="aws-properties-ec2-spotfleet-classicloadbalancer"></a>

Specifies a Classic Load Balancer.

## Syntax
<a name="aws-properties-ec2-spotfleet-classicloadbalancer-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-classicloadbalancer-syntax.json"></a>

```
{
  "[Name](#cfn-ec2-spotfleet-classicloadbalancer-name)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-classicloadbalancer-syntax.yaml"></a>

```
  [Name](#cfn-ec2-spotfleet-classicloadbalancer-name): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-classicloadbalancer-properties"></a>

`Name`  <a name="cfn-ec2-spotfleet-classicloadbalancer-name"></a>
The name of the load balancer.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet ClassicLoadBalancersConfig
<a name="aws-properties-ec2-spotfleet-classicloadbalancersconfig"></a>

Specifies the Classic Load Balancers to attach to a Spot Fleet. Spot Fleet registers the running Spot Instances with these Classic Load Balancers.

## Syntax
<a name="aws-properties-ec2-spotfleet-classicloadbalancersconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-classicloadbalancersconfig-syntax.json"></a>

```
{
  "[ClassicLoadBalancers](#cfn-ec2-spotfleet-classicloadbalancersconfig-classicloadbalancers)" : [ ClassicLoadBalancer, ... ]
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-classicloadbalancersconfig-syntax.yaml"></a>

```
  [ClassicLoadBalancers](#cfn-ec2-spotfleet-classicloadbalancersconfig-classicloadbalancers): 
    - ClassicLoadBalancer
```

## Properties
<a name="aws-properties-ec2-spotfleet-classicloadbalancersconfig-properties"></a>

`ClassicLoadBalancers`  <a name="cfn-ec2-spotfleet-classicloadbalancersconfig-classicloadbalancers"></a>
One or more Classic Load Balancers.  
*Required*: Yes  
*Type*: Array of [ClassicLoadBalancer](aws-properties-ec2-spotfleet-classicloadbalancer.md)  
*Minimum*: `1`  
*Maximum*: `5`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet CpuPerformanceFactorRequest
<a name="aws-properties-ec2-spotfleet-cpuperformancefactorrequest"></a>

The CPU performance to consider, using an instance family as the baseline reference.

## Syntax
<a name="aws-properties-ec2-spotfleet-cpuperformancefactorrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-cpuperformancefactorrequest-syntax.json"></a>

```
{
  "[References](#cfn-ec2-spotfleet-cpuperformancefactorrequest-references)" : [ PerformanceFactorReferenceRequest, ... ]
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-cpuperformancefactorrequest-syntax.yaml"></a>

```
  [References](#cfn-ec2-spotfleet-cpuperformancefactorrequest-references): 
    - PerformanceFactorReferenceRequest
```

## Properties
<a name="aws-properties-ec2-spotfleet-cpuperformancefactorrequest-properties"></a>

`References`  <a name="cfn-ec2-spotfleet-cpuperformancefactorrequest-references"></a>
Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences.  
Currently, only one instance family can be specified in the list.
*Required*: No  
*Type*: Array of [PerformanceFactorReferenceRequest](aws-properties-ec2-spotfleet-performancefactorreferencerequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet EbsBlockDevice
<a name="aws-properties-ec2-spotfleet-ebsblockdevice"></a>

Describes a block device for an EBS volume.

## Syntax
<a name="aws-properties-ec2-spotfleet-ebsblockdevice-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-ebsblockdevice-syntax.json"></a>

```
{
  "[DeleteOnTermination](#cfn-ec2-spotfleet-ebsblockdevice-deleteontermination)" : Boolean,
  "[Encrypted](#cfn-ec2-spotfleet-ebsblockdevice-encrypted)" : Boolean,
  "[Iops](#cfn-ec2-spotfleet-ebsblockdevice-iops)" : Integer,
  "[SnapshotId](#cfn-ec2-spotfleet-ebsblockdevice-snapshotid)" : String,
  "[VolumeSize](#cfn-ec2-spotfleet-ebsblockdevice-volumesize)" : Integer,
  "[VolumeType](#cfn-ec2-spotfleet-ebsblockdevice-volumetype)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-ebsblockdevice-syntax.yaml"></a>

```
  [DeleteOnTermination](#cfn-ec2-spotfleet-ebsblockdevice-deleteontermination): Boolean
  [Encrypted](#cfn-ec2-spotfleet-ebsblockdevice-encrypted): Boolean
  [Iops](#cfn-ec2-spotfleet-ebsblockdevice-iops): Integer
  [SnapshotId](#cfn-ec2-spotfleet-ebsblockdevice-snapshotid): String
  [VolumeSize](#cfn-ec2-spotfleet-ebsblockdevice-volumesize): Integer
  [VolumeType](#cfn-ec2-spotfleet-ebsblockdevice-volumetype): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-ebsblockdevice-properties"></a>

`DeleteOnTermination`  <a name="cfn-ec2-spotfleet-ebsblockdevice-deleteontermination"></a>
Indicates whether the EBS volume is deleted on instance termination. For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide*.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Encrypted`  <a name="cfn-ec2-spotfleet-ebsblockdevice-encrypted"></a>
Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to `true` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters) in the *Amazon EC2 User Guide*.  
In no case can you remove encryption from an encrypted volume.  
Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see [Supported Instance Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances).  
This parameter is not returned by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html).  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Iops`  <a name="cfn-ec2-spotfleet-ebsblockdevice-iops"></a>
The number of I/O operations per second (IOPS). For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.  
The following are the supported values for each volume type:  
+ `gp3`: 3,000 - 80,000 IOPS
+ `io1`: 100 - 64,000 IOPS
+ `io2`: 100 - 256,000 IOPS
For `io2` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). On other instances, you can achieve performance up to 32,000 IOPS.  
This parameter is required for `io1` and `io2` volumes. The default for `gp3` volumes is 3,000 IOPS.  
*Required*: Conditional  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SnapshotId`  <a name="cfn-ec2-spotfleet-ebsblockdevice-snapshotid"></a>
The ID of the snapshot.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VolumeSize`  <a name="cfn-ec2-spotfleet-ebsblockdevice-volumesize"></a>
The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.  
The following are the supported sizes for each volume type:  
+ `gp2`: 1 - 16,384 GiB
+ `gp3`: 1 - 65,536 GiB
+ `io1`: 4 - 16,384 GiB
+ `io2`: 4 - 65,536 GiB
+ `st1` and `sc1`: 125 - 16,384 GiB
+ `standard`: 1 - 1024 GiB
*Required*: Conditional  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VolumeType`  <a name="cfn-ec2-spotfleet-ebsblockdevice-volumetype"></a>
The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*.  
*Required*: No  
*Type*: String  
*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet FleetLaunchTemplateSpecification
<a name="aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification"></a>

Specifies the launch template to be used by the Spot Fleet request for configuring Amazon EC2 instances.

You must specify the following:
+ The ID or the name of the launch template, but not both.
+ The version of the launch template.

`FleetLaunchTemplateSpecification` is a property of the [AWS::EC2::SpotFleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html) resource.

For information about creating a launch template, see [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) and [Create a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) in the *Amazon EC2 User Guide*.

For examples of launch templates, see [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate--examples).

## Syntax
<a name="aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification-syntax.json"></a>

```
{
  "[LaunchTemplateId](#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-launchtemplateid)" : String,
  "[LaunchTemplateName](#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-launchtemplatename)" : String,
  "[Version](#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-version)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification-syntax.yaml"></a>

```
  [LaunchTemplateId](#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-launchtemplateid): String
  [LaunchTemplateName](#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-launchtemplatename): String
  [Version](#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-version): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification-properties"></a>

`LaunchTemplateId`  <a name="cfn-ec2-spotfleet-fleetlaunchtemplatespecification-launchtemplateid"></a>
The ID of the launch template.  
You must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both.  
*Required*: Conditional  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`LaunchTemplateName`  <a name="cfn-ec2-spotfleet-fleetlaunchtemplatespecification-launchtemplatename"></a>
The name of the launch template.  
You must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both.  
*Required*: Conditional  
*Type*: String  
*Pattern*: `[a-zA-Z0-9\(\)\.\-/_]+`  
*Minimum*: `3`  
*Maximum*: `128`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Version`  <a name="cfn-ec2-spotfleet-fleetlaunchtemplatespecification-version"></a>
The version number of the launch template.  
Specifying `$Latest` or `$Default` for the template version number is not supported. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` intrinsic function. For more information, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt).  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet GroupIdentifier
<a name="aws-properties-ec2-spotfleet-groupidentifier"></a>

Describes a security group.

## Syntax
<a name="aws-properties-ec2-spotfleet-groupidentifier-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-groupidentifier-syntax.json"></a>

```
{
  "[GroupId](#cfn-ec2-spotfleet-groupidentifier-groupid)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-groupidentifier-syntax.yaml"></a>

```
  [GroupId](#cfn-ec2-spotfleet-groupidentifier-groupid): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-groupidentifier-properties"></a>

`GroupId`  <a name="cfn-ec2-spotfleet-groupidentifier-groupid"></a>
The ID of the security group.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet IamInstanceProfileSpecification
<a name="aws-properties-ec2-spotfleet-iaminstanceprofilespecification"></a>

Describes an IAM instance profile.

## Syntax
<a name="aws-properties-ec2-spotfleet-iaminstanceprofilespecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-iaminstanceprofilespecification-syntax.json"></a>

```
{
  "[Arn](#cfn-ec2-spotfleet-iaminstanceprofilespecification-arn)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-iaminstanceprofilespecification-syntax.yaml"></a>

```
  [Arn](#cfn-ec2-spotfleet-iaminstanceprofilespecification-arn): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-iaminstanceprofilespecification-properties"></a>

`Arn`  <a name="cfn-ec2-spotfleet-iaminstanceprofilespecification-arn"></a>
The Amazon Resource Name (ARN) of the instance profile.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet InstanceIpv6Address
<a name="aws-properties-ec2-spotfleet-instanceipv6address"></a>

Describes an IPv6 address.

## Syntax
<a name="aws-properties-ec2-spotfleet-instanceipv6address-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-instanceipv6address-syntax.json"></a>

```
{
  "[Ipv6Address](#cfn-ec2-spotfleet-instanceipv6address-ipv6address)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-instanceipv6address-syntax.yaml"></a>

```
  [Ipv6Address](#cfn-ec2-spotfleet-instanceipv6address-ipv6address): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-instanceipv6address-properties"></a>

`Ipv6Address`  <a name="cfn-ec2-spotfleet-instanceipv6address-ipv6address"></a>
The IPv6 address.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet InstanceNetworkInterfaceSpecification
<a name="aws-properties-ec2-spotfleet-instancenetworkinterfacespecification"></a>

Describes a network interface.

## Syntax
<a name="aws-properties-ec2-spotfleet-instancenetworkinterfacespecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-instancenetworkinterfacespecification-syntax.json"></a>

```
{
  "[AssociatePublicIpAddress](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-associatepublicipaddress)" : Boolean,
  "[DeleteOnTermination](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-deleteontermination)" : Boolean,
  "[Description](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-description)" : String,
  "[DeviceIndex](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-deviceindex)" : Integer,
  "[Groups](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-groups)" : [ String, ... ],
  "[Ipv6AddressCount](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresscount)" : Integer,
  "[Ipv6Addresses](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresses)" : [ InstanceIpv6Address, ... ],
  "[NetworkInterfaceId](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-networkinterfaceid)" : String,
  "[PrivateIpAddresses](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-privateipaddresses)" : [ PrivateIpAddressSpecification, ... ],
  "[SecondaryPrivateIpAddressCount](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-secondaryprivateipaddresscount)" : Integer,
  "[SubnetId](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-instancenetworkinterfacespecification-syntax.yaml"></a>

```
  [AssociatePublicIpAddress](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-associatepublicipaddress): Boolean
  [DeleteOnTermination](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-deleteontermination): Boolean
  [Description](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-description): String
  [DeviceIndex](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-deviceindex): Integer
  [Groups](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-groups): 
    - String
  [Ipv6AddressCount](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresscount): Integer
  [Ipv6Addresses](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresses): 
    - InstanceIpv6Address
  [NetworkInterfaceId](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-networkinterfaceid): String
  [PrivateIpAddresses](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-privateipaddresses): 
    - PrivateIpAddressSpecification
  [SecondaryPrivateIpAddressCount](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-secondaryprivateipaddresscount): Integer
  [SubnetId](#cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-instancenetworkinterfacespecification-properties"></a>

`AssociatePublicIpAddress`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-associatepublicipaddress"></a>
Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is `true`.  
AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [Amazon VPC pricing page](https://aws.amazon.com/vpc/pricing/).  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DeleteOnTermination`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-deleteontermination"></a>
Indicates whether the network interface is deleted when the instance is terminated.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Description`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-description"></a>
The description of the network interface. Applies only if creating a network interface when launching an instance.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DeviceIndex`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-deviceindex"></a>
The position of the network interface in the attachment order. A primary network interface has a device index of 0.  
If you specify a network interface when launching an instance, you must specify the device index.  
*Required*: Conditional  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Groups`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-groups"></a>
The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Ipv6AddressCount`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresscount"></a>
A number of IPv6 addresses to assign to the network interface. Amazon EC2 chooses the IPv6 addresses from the range of the subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you've specified a minimum number of instances to launch.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Ipv6Addresses`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresses"></a>
The IPv6 addresses to assign to the network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.  
*Required*: No  
*Type*: Array of [InstanceIpv6Address](aws-properties-ec2-spotfleet-instanceipv6address.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NetworkInterfaceId`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-networkinterfaceid"></a>
The ID of the network interface.  
If you are creating a Spot Fleet, omit this parameter because you can’t specify a network interface ID in a launch specification.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PrivateIpAddresses`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-privateipaddresses"></a>
The private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request.  
*Required*: No  
*Type*: Array of [PrivateIpAddressSpecification](aws-properties-ec2-spotfleet-privateipaddressspecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SecondaryPrivateIpAddressCount`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-secondaryprivateipaddresscount"></a>
The number of secondary private IPv4 addresses. You can’t specify this parameter and also specify a secondary private IP address using the `PrivateIpAddress` parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SubnetId`  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid"></a>
The ID of the subnet associated with the network interface.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet InstanceRequirementsRequest
<a name="aws-properties-ec2-spotfleet-instancerequirementsrequest"></a>

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

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

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 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.

**Note**  
If you specify `InstanceRequirements`, you can't specify `InstanceType`.  
Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html)AWS CloudFormation resource, you can't specify `InstanceRequirements`.

For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.

## Syntax
<a name="aws-properties-ec2-spotfleet-instancerequirementsrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-instancerequirementsrequest-syntax.json"></a>

```
{
  "[AcceleratorCount](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratorcount)" : AcceleratorCountRequest,
  "[AcceleratorManufacturers](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratormanufacturers)" : [ String, ... ],
  "[AcceleratorNames](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratornames)" : [ String, ... ],
  "[AcceleratorTotalMemoryMiB](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortotalmemorymib)" : AcceleratorTotalMemoryMiBRequest,
  "[AcceleratorTypes](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortypes)" : [ String, ... ],
  "[AllowedInstanceTypes](#cfn-ec2-spotfleet-instancerequirementsrequest-allowedinstancetypes)" : [ String, ... ],
  "[BareMetal](#cfn-ec2-spotfleet-instancerequirementsrequest-baremetal)" : String,
  "[BaselineEbsBandwidthMbps](#cfn-ec2-spotfleet-instancerequirementsrequest-baselineebsbandwidthmbps)" : BaselineEbsBandwidthMbpsRequest,
  "[BaselinePerformanceFactors](#cfn-ec2-spotfleet-instancerequirementsrequest-baselineperformancefactors)" : BaselinePerformanceFactorsRequest,
  "[BurstablePerformance](#cfn-ec2-spotfleet-instancerequirementsrequest-burstableperformance)" : String,
  "[CpuManufacturers](#cfn-ec2-spotfleet-instancerequirementsrequest-cpumanufacturers)" : [ String, ... ],
  "[ExcludedInstanceTypes](#cfn-ec2-spotfleet-instancerequirementsrequest-excludedinstancetypes)" : [ String, ... ],
  "[InstanceGenerations](#cfn-ec2-spotfleet-instancerequirementsrequest-instancegenerations)" : [ String, ... ],
  "[LocalStorage](#cfn-ec2-spotfleet-instancerequirementsrequest-localstorage)" : String,
  "[LocalStorageTypes](#cfn-ec2-spotfleet-instancerequirementsrequest-localstoragetypes)" : [ String, ... ],
  "[MaxSpotPriceAsPercentageOfOptimalOnDemandPrice](#cfn-ec2-spotfleet-instancerequirementsrequest-maxspotpriceaspercentageofoptimalondemandprice)" : Integer,
  "[MemoryGiBPerVCpu](#cfn-ec2-spotfleet-instancerequirementsrequest-memorygibpervcpu)" : MemoryGiBPerVCpuRequest,
  "[MemoryMiB](#cfn-ec2-spotfleet-instancerequirementsrequest-memorymib)" : MemoryMiBRequest,
  "[NetworkBandwidthGbps](#cfn-ec2-spotfleet-instancerequirementsrequest-networkbandwidthgbps)" : NetworkBandwidthGbpsRequest,
  "[NetworkInterfaceCount](#cfn-ec2-spotfleet-instancerequirementsrequest-networkinterfacecount)" : NetworkInterfaceCountRequest,
  "[OnDemandMaxPricePercentageOverLowestPrice](#cfn-ec2-spotfleet-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice)" : Integer,
  "[RequireEncryptionInTransit](#cfn-ec2-spotfleet-instancerequirementsrequest-requireencryptionintransit)" : Boolean,
  "[RequireHibernateSupport](#cfn-ec2-spotfleet-instancerequirementsrequest-requirehibernatesupport)" : Boolean,
  "[SpotMaxPricePercentageOverLowestPrice](#cfn-ec2-spotfleet-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice)" : Integer,
  "[TotalLocalStorageGB](#cfn-ec2-spotfleet-instancerequirementsrequest-totallocalstoragegb)" : TotalLocalStorageGBRequest,
  "[VCpuCount](#cfn-ec2-spotfleet-instancerequirementsrequest-vcpucount)" : VCpuCountRangeRequest
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-instancerequirementsrequest-syntax.yaml"></a>

```
  [AcceleratorCount](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratorcount): 
    AcceleratorCountRequest
  [AcceleratorManufacturers](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratormanufacturers): 
    - String
  [AcceleratorNames](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratornames): 
    - String
  [AcceleratorTotalMemoryMiB](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortotalmemorymib): 
    AcceleratorTotalMemoryMiBRequest
  [AcceleratorTypes](#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortypes): 
    - String
  [AllowedInstanceTypes](#cfn-ec2-spotfleet-instancerequirementsrequest-allowedinstancetypes): 
    - String
  [BareMetal](#cfn-ec2-spotfleet-instancerequirementsrequest-baremetal): String
  [BaselineEbsBandwidthMbps](#cfn-ec2-spotfleet-instancerequirementsrequest-baselineebsbandwidthmbps): 
    BaselineEbsBandwidthMbpsRequest
  [BaselinePerformanceFactors](#cfn-ec2-spotfleet-instancerequirementsrequest-baselineperformancefactors): 
    BaselinePerformanceFactorsRequest
  [BurstablePerformance](#cfn-ec2-spotfleet-instancerequirementsrequest-burstableperformance): String
  [CpuManufacturers](#cfn-ec2-spotfleet-instancerequirementsrequest-cpumanufacturers): 
    - String
  [ExcludedInstanceTypes](#cfn-ec2-spotfleet-instancerequirementsrequest-excludedinstancetypes): 
    - String
  [InstanceGenerations](#cfn-ec2-spotfleet-instancerequirementsrequest-instancegenerations): 
    - String
  [LocalStorage](#cfn-ec2-spotfleet-instancerequirementsrequest-localstorage): String
  [LocalStorageTypes](#cfn-ec2-spotfleet-instancerequirementsrequest-localstoragetypes): 
    - String
  [MaxSpotPriceAsPercentageOfOptimalOnDemandPrice](#cfn-ec2-spotfleet-instancerequirementsrequest-maxspotpriceaspercentageofoptimalondemandprice): Integer
  [MemoryGiBPerVCpu](#cfn-ec2-spotfleet-instancerequirementsrequest-memorygibpervcpu): 
    MemoryGiBPerVCpuRequest
  [MemoryMiB](#cfn-ec2-spotfleet-instancerequirementsrequest-memorymib): 
    MemoryMiBRequest
  [NetworkBandwidthGbps](#cfn-ec2-spotfleet-instancerequirementsrequest-networkbandwidthgbps): 
    NetworkBandwidthGbpsRequest
  [NetworkInterfaceCount](#cfn-ec2-spotfleet-instancerequirementsrequest-networkinterfacecount): 
    NetworkInterfaceCountRequest
  [OnDemandMaxPricePercentageOverLowestPrice](#cfn-ec2-spotfleet-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice): Integer
  [RequireEncryptionInTransit](#cfn-ec2-spotfleet-instancerequirementsrequest-requireencryptionintransit): Boolean
  [RequireHibernateSupport](#cfn-ec2-spotfleet-instancerequirementsrequest-requirehibernatesupport): Boolean
  [SpotMaxPricePercentageOverLowestPrice](#cfn-ec2-spotfleet-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice): Integer
  [TotalLocalStorageGB](#cfn-ec2-spotfleet-instancerequirementsrequest-totallocalstoragegb): 
    TotalLocalStorageGBRequest
  [VCpuCount](#cfn-ec2-spotfleet-instancerequirementsrequest-vcpucount): 
    VCpuCountRangeRequest
```

## Properties
<a name="aws-properties-ec2-spotfleet-instancerequirementsrequest-properties"></a>

`AcceleratorCount`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-acceleratorcount"></a>
The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.  
To exclude accelerator-enabled instance types, set `Max` to `0`.  
Default: No minimum or maximum limits  
*Required*: No  
*Type*: [AcceleratorCountRequest](aws-properties-ec2-spotfleet-acceleratorcountrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AcceleratorManufacturers`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-acceleratormanufacturers"></a>
Indicates whether instance types must have accelerators by specific manufacturers.  
+ For instance types with AWS devices, specify `amazon-web-services`.
+ For instance types with AMD devices, specify `amd`.
+ For instance types with Habana devices, specify `habana`.
+ For instance types with NVIDIA devices, specify `nvidia`.
+ For instance types with Xilinx devices, specify `xilinx`.
Default: Any manufacturer  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `amazon-web-services | amd | habana | nvidia | xilinx`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AcceleratorNames`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-acceleratornames"></a>
The accelerators that must be on the instance type.  
+ For instance types with NVIDIA A10G GPUs, specify `a10g`.
+ For instance types with NVIDIA A100 GPUs, specify `a100`.
+ For instance types with NVIDIA H100 GPUs, specify `h100`.
+ For instance types with AWS Inferentia chips, specify `inferentia`.
+ For instance types with AWS Inferentia2 chips, specify `inferentia2`.
+ For instance types with Habana Gaudi HL-205 GPUs, specify `gaudi-hl-205`.
+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`.
+ For instance types with NVIDIA K80 GPUs, specify `k80`.
+ For instance types with NVIDIA L4 GPUs, specify `l4`.
+ For instance types with NVIDIA L40S GPUs, specify `l40s`.
+ 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 AWS Trainium chips, specify `trainium`.
+ For instance types with AWS Trainium2 chips, specify `trainium2`.
+ For instance types with NVIDIA T4 GPUs, specify `t4`.
+ For instance types with NVIDIA T4G GPUs, specify `t4g`.
+ For instance types with Xilinx U30 cards, specify `u30`.
+ For instance types with Xilinx VU9P FPGAs, specify `vu9p`.
+ For instance types with NVIDIA V100 GPUs, specify `v100`.
Default: Any accelerator  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `a10g | a100 | h100 | inferentia | k520 | k80 | m60 | radeon-pro-v520 | t4 | t4g | vu9p | v100 | l40s | l4 | gaudi-hl-205 | inferentia2 | trainium | trainium2 | u30`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AcceleratorTotalMemoryMiB`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortotalmemorymib"></a>
The minimum and maximum amount of total accelerator memory, in MiB.  
Default: No minimum or maximum limits  
*Required*: No  
*Type*: [AcceleratorTotalMemoryMiBRequest](aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AcceleratorTypes`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortypes"></a>
The accelerator types that must be on the instance type.  
+ For instance types with FPGA accelerators, specify `fpga`.
+ For instance types with GPU accelerators, specify `gpu`.
+ For instance types with Inference accelerators, specify `inference`.
+ For instance types with Media accelerators, specify `media`.
Default: Any accelerator type  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `gpu | fpga | inference | media`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AllowedInstanceTypes`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-allowedinstancetypes"></a>
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 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, Amazon EC2 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  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `30`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`BareMetal`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-baremetal"></a>
Indicates whether bare metal instance types must be included, excluded, or required.  
+ To include bare metal instance types, specify `included`.
+ To require only bare metal instance types, specify `required`.
+ To exclude bare metal instance types, specify `excluded`.
Default: `excluded`  
*Required*: No  
*Type*: String  
*Allowed values*: `included | required | excluded`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`BaselineEbsBandwidthMbps`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-baselineebsbandwidthmbps"></a>
The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*.  
Default: No minimum or maximum limits  
*Required*: No  
*Type*: [BaselineEbsBandwidthMbpsRequest](aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`BaselinePerformanceFactors`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-baselineperformancefactors"></a>
The baseline performance to consider, using an instance family as a baseline reference. The instance family establishes the lowest acceptable level of performance. Amazon EC2 uses this baseline to guide instance type selection, but there is no guarantee that the selected instance types will always exceed the baseline for every application. Currently, this parameter only supports CPU performance as a baseline performance factor. For more information, see [Performance protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-abis-performance-protection) in the *Amazon EC2 User Guide*.  
*Required*: No  
*Type*: [BaselinePerformanceFactorsRequest](aws-properties-ec2-spotfleet-baselineperformancefactorsrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`BurstablePerformance`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-burstableperformance"></a>
Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html).  
+ To include burstable performance instance types, specify `included`.
+ To require only burstable performance instance types, specify `required`.
+ To exclude burstable performance instance types, specify `excluded`.
Default: `excluded`  
*Required*: No  
*Type*: String  
*Allowed values*: `included | required | excluded`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`CpuManufacturers`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-cpumanufacturers"></a>
The 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 manufacturer with the CPU 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  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `intel | amd | amazon-web-services | apple`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ExcludedInstanceTypes`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-excludedinstancetypes"></a>
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*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify `m5a.*`, Amazon EC2 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  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `30`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstanceGenerations`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-instancegenerations"></a>
Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.  
For current generation instance types, specify `current`.  
For previous generation instance types, specify `previous`.  
Default: Current and previous generation instance types  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `current | previous`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`LocalStorage`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-localstorage"></a>
Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*.  
+ To include instance types with instance store volumes, specify `included`.
+ To require only instance types with instance store volumes, specify `required`.
+ To exclude instance types with instance store volumes, specify `excluded`.
Default: `included`  
*Required*: No  
*Type*: String  
*Allowed values*: `included | required | excluded`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`LocalStorageTypes`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-localstoragetypes"></a>
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: `hdd` and `ssd`  
*Required*: No  
*Type*: Array of String  
*Allowed values*: `hdd | ssd`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-maxspotpriceaspercentageofoptimalondemandprice"></a>
[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 the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.  
The parameter accepts an integer, which Amazon EC2 interprets as a percentage.  
If you set `TargetCapacityUnitType` 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 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`.
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`MemoryGiBPerVCpu`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-memorygibpervcpu"></a>
The minimum and maximum amount of memory per vCPU, in GiB.  
Default: No minimum or maximum limits  
*Required*: No  
*Type*: [MemoryGiBPerVCpuRequest](aws-properties-ec2-spotfleet-memorygibpervcpurequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`MemoryMiB`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-memorymib"></a>
The minimum and maximum amount of memory, in MiB.  
*Required*: No  
*Type*: [MemoryMiBRequest](aws-properties-ec2-spotfleet-memorymibrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NetworkBandwidthGbps`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-networkbandwidthgbps"></a>
The minimum and maximum amount of baseline network bandwidth, in gigabits per second (Gbps). For more information, see [Amazon EC2 instance network bandwidth](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) in the *Amazon EC2 User Guide*.  
Default: No minimum or maximum limits  
*Required*: No  
*Type*: [NetworkBandwidthGbpsRequest](aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NetworkInterfaceCount`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-networkinterfacecount"></a>
The minimum and maximum number of network interfaces.  
Default: No minimum or maximum limits  
*Required*: No  
*Type*: [NetworkInterfaceCountRequest](aws-properties-ec2-spotfleet-networkinterfacecountrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OnDemandMaxPricePercentageOverLowestPrice`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice"></a>
[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. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.  
The parameter accepts an integer, which Amazon EC2 interprets as a percentage.  
To indicate no price protection threshold, specify a high value, such as `999999`.  
This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).  
If you set `TargetCapacityUnitType` 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`  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RequireEncryptionInTransit`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-requireencryptionintransit"></a>
Specifies whether instance types must support encrypting in-transit traffic between instances. For more information, including the supported instance types, see [Encryption in transit](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-transit) in the *Amazon EC2 User Guide*.  
Default: `false`  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RequireHibernateSupport`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-requirehibernatesupport"></a>
Indicates whether instance types must support hibernation for On-Demand Instances.  
This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html).  
Default: `false`  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SpotMaxPricePercentageOverLowestPrice`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice"></a>
[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot 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 Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.  
The parameter accepts an integer, which Amazon EC2 interprets as a percentage.  
If you set `TargetCapacityUnitType` 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.  
This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).  
Only one of `SpotMaxPricePercentageOverLowestPrice` or `MaxSpotPriceAsPercentageOfOptimalOnDemandPrice` can be specified. If you don't specify either, Amazon EC2 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`.
Default: `100`  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TotalLocalStorageGB`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-totallocalstoragegb"></a>
The minimum and maximum amount of total local storage, in GB.  
Default: No minimum or maximum limits  
*Required*: No  
*Type*: [TotalLocalStorageGBRequest](aws-properties-ec2-spotfleet-totallocalstoragegbrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`VCpuCount`  <a name="cfn-ec2-spotfleet-instancerequirementsrequest-vcpucount"></a>
The minimum and maximum number of vCPUs.  
*Required*: No  
*Type*: [VCpuCountRangeRequest](aws-properties-ec2-spotfleet-vcpucountrangerequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet LaunchTemplateConfig
<a name="aws-properties-ec2-spotfleet-launchtemplateconfig"></a>

Specifies a launch template and overrides.

## Syntax
<a name="aws-properties-ec2-spotfleet-launchtemplateconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-launchtemplateconfig-syntax.json"></a>

```
{
  "[LaunchTemplateSpecification](#cfn-ec2-spotfleet-launchtemplateconfig-launchtemplatespecification)" : FleetLaunchTemplateSpecification,
  "[Overrides](#cfn-ec2-spotfleet-launchtemplateconfig-overrides)" : [ LaunchTemplateOverrides, ... ]
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-launchtemplateconfig-syntax.yaml"></a>

```
  [LaunchTemplateSpecification](#cfn-ec2-spotfleet-launchtemplateconfig-launchtemplatespecification): 
    FleetLaunchTemplateSpecification
  [Overrides](#cfn-ec2-spotfleet-launchtemplateconfig-overrides): 
    - LaunchTemplateOverrides
```

## Properties
<a name="aws-properties-ec2-spotfleet-launchtemplateconfig-properties"></a>

`LaunchTemplateSpecification`  <a name="cfn-ec2-spotfleet-launchtemplateconfig-launchtemplatespecification"></a>
The launch template to use. Make sure that the launch template does not contain the `NetworkInterfaceId` parameter because you can't specify a network interface ID in a Spot Fleet.  
*Required*: No  
*Type*: [FleetLaunchTemplateSpecification](aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Overrides`  <a name="cfn-ec2-spotfleet-launchtemplateconfig-overrides"></a>
Any parameters that you specify override the same parameters in the launch template.  
*Required*: No  
*Type*: Array of [LaunchTemplateOverrides](aws-properties-ec2-spotfleet-launchtemplateoverrides.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet LaunchTemplateOverrides
<a name="aws-properties-ec2-spotfleet-launchtemplateoverrides"></a>

Specifies overrides for a launch template.

## Syntax
<a name="aws-properties-ec2-spotfleet-launchtemplateoverrides-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-launchtemplateoverrides-syntax.json"></a>

```
{
  "[AvailabilityZone](#cfn-ec2-spotfleet-launchtemplateoverrides-availabilityzone)" : String,
  "[AvailabilityZoneId](#cfn-ec2-spotfleet-launchtemplateoverrides-availabilityzoneid)" : String,
  "[InstanceRequirements](#cfn-ec2-spotfleet-launchtemplateoverrides-instancerequirements)" : InstanceRequirementsRequest,
  "[InstanceType](#cfn-ec2-spotfleet-launchtemplateoverrides-instancetype)" : String,
  "[Priority](#cfn-ec2-spotfleet-launchtemplateoverrides-priority)" : Number,
  "[SpotPrice](#cfn-ec2-spotfleet-launchtemplateoverrides-spotprice)" : String,
  "[SubnetId](#cfn-ec2-spotfleet-launchtemplateoverrides-subnetid)" : String,
  "[WeightedCapacity](#cfn-ec2-spotfleet-launchtemplateoverrides-weightedcapacity)" : Number
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-launchtemplateoverrides-syntax.yaml"></a>

```
  [AvailabilityZone](#cfn-ec2-spotfleet-launchtemplateoverrides-availabilityzone): String
  [AvailabilityZoneId](#cfn-ec2-spotfleet-launchtemplateoverrides-availabilityzoneid): String
  [InstanceRequirements](#cfn-ec2-spotfleet-launchtemplateoverrides-instancerequirements): 
    InstanceRequirementsRequest
  [InstanceType](#cfn-ec2-spotfleet-launchtemplateoverrides-instancetype): String
  [Priority](#cfn-ec2-spotfleet-launchtemplateoverrides-priority): Number
  [SpotPrice](#cfn-ec2-spotfleet-launchtemplateoverrides-spotprice): String
  [SubnetId](#cfn-ec2-spotfleet-launchtemplateoverrides-subnetid): String
  [WeightedCapacity](#cfn-ec2-spotfleet-launchtemplateoverrides-weightedcapacity): Number
```

## Properties
<a name="aws-properties-ec2-spotfleet-launchtemplateoverrides-properties"></a>

`AvailabilityZone`  <a name="cfn-ec2-spotfleet-launchtemplateoverrides-availabilityzone"></a>
The Availability Zone in which to launch the instances. For example, `us-east-2a`.  
Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in the request, but not both.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AvailabilityZoneId`  <a name="cfn-ec2-spotfleet-launchtemplateoverrides-availabilityzoneid"></a>
The ID of the Availability Zone in which to launch the instances. For example, `use2-az1`.  
Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in the request, but not both.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstanceRequirements`  <a name="cfn-ec2-spotfleet-launchtemplateoverrides-instancerequirements"></a>
The instance requirements. When you specify instance requirements, Amazon EC2 will identify instance types with the provided requirements, and then use your On-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of instance types.  
If you specify `InstanceRequirements`, you can't specify `InstanceType`.
*Required*: No  
*Type*: [InstanceRequirementsRequest](aws-properties-ec2-spotfleet-instancerequirementsrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstanceType`  <a name="cfn-ec2-spotfleet-launchtemplateoverrides-instancetype"></a>
The instance type.  
*Required*: No  
*Type*: String  
*Allowed values*: `a1.medium | a1.large | a1.xlarge | a1.2xlarge | a1.4xlarge | a1.metal | c1.medium | c1.xlarge | c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c4.large | c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c5.large | c5.xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.metal | c5a.large | c5a.xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5ad.large | c5ad.xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5d.large | c5d.xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.metal | c5n.large | c5n.xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.18xlarge | c5n.metal | c6g.medium | c6g.large | c6g.xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.12xlarge | c6g.16xlarge | c6g.metal | c6gd.medium | c6gd.large | c6gd.xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.metal | c6gn.medium | c6gn.large | c6gn.xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.12xlarge | c6gn.16xlarge | c6i.large | c6i.xlarge | c6i.2xlarge | c6i.4xlarge | c6i.8xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.32xlarge | c6i.metal | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d3.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3en.xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.12xlarge | dl1.24xlarge | f1.2xlarge | f1.4xlarge | f1.16xlarge | g2.2xlarge | g2.8xlarge | g3.4xlarge | g3.8xlarge | g3.16xlarge | g3s.xlarge | g4ad.xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.16xlarge | g4dn.xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.metal | g5.xlarge | g5.2xlarge | g5.4xlarge | g5.8xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.48xlarge | g5g.xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.16xlarge | g5g.metal | hi1.4xlarge | hpc6a.48xlarge | hs1.8xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | h1.16xlarge | i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i3.large | i3.xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.16xlarge | i3.metal | i3en.large | i3en.xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.12xlarge | i3en.24xlarge | i3en.metal | im4gn.large | im4gn.xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.16xlarge | inf1.xlarge | inf1.2xlarge | inf1.6xlarge | inf1.24xlarge | is4gen.medium | is4gen.large | is4gen.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | m1.small | m1.medium | m1.large | m1.xlarge | m2.xlarge | m2.2xlarge | m2.4xlarge | m3.medium | m3.large | m3.xlarge | m3.2xlarge | m4.large | m4.xlarge | m4.2xlarge | m4.4xlarge | m4.10xlarge | m4.16xlarge | m5.large | m5.xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.metal | m5a.large | m5a.xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5ad.large | m5ad.xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5d.large | m5d.xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.metal | m5dn.large | m5dn.xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.metal | m5n.large | m5n.xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.metal | m5zn.large | m5zn.xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.12xlarge | m5zn.metal | m6a.large | m6a.xlarge | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.32xlarge | m6a.48xlarge | m6g.metal | m6g.medium | m6g.large | m6g.xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.12xlarge | m6g.16xlarge | m6gd.metal | m6gd.medium | m6gd.large | m6gd.xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.12xlarge | m6gd.16xlarge | m6i.large | m6i.xlarge | m6i.2xlarge | m6i.4xlarge | m6i.8xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.32xlarge | m6i.metal | mac1.metal | p2.xlarge | p2.8xlarge | p2.16xlarge | p3.2xlarge | p3.8xlarge | p3.16xlarge | p3dn.24xlarge | p4d.24xlarge | r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r4.large | r4.xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge | r5.large | r5.xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.metal | r5a.large | r5a.xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5ad.large | r5ad.xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5b.large | r5b.xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.metal | r5d.large | r5d.xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.metal | r5dn.large | r5dn.xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.metal | r5n.large | r5n.xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.metal | r6g.medium | r6g.large | r6g.xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.12xlarge | r6g.16xlarge | r6g.metal | r6gd.medium | r6gd.large | r6gd.xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.metal | r6i.large | r6i.xlarge | r6i.2xlarge | r6i.4xlarge | r6i.8xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.32xlarge | r6i.metal | t1.micro | t2.nano | t2.micro | t2.small | t2.medium | t2.large | t2.xlarge | t2.2xlarge | t3.nano | t3.micro | t3.small | t3.medium | t3.large | t3.xlarge | t3.2xlarge | t3a.nano | t3a.micro | t3a.small | t3a.medium | t3a.large | t3a.xlarge | t3a.2xlarge | t4g.nano | t4g.micro | t4g.small | t4g.medium | t4g.large | t4g.xlarge | t4g.2xlarge | u-6tb1.56xlarge | u-6tb1.112xlarge | u-9tb1.112xlarge | u-12tb1.112xlarge | u-6tb1.metal | u-9tb1.metal | u-12tb1.metal | u-18tb1.metal | u-24tb1.metal | vt1.3xlarge | vt1.6xlarge | vt1.24xlarge | x1.16xlarge | x1.32xlarge | x1e.xlarge | x1e.2xlarge | x1e.4xlarge | x1e.8xlarge | x1e.16xlarge | x1e.32xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.12xlarge | x2iezn.metal | x2gd.medium | x2gd.large | x2gd.xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.metal | z1d.large | z1d.xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.12xlarge | z1d.metal | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2iedn.xlarge | x2iedn.2xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.32xlarge | c6a.large | c6a.xlarge | c6a.2xlarge | c6a.4xlarge | c6a.8xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.32xlarge | c6a.48xlarge | c6a.metal | m6a.metal | i4i.large | i4i.xlarge | i4i.2xlarge | i4i.4xlarge | i4i.8xlarge | i4i.16xlarge | i4i.32xlarge | i4i.metal | x2idn.metal | x2iedn.metal | c7g.medium | c7g.large | c7g.xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.12xlarge | c7g.16xlarge | mac2.metal | c6id.large | c6id.xlarge | c6id.2xlarge | c6id.4xlarge | c6id.8xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.32xlarge | c6id.metal | m6id.large | m6id.xlarge | m6id.2xlarge | m6id.4xlarge | m6id.8xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.32xlarge | m6id.metal | r6id.large | r6id.xlarge | r6id.2xlarge | r6id.4xlarge | r6id.8xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.32xlarge | r6id.metal | r6a.large | r6a.xlarge | r6a.2xlarge | r6a.4xlarge | r6a.8xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.32xlarge | r6a.48xlarge | r6a.metal | p4de.24xlarge | u-3tb1.56xlarge | u-18tb1.112xlarge | u-24tb1.112xlarge | trn1.2xlarge | trn1.32xlarge | hpc6id.32xlarge | c6in.large | c6in.xlarge | c6in.2xlarge | c6in.4xlarge | c6in.8xlarge | c6in.12xlarge | c6in.16xlarge | c6in.24xlarge | c6in.32xlarge | m6in.large | m6in.xlarge | m6in.2xlarge | m6in.4xlarge | m6in.8xlarge | m6in.12xlarge | m6in.16xlarge | m6in.24xlarge | m6in.32xlarge | m6idn.large | m6idn.xlarge | m6idn.2xlarge | m6idn.4xlarge | m6idn.8xlarge | m6idn.12xlarge | m6idn.16xlarge | m6idn.24xlarge | m6idn.32xlarge | r6in.large | r6in.xlarge | r6in.2xlarge | r6in.4xlarge | r6in.8xlarge | r6in.12xlarge | r6in.16xlarge | r6in.24xlarge | r6in.32xlarge | r6idn.large | r6idn.xlarge | r6idn.2xlarge | r6idn.4xlarge | r6idn.8xlarge | r6idn.12xlarge | r6idn.16xlarge | r6idn.24xlarge | r6idn.32xlarge | c7g.metal | m7g.medium | m7g.large | m7g.xlarge | m7g.2xlarge | m7g.4xlarge | m7g.8xlarge | m7g.12xlarge | m7g.16xlarge | m7g.metal | r7g.medium | r7g.large | r7g.xlarge | r7g.2xlarge | r7g.4xlarge | r7g.8xlarge | r7g.12xlarge | r7g.16xlarge | r7g.metal | c6in.metal | m6in.metal | m6idn.metal | r6in.metal | r6idn.metal | inf2.xlarge | inf2.8xlarge | inf2.24xlarge | inf2.48xlarge | trn1n.32xlarge | i4g.large | i4g.xlarge | i4g.2xlarge | i4g.4xlarge | i4g.8xlarge | i4g.16xlarge | hpc7g.4xlarge | hpc7g.8xlarge | hpc7g.16xlarge | c7gn.medium | c7gn.large | c7gn.xlarge | c7gn.2xlarge | c7gn.4xlarge | c7gn.8xlarge | c7gn.12xlarge | c7gn.16xlarge | p5.48xlarge | m7i.large | m7i.xlarge | m7i.2xlarge | m7i.4xlarge | m7i.8xlarge | m7i.12xlarge | m7i.16xlarge | m7i.24xlarge | m7i.48xlarge | m7i-flex.large | m7i-flex.xlarge | m7i-flex.2xlarge | m7i-flex.4xlarge | m7i-flex.8xlarge | m7a.medium | m7a.large | m7a.xlarge | m7a.2xlarge | m7a.4xlarge | m7a.8xlarge | m7a.12xlarge | m7a.16xlarge | m7a.24xlarge | m7a.32xlarge | m7a.48xlarge | m7a.metal-48xl | hpc7a.12xlarge | hpc7a.24xlarge | hpc7a.48xlarge | hpc7a.96xlarge | c7gd.medium | c7gd.large | c7gd.xlarge | c7gd.2xlarge | c7gd.4xlarge | c7gd.8xlarge | c7gd.12xlarge | c7gd.16xlarge | m7gd.medium | m7gd.large | m7gd.xlarge | m7gd.2xlarge | m7gd.4xlarge | m7gd.8xlarge | m7gd.12xlarge | m7gd.16xlarge | r7gd.medium | r7gd.large | r7gd.xlarge | r7gd.2xlarge | r7gd.4xlarge | r7gd.8xlarge | r7gd.12xlarge | r7gd.16xlarge | r7a.medium | r7a.large | r7a.xlarge | r7a.2xlarge | r7a.4xlarge | r7a.8xlarge | r7a.12xlarge | r7a.16xlarge | r7a.24xlarge | r7a.32xlarge | r7a.48xlarge | c7i.large | c7i.xlarge | c7i.2xlarge | c7i.4xlarge | c7i.8xlarge | c7i.12xlarge | c7i.16xlarge | c7i.24xlarge | c7i.48xlarge | mac2-m2pro.metal | r7iz.large | r7iz.xlarge | r7iz.2xlarge | r7iz.4xlarge | r7iz.8xlarge | r7iz.12xlarge | r7iz.16xlarge | r7iz.32xlarge | c7a.medium | c7a.large | c7a.xlarge | c7a.2xlarge | c7a.4xlarge | c7a.8xlarge | c7a.12xlarge | c7a.16xlarge | c7a.24xlarge | c7a.32xlarge | c7a.48xlarge | c7a.metal-48xl | r7a.metal-48xl | r7i.large | r7i.xlarge | r7i.2xlarge | r7i.4xlarge | r7i.8xlarge | r7i.12xlarge | r7i.16xlarge | r7i.24xlarge | r7i.48xlarge | dl2q.24xlarge | mac2-m2.metal | i4i.12xlarge | i4i.24xlarge | c7i.metal-24xl | c7i.metal-48xl | m7i.metal-24xl | m7i.metal-48xl | r7i.metal-24xl | r7i.metal-48xl | r7iz.metal-16xl | r7iz.metal-32xl | c7gd.metal | m7gd.metal | r7gd.metal | g6.xlarge | g6.2xlarge | g6.4xlarge | g6.8xlarge | g6.12xlarge | g6.16xlarge | g6.24xlarge | g6.48xlarge | gr6.4xlarge | gr6.8xlarge | c7i-flex.large | c7i-flex.xlarge | c7i-flex.2xlarge | c7i-flex.4xlarge | c7i-flex.8xlarge | u7i-12tb.224xlarge | u7in-16tb.224xlarge | u7in-24tb.224xlarge | u7in-32tb.224xlarge | u7ib-12tb.224xlarge | c7gn.metal | r8g.medium | r8g.large | r8g.xlarge | r8g.2xlarge | r8g.4xlarge | r8g.8xlarge | r8g.12xlarge | r8g.16xlarge | r8g.24xlarge | r8g.48xlarge | r8g.metal-24xl | r8g.metal-48xl | mac2-m1ultra.metal | g6e.xlarge | g6e.2xlarge | g6e.4xlarge | g6e.8xlarge | g6e.12xlarge | g6e.16xlarge | g6e.24xlarge | g6e.48xlarge | c8g.medium | c8g.large | c8g.xlarge | c8g.2xlarge | c8g.4xlarge | c8g.8xlarge | c8g.12xlarge | c8g.16xlarge | c8g.24xlarge | c8g.48xlarge | c8g.metal-24xl | c8g.metal-48xl | m8g.medium | m8g.large | m8g.xlarge | m8g.2xlarge | m8g.4xlarge | m8g.8xlarge | m8g.12xlarge | m8g.16xlarge | m8g.24xlarge | m8g.48xlarge | m8g.metal-24xl | m8g.metal-48xl | x8g.medium | x8g.large | x8g.xlarge | x8g.2xlarge | x8g.4xlarge | x8g.8xlarge | x8g.12xlarge | x8g.16xlarge | x8g.24xlarge | x8g.48xlarge | x8g.metal-24xl | x8g.metal-48xl | i7ie.large | i7ie.xlarge | i7ie.2xlarge | i7ie.3xlarge | i7ie.6xlarge | i7ie.12xlarge | i7ie.18xlarge | i7ie.24xlarge | i7ie.48xlarge | i8g.large | i8g.xlarge | i8g.2xlarge | i8g.4xlarge | i8g.8xlarge | i8g.12xlarge | i8g.16xlarge | i8g.24xlarge | i8g.metal-24xl | u7i-6tb.112xlarge | u7i-8tb.112xlarge | u7inh-32tb.480xlarge | p5e.48xlarge | p5en.48xlarge | f2.12xlarge | f2.48xlarge | trn2.48xlarge | c7i-flex.12xlarge | c7i-flex.16xlarge | m7i-flex.12xlarge | m7i-flex.16xlarge | i7ie.metal-24xl | i7ie.metal-48xl | i8g.48xlarge | c8gd.medium | c8gd.large | c8gd.xlarge | c8gd.2xlarge | c8gd.4xlarge | c8gd.8xlarge | c8gd.12xlarge | c8gd.16xlarge | c8gd.24xlarge | c8gd.48xlarge | c8gd.metal-24xl | c8gd.metal-48xl | i7i.large | i7i.xlarge | i7i.2xlarge | i7i.4xlarge | i7i.8xlarge | i7i.12xlarge | i7i.16xlarge | i7i.24xlarge | i7i.48xlarge | i7i.metal-24xl | i7i.metal-48xl | p6-b200.48xlarge | m8gd.medium | m8gd.large | m8gd.xlarge | m8gd.2xlarge | m8gd.4xlarge | m8gd.8xlarge | m8gd.12xlarge | m8gd.16xlarge | m8gd.24xlarge | m8gd.48xlarge | m8gd.metal-24xl | m8gd.metal-48xl | r8gd.medium | r8gd.large | r8gd.xlarge | r8gd.2xlarge | r8gd.4xlarge | r8gd.8xlarge | r8gd.12xlarge | r8gd.16xlarge | r8gd.24xlarge | r8gd.48xlarge | r8gd.metal-24xl | r8gd.metal-48xl | c8gn.medium | c8gn.large | c8gn.xlarge | c8gn.2xlarge | c8gn.4xlarge | c8gn.8xlarge | c8gn.12xlarge | c8gn.16xlarge | c8gn.24xlarge | c8gn.48xlarge | c8gn.metal-24xl | c8gn.metal-48xl | f2.6xlarge | p6e-gb200.36xlarge | g6f.large | g6f.xlarge | g6f.2xlarge | g6f.4xlarge | gr6f.4xlarge | p5.4xlarge | r8i.large | r8i.xlarge | r8i.2xlarge | r8i.4xlarge | r8i.8xlarge | r8i.12xlarge | r8i.16xlarge | r8i.24xlarge | r8i.32xlarge | r8i.48xlarge | r8i.96xlarge | r8i.metal-48xl | r8i.metal-96xl | r8i-flex.large | r8i-flex.xlarge | r8i-flex.2xlarge | r8i-flex.4xlarge | r8i-flex.8xlarge | r8i-flex.12xlarge | r8i-flex.16xlarge`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Priority`  <a name="cfn-ec2-spotfleet-launchtemplateoverrides-priority"></a>
The priority for the launch template override. The highest priority is launched first.  
If `OnDemandAllocationStrategy` is set to `prioritized`, Spot Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity.  
If the Spot `AllocationStrategy` is set to `capacityOptimizedPrioritized`, Spot Fleet uses priority on a best-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first.  
Valid values are whole numbers starting at `0`. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. You can set the same priority for different launch template overrides.  
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SpotPrice`  <a name="cfn-ec2-spotfleet-launchtemplateoverrides-spotprice"></a>
The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.  
If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SubnetId`  <a name="cfn-ec2-spotfleet-launchtemplateoverrides-subnetid"></a>
The ID of the subnet in which to launch the instances.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`WeightedCapacity`  <a name="cfn-ec2-spotfleet-launchtemplateoverrides-weightedcapacity"></a>
The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O.  
If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1.  
When specifying weights, the price used in the `lowestPrice` and `priceCapacityOptimized` allocation strategies is per *unit* hour (where the instance price is divided by the specified weight). However, if all the specified weights are above the requested `TargetCapacity`, resulting in only 1 instance being launched, the price used is per *instance* hour.
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet LoadBalancersConfig
<a name="aws-properties-ec2-spotfleet-loadbalancersconfig"></a>

Specifies the Classic Load Balancers and target groups to attach to a Spot Fleet request.

## Syntax
<a name="aws-properties-ec2-spotfleet-loadbalancersconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-loadbalancersconfig-syntax.json"></a>

```
{
  "[ClassicLoadBalancersConfig](#cfn-ec2-spotfleet-loadbalancersconfig-classicloadbalancersconfig)" : ClassicLoadBalancersConfig,
  "[TargetGroupsConfig](#cfn-ec2-spotfleet-loadbalancersconfig-targetgroupsconfig)" : TargetGroupsConfig
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-loadbalancersconfig-syntax.yaml"></a>

```
  [ClassicLoadBalancersConfig](#cfn-ec2-spotfleet-loadbalancersconfig-classicloadbalancersconfig): 
    ClassicLoadBalancersConfig
  [TargetGroupsConfig](#cfn-ec2-spotfleet-loadbalancersconfig-targetgroupsconfig): 
    TargetGroupsConfig
```

## Properties
<a name="aws-properties-ec2-spotfleet-loadbalancersconfig-properties"></a>

`ClassicLoadBalancersConfig`  <a name="cfn-ec2-spotfleet-loadbalancersconfig-classicloadbalancersconfig"></a>
The Classic Load Balancers.  
*Required*: No  
*Type*: [ClassicLoadBalancersConfig](aws-properties-ec2-spotfleet-classicloadbalancersconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TargetGroupsConfig`  <a name="cfn-ec2-spotfleet-loadbalancersconfig-targetgroupsconfig"></a>
The target groups.  
*Required*: No  
*Type*: [TargetGroupsConfig](aws-properties-ec2-spotfleet-targetgroupsconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet MemoryGiBPerVCpuRequest
<a name="aws-properties-ec2-spotfleet-memorygibpervcpurequest"></a>

The minimum and maximum amount of memory per vCPU, in GiB.

## Syntax
<a name="aws-properties-ec2-spotfleet-memorygibpervcpurequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-memorygibpervcpurequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-memorygibpervcpurequest-max)" : Number,
  "[Min](#cfn-ec2-spotfleet-memorygibpervcpurequest-min)" : Number
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-memorygibpervcpurequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-memorygibpervcpurequest-max): Number
  [Min](#cfn-ec2-spotfleet-memorygibpervcpurequest-min): Number
```

## Properties
<a name="aws-properties-ec2-spotfleet-memorygibpervcpurequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-memorygibpervcpurequest-max"></a>
The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this parameter.  
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-memorygibpervcpurequest-min"></a>
The minimum amount of memory per vCPU, in GiB. To specify no minimum limit, omit this parameter.  
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet MemoryMiBRequest
<a name="aws-properties-ec2-spotfleet-memorymibrequest"></a>

The minimum and maximum amount of memory, in MiB.

## Syntax
<a name="aws-properties-ec2-spotfleet-memorymibrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-memorymibrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-memorymibrequest-max)" : Integer,
  "[Min](#cfn-ec2-spotfleet-memorymibrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-memorymibrequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-memorymibrequest-max): Integer
  [Min](#cfn-ec2-spotfleet-memorymibrequest-min): Integer
```

## Properties
<a name="aws-properties-ec2-spotfleet-memorymibrequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-memorymibrequest-max"></a>
The maximum amount of memory, in MiB. To specify no maximum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-memorymibrequest-min"></a>
The minimum amount of memory, in MiB. To specify no minimum limit, specify `0`.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet NetworkBandwidthGbpsRequest
<a name="aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest"></a>

The minimum and maximum amount of baseline network bandwidth, in gigabits per second (Gbps). For more information, see [Amazon EC2 instance network bandwidth](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) in the *Amazon EC2 User Guide*.

Default: No minimum or maximum limits

## Syntax
<a name="aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-networkbandwidthgbpsrequest-max)" : Number,
  "[Min](#cfn-ec2-spotfleet-networkbandwidthgbpsrequest-min)" : Number
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-networkbandwidthgbpsrequest-max): Number
  [Min](#cfn-ec2-spotfleet-networkbandwidthgbpsrequest-min): Number
```

## Properties
<a name="aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-networkbandwidthgbpsrequest-max"></a>
The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this parameter.  
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-networkbandwidthgbpsrequest-min"></a>
The minimum amount of network bandwidth, in Gbps. To specify no minimum limit, omit this parameter.  
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet NetworkInterfaceCountRequest
<a name="aws-properties-ec2-spotfleet-networkinterfacecountrequest"></a>

The minimum and maximum number of network interfaces.

## Syntax
<a name="aws-properties-ec2-spotfleet-networkinterfacecountrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-networkinterfacecountrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-networkinterfacecountrequest-max)" : Integer,
  "[Min](#cfn-ec2-spotfleet-networkinterfacecountrequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-networkinterfacecountrequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-networkinterfacecountrequest-max): Integer
  [Min](#cfn-ec2-spotfleet-networkinterfacecountrequest-min): Integer
```

## Properties
<a name="aws-properties-ec2-spotfleet-networkinterfacecountrequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-networkinterfacecountrequest-max"></a>
The maximum number of network interfaces. To specify no maximum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-networkinterfacecountrequest-min"></a>
The minimum number of network interfaces. To specify no minimum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet PerformanceFactorReferenceRequest
<a name="aws-properties-ec2-spotfleet-performancefactorreferencerequest"></a>

Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture.

**Note**  
Currently, only one instance family can be specified in the list.

## Syntax
<a name="aws-properties-ec2-spotfleet-performancefactorreferencerequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-performancefactorreferencerequest-syntax.json"></a>

```
{
  "[InstanceFamily](#cfn-ec2-spotfleet-performancefactorreferencerequest-instancefamily)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-performancefactorreferencerequest-syntax.yaml"></a>

```
  [InstanceFamily](#cfn-ec2-spotfleet-performancefactorreferencerequest-instancefamily): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-performancefactorreferencerequest-properties"></a>

`InstanceFamily`  <a name="cfn-ec2-spotfleet-performancefactorreferencerequest-instancefamily"></a>
The instance family to use as a baseline reference.  
Ensure that you specify the correct value for the instance family. The instance family is everything before the period (`.`) in the instance type name. For example, in the instance type `c6i.large`, the instance family is `c6i`, not `c6`. For more information, see [Amazon EC2 instance type naming conventions](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html) in *Amazon EC2 Instance Types*.
The following instance families are *not supported* for performance protection:  
+  `c1` 
+ `g3` \$1 `g3s`
+  `hpc7g` 
+ `m1` \$1 `m2`
+ `mac1` \$1 `mac2` \$1 `mac2-m1ultra` \$1 `mac2-m2` \$1 `mac2-m2pro`
+ `p3dn` \$1 `p4d` \$1 `p5`
+  `t1` 
+ `u-12tb1` \$1 `u-18tb1` \$1 `u-24tb1` \$1 `u-3tb1` \$1 `u-6tb1` \$1 `u-9tb1` \$1 `u7i-12tb` \$1 `u7in-16tb` \$1 `u7in-24tb` \$1 `u7in-32tb`
If you enable performance protection by specifying a supported instance family, the returned instance types will exclude the above unsupported instance families.  
If you specify an unsupported instance family as a value for baseline performance, the API returns an empty response for [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) and an exception for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html), [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html), [ModifyFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyFleet.html), and [ModifySpotFleetRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySpotFleetRequest.html).  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet PrivateIpAddressSpecification
<a name="aws-properties-ec2-spotfleet-privateipaddressspecification"></a>

Describes a secondary private IPv4 address for a network interface.

## Syntax
<a name="aws-properties-ec2-spotfleet-privateipaddressspecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-privateipaddressspecification-syntax.json"></a>

```
{
  "[Primary](#cfn-ec2-spotfleet-privateipaddressspecification-primary)" : Boolean,
  "[PrivateIpAddress](#cfn-ec2-spotfleet-privateipaddressspecification-privateipaddress)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-privateipaddressspecification-syntax.yaml"></a>

```
  [Primary](#cfn-ec2-spotfleet-privateipaddressspecification-primary): Boolean
  [PrivateIpAddress](#cfn-ec2-spotfleet-privateipaddressspecification-privateipaddress): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-privateipaddressspecification-properties"></a>

`Primary`  <a name="cfn-ec2-spotfleet-privateipaddressspecification-primary"></a>
Indicates whether the private IPv4 address is the primary private IPv4 address. Only one IPv4 address can be designated as primary.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`PrivateIpAddress`  <a name="cfn-ec2-spotfleet-privateipaddressspecification-privateipaddress"></a>
The private IPv4 address.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet SpotCapacityRebalance
<a name="aws-properties-ec2-spotfleet-spotcapacityrebalance"></a>

The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted. For more information, see [Capacity rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) in the *Amazon EC2 User Guide*.

## Syntax
<a name="aws-properties-ec2-spotfleet-spotcapacityrebalance-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-spotcapacityrebalance-syntax.json"></a>

```
{
  "[ReplacementStrategy](#cfn-ec2-spotfleet-spotcapacityrebalance-replacementstrategy)" : String,
  "[TerminationDelay](#cfn-ec2-spotfleet-spotcapacityrebalance-terminationdelay)" : Integer
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-spotcapacityrebalance-syntax.yaml"></a>

```
  [ReplacementStrategy](#cfn-ec2-spotfleet-spotcapacityrebalance-replacementstrategy): String
  [TerminationDelay](#cfn-ec2-spotfleet-spotcapacityrebalance-terminationdelay): Integer
```

## Properties
<a name="aws-properties-ec2-spotfleet-spotcapacityrebalance-properties"></a>

`ReplacementStrategy`  <a name="cfn-ec2-spotfleet-spotcapacityrebalance-replacementstrategy"></a>
The replacement strategy to use. Only available for fleets of type `maintain`.  
`launch` - Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet. Spot Fleet does not terminate the instances that receive a rebalance notification. You can terminate the old instances, or you can leave them running. You are charged for all instances while they are running.   
`launch-before-terminate` - Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify (in `TerminationDelay`), terminates the instances that received a rebalance notification.  
*Required*: No  
*Type*: String  
*Allowed values*: `launch | launch-before-terminate`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TerminationDelay`  <a name="cfn-ec2-spotfleet-spotcapacityrebalance-terminationdelay"></a>
The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance.  
Required when `ReplacementStrategy` is set to `launch-before-terminate`.  
Not valid when `ReplacementStrategy` is set to `launch`.  
Valid values: Minimum value of `120` seconds. Maximum value of `7200` seconds.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet SpotFleetLaunchSpecification
<a name="aws-properties-ec2-spotfleet-spotfleetlaunchspecification"></a>

Specifies the launch specification for one or more Spot Instances. If you include On-Demand capacity in your fleet request, you can't use `SpotFleetLaunchSpecification`; you must use [ LaunchTemplateConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html). 

## Syntax
<a name="aws-properties-ec2-spotfleet-spotfleetlaunchspecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-spotfleetlaunchspecification-syntax.json"></a>

```
{
  "[BlockDeviceMappings](#cfn-ec2-spotfleet-spotfleetlaunchspecification-blockdevicemappings)" : [ BlockDeviceMapping, ... ],
  "[EbsOptimized](#cfn-ec2-spotfleet-spotfleetlaunchspecification-ebsoptimized)" : Boolean,
  "[IamInstanceProfile](#cfn-ec2-spotfleet-spotfleetlaunchspecification-iaminstanceprofile)" : IamInstanceProfileSpecification,
  "[ImageId](#cfn-ec2-spotfleet-spotfleetlaunchspecification-imageid)" : String,
  "[InstanceRequirements](#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancerequirements)" : InstanceRequirementsRequest,
  "[InstanceType](#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancetype)" : String,
  "[KernelId](#cfn-ec2-spotfleet-spotfleetlaunchspecification-kernelid)" : String,
  "[KeyName](#cfn-ec2-spotfleet-spotfleetlaunchspecification-keyname)" : String,
  "[Monitoring](#cfn-ec2-spotfleet-spotfleetlaunchspecification-monitoring)" : SpotFleetMonitoring,
  "[NetworkInterfaces](#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces)" : [ InstanceNetworkInterfaceSpecification, ... ],
  "[Placement](#cfn-ec2-spotfleet-spotfleetlaunchspecification-placement)" : SpotPlacement,
  "[RamdiskId](#cfn-ec2-spotfleet-spotfleetlaunchspecification-ramdiskid)" : String,
  "[SecurityGroups](#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups)" : [ GroupIdentifier, ... ],
  "[SpotPrice](#cfn-ec2-spotfleet-spotfleetlaunchspecification-spotprice)" : String,
  "[SubnetId](#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid)" : String,
  "[TagSpecifications](#cfn-ec2-spotfleet-spotfleetlaunchspecification-tagspecifications)" : [ SpotFleetTagSpecification, ... ],
  "[UserData](#cfn-ec2-spotfleet-spotfleetlaunchspecification-userdata)" : String,
  "[WeightedCapacity](#cfn-ec2-spotfleet-spotfleetlaunchspecification-weightedcapacity)" : Number
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-spotfleetlaunchspecification-syntax.yaml"></a>

```
  [BlockDeviceMappings](#cfn-ec2-spotfleet-spotfleetlaunchspecification-blockdevicemappings): 
    - BlockDeviceMapping
  [EbsOptimized](#cfn-ec2-spotfleet-spotfleetlaunchspecification-ebsoptimized): Boolean
  [IamInstanceProfile](#cfn-ec2-spotfleet-spotfleetlaunchspecification-iaminstanceprofile): 
    IamInstanceProfileSpecification
  [ImageId](#cfn-ec2-spotfleet-spotfleetlaunchspecification-imageid): String
  [InstanceRequirements](#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancerequirements): 
    InstanceRequirementsRequest
  [InstanceType](#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancetype): String
  [KernelId](#cfn-ec2-spotfleet-spotfleetlaunchspecification-kernelid): String
  [KeyName](#cfn-ec2-spotfleet-spotfleetlaunchspecification-keyname): String
  [Monitoring](#cfn-ec2-spotfleet-spotfleetlaunchspecification-monitoring): 
    SpotFleetMonitoring
  [NetworkInterfaces](#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces): 
    - InstanceNetworkInterfaceSpecification
  [Placement](#cfn-ec2-spotfleet-spotfleetlaunchspecification-placement): 
    SpotPlacement
  [RamdiskId](#cfn-ec2-spotfleet-spotfleetlaunchspecification-ramdiskid): String
  [SecurityGroups](#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups): 
    - GroupIdentifier
  [SpotPrice](#cfn-ec2-spotfleet-spotfleetlaunchspecification-spotprice): String
  [SubnetId](#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid): String
  [TagSpecifications](#cfn-ec2-spotfleet-spotfleetlaunchspecification-tagspecifications): 
    - SpotFleetTagSpecification
  [UserData](#cfn-ec2-spotfleet-spotfleetlaunchspecification-userdata): String
  [WeightedCapacity](#cfn-ec2-spotfleet-spotfleetlaunchspecification-weightedcapacity): Number
```

## Properties
<a name="aws-properties-ec2-spotfleet-spotfleetlaunchspecification-properties"></a>

`BlockDeviceMappings`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-blockdevicemappings"></a>
One or more block devices that are mapped to the Spot Instances. You can't specify both a snapshot ID and an encryption value. This is because only blank volumes can be encrypted on creation. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status.  
*Required*: No  
*Type*: Array of [BlockDeviceMapping](aws-properties-ec2-spotfleet-blockdevicemapping.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`EbsOptimized`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-ebsoptimized"></a>
Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.  
Default: `false`  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`IamInstanceProfile`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-iaminstanceprofile"></a>
The IAM instance profile.  
*Required*: No  
*Type*: [IamInstanceProfileSpecification](aws-properties-ec2-spotfleet-iaminstanceprofilespecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ImageId`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-imageid"></a>
The ID of the AMI.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstanceRequirements`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-instancerequirements"></a>
The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.  
If you specify `InstanceRequirements`, you can't specify `InstanceType`.
*Required*: No  
*Type*: [InstanceRequirementsRequest](aws-properties-ec2-spotfleet-instancerequirementsrequest.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstanceType`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-instancetype"></a>
The instance type.  
*Required*: No  
*Type*: String  
*Allowed values*: `a1.medium | a1.large | a1.xlarge | a1.2xlarge | a1.4xlarge | a1.metal | c1.medium | c1.xlarge | c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c4.large | c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c5.large | c5.xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.metal | c5a.large | c5a.xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5ad.large | c5ad.xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5d.large | c5d.xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.metal | c5n.large | c5n.xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.18xlarge | c5n.metal | c6g.medium | c6g.large | c6g.xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.12xlarge | c6g.16xlarge | c6g.metal | c6gd.medium | c6gd.large | c6gd.xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.metal | c6gn.medium | c6gn.large | c6gn.xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.12xlarge | c6gn.16xlarge | c6i.large | c6i.xlarge | c6i.2xlarge | c6i.4xlarge | c6i.8xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.32xlarge | c6i.metal | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d3.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3en.xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.12xlarge | dl1.24xlarge | f1.2xlarge | f1.4xlarge | f1.16xlarge | g2.2xlarge | g2.8xlarge | g3.4xlarge | g3.8xlarge | g3.16xlarge | g3s.xlarge | g4ad.xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.16xlarge | g4dn.xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.metal | g5.xlarge | g5.2xlarge | g5.4xlarge | g5.8xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.48xlarge | g5g.xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.16xlarge | g5g.metal | hi1.4xlarge | hpc6a.48xlarge | hs1.8xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | h1.16xlarge | i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i3.large | i3.xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.16xlarge | i3.metal | i3en.large | i3en.xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.12xlarge | i3en.24xlarge | i3en.metal | im4gn.large | im4gn.xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.16xlarge | inf1.xlarge | inf1.2xlarge | inf1.6xlarge | inf1.24xlarge | is4gen.medium | is4gen.large | is4gen.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | m1.small | m1.medium | m1.large | m1.xlarge | m2.xlarge | m2.2xlarge | m2.4xlarge | m3.medium | m3.large | m3.xlarge | m3.2xlarge | m4.large | m4.xlarge | m4.2xlarge | m4.4xlarge | m4.10xlarge | m4.16xlarge | m5.large | m5.xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.metal | m5a.large | m5a.xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5ad.large | m5ad.xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5d.large | m5d.xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.metal | m5dn.large | m5dn.xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.metal | m5n.large | m5n.xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.metal | m5zn.large | m5zn.xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.12xlarge | m5zn.metal | m6a.large | m6a.xlarge | m6a.2xlarge | m6a.4xlarge | m6a.8xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.32xlarge | m6a.48xlarge | m6g.metal | m6g.medium | m6g.large | m6g.xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.12xlarge | m6g.16xlarge | m6gd.metal | m6gd.medium | m6gd.large | m6gd.xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.12xlarge | m6gd.16xlarge | m6i.large | m6i.xlarge | m6i.2xlarge | m6i.4xlarge | m6i.8xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.32xlarge | m6i.metal | mac1.metal | p2.xlarge | p2.8xlarge | p2.16xlarge | p3.2xlarge | p3.8xlarge | p3.16xlarge | p3dn.24xlarge | p4d.24xlarge | r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r4.large | r4.xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge | r5.large | r5.xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.metal | r5a.large | r5a.xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5ad.large | r5ad.xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5b.large | r5b.xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.metal | r5d.large | r5d.xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.metal | r5dn.large | r5dn.xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.metal | r5n.large | r5n.xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.metal | r6g.medium | r6g.large | r6g.xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.12xlarge | r6g.16xlarge | r6g.metal | r6gd.medium | r6gd.large | r6gd.xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.metal | r6i.large | r6i.xlarge | r6i.2xlarge | r6i.4xlarge | r6i.8xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.32xlarge | r6i.metal | t1.micro | t2.nano | t2.micro | t2.small | t2.medium | t2.large | t2.xlarge | t2.2xlarge | t3.nano | t3.micro | t3.small | t3.medium | t3.large | t3.xlarge | t3.2xlarge | t3a.nano | t3a.micro | t3a.small | t3a.medium | t3a.large | t3a.xlarge | t3a.2xlarge | t4g.nano | t4g.micro | t4g.small | t4g.medium | t4g.large | t4g.xlarge | t4g.2xlarge | u-6tb1.56xlarge | u-6tb1.112xlarge | u-9tb1.112xlarge | u-12tb1.112xlarge | u-6tb1.metal | u-9tb1.metal | u-12tb1.metal | u-18tb1.metal | u-24tb1.metal | vt1.3xlarge | vt1.6xlarge | vt1.24xlarge | x1.16xlarge | x1.32xlarge | x1e.xlarge | x1e.2xlarge | x1e.4xlarge | x1e.8xlarge | x1e.16xlarge | x1e.32xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.12xlarge | x2iezn.metal | x2gd.medium | x2gd.large | x2gd.xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.metal | z1d.large | z1d.xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.12xlarge | z1d.metal | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2iedn.xlarge | x2iedn.2xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.32xlarge | c6a.large | c6a.xlarge | c6a.2xlarge | c6a.4xlarge | c6a.8xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.32xlarge | c6a.48xlarge | c6a.metal | m6a.metal | i4i.large | i4i.xlarge | i4i.2xlarge | i4i.4xlarge | i4i.8xlarge | i4i.16xlarge | i4i.32xlarge | i4i.metal | x2idn.metal | x2iedn.metal | c7g.medium | c7g.large | c7g.xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.12xlarge | c7g.16xlarge | mac2.metal | c6id.large | c6id.xlarge | c6id.2xlarge | c6id.4xlarge | c6id.8xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.32xlarge | c6id.metal | m6id.large | m6id.xlarge | m6id.2xlarge | m6id.4xlarge | m6id.8xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.32xlarge | m6id.metal | r6id.large | r6id.xlarge | r6id.2xlarge | r6id.4xlarge | r6id.8xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.32xlarge | r6id.metal | r6a.large | r6a.xlarge | r6a.2xlarge | r6a.4xlarge | r6a.8xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.32xlarge | r6a.48xlarge | r6a.metal | p4de.24xlarge | u-3tb1.56xlarge | u-18tb1.112xlarge | u-24tb1.112xlarge | trn1.2xlarge | trn1.32xlarge | hpc6id.32xlarge | c6in.large | c6in.xlarge | c6in.2xlarge | c6in.4xlarge | c6in.8xlarge | c6in.12xlarge | c6in.16xlarge | c6in.24xlarge | c6in.32xlarge | m6in.large | m6in.xlarge | m6in.2xlarge | m6in.4xlarge | m6in.8xlarge | m6in.12xlarge | m6in.16xlarge | m6in.24xlarge | m6in.32xlarge | m6idn.large | m6idn.xlarge | m6idn.2xlarge | m6idn.4xlarge | m6idn.8xlarge | m6idn.12xlarge | m6idn.16xlarge | m6idn.24xlarge | m6idn.32xlarge | r6in.large | r6in.xlarge | r6in.2xlarge | r6in.4xlarge | r6in.8xlarge | r6in.12xlarge | r6in.16xlarge | r6in.24xlarge | r6in.32xlarge | r6idn.large | r6idn.xlarge | r6idn.2xlarge | r6idn.4xlarge | r6idn.8xlarge | r6idn.12xlarge | r6idn.16xlarge | r6idn.24xlarge | r6idn.32xlarge | c7g.metal | m7g.medium | m7g.large | m7g.xlarge | m7g.2xlarge | m7g.4xlarge | m7g.8xlarge | m7g.12xlarge | m7g.16xlarge | m7g.metal | r7g.medium | r7g.large | r7g.xlarge | r7g.2xlarge | r7g.4xlarge | r7g.8xlarge | r7g.12xlarge | r7g.16xlarge | r7g.metal | c6in.metal | m6in.metal | m6idn.metal | r6in.metal | r6idn.metal | inf2.xlarge | inf2.8xlarge | inf2.24xlarge | inf2.48xlarge | trn1n.32xlarge | i4g.large | i4g.xlarge | i4g.2xlarge | i4g.4xlarge | i4g.8xlarge | i4g.16xlarge | hpc7g.4xlarge | hpc7g.8xlarge | hpc7g.16xlarge | c7gn.medium | c7gn.large | c7gn.xlarge | c7gn.2xlarge | c7gn.4xlarge | c7gn.8xlarge | c7gn.12xlarge | c7gn.16xlarge | p5.48xlarge | m7i.large | m7i.xlarge | m7i.2xlarge | m7i.4xlarge | m7i.8xlarge | m7i.12xlarge | m7i.16xlarge | m7i.24xlarge | m7i.48xlarge | m7i-flex.large | m7i-flex.xlarge | m7i-flex.2xlarge | m7i-flex.4xlarge | m7i-flex.8xlarge | m7a.medium | m7a.large | m7a.xlarge | m7a.2xlarge | m7a.4xlarge | m7a.8xlarge | m7a.12xlarge | m7a.16xlarge | m7a.24xlarge | m7a.32xlarge | m7a.48xlarge | m7a.metal-48xl | hpc7a.12xlarge | hpc7a.24xlarge | hpc7a.48xlarge | hpc7a.96xlarge | c7gd.medium | c7gd.large | c7gd.xlarge | c7gd.2xlarge | c7gd.4xlarge | c7gd.8xlarge | c7gd.12xlarge | c7gd.16xlarge | m7gd.medium | m7gd.large | m7gd.xlarge | m7gd.2xlarge | m7gd.4xlarge | m7gd.8xlarge | m7gd.12xlarge | m7gd.16xlarge | r7gd.medium | r7gd.large | r7gd.xlarge | r7gd.2xlarge | r7gd.4xlarge | r7gd.8xlarge | r7gd.12xlarge | r7gd.16xlarge | r7a.medium | r7a.large | r7a.xlarge | r7a.2xlarge | r7a.4xlarge | r7a.8xlarge | r7a.12xlarge | r7a.16xlarge | r7a.24xlarge | r7a.32xlarge | r7a.48xlarge | c7i.large | c7i.xlarge | c7i.2xlarge | c7i.4xlarge | c7i.8xlarge | c7i.12xlarge | c7i.16xlarge | c7i.24xlarge | c7i.48xlarge | mac2-m2pro.metal | r7iz.large | r7iz.xlarge | r7iz.2xlarge | r7iz.4xlarge | r7iz.8xlarge | r7iz.12xlarge | r7iz.16xlarge | r7iz.32xlarge | c7a.medium | c7a.large | c7a.xlarge | c7a.2xlarge | c7a.4xlarge | c7a.8xlarge | c7a.12xlarge | c7a.16xlarge | c7a.24xlarge | c7a.32xlarge | c7a.48xlarge | c7a.metal-48xl | r7a.metal-48xl | r7i.large | r7i.xlarge | r7i.2xlarge | r7i.4xlarge | r7i.8xlarge | r7i.12xlarge | r7i.16xlarge | r7i.24xlarge | r7i.48xlarge | dl2q.24xlarge | mac2-m2.metal | i4i.12xlarge | i4i.24xlarge | c7i.metal-24xl | c7i.metal-48xl | m7i.metal-24xl | m7i.metal-48xl | r7i.metal-24xl | r7i.metal-48xl | r7iz.metal-16xl | r7iz.metal-32xl | c7gd.metal | m7gd.metal | r7gd.metal | g6.xlarge | g6.2xlarge | g6.4xlarge | g6.8xlarge | g6.12xlarge | g6.16xlarge | g6.24xlarge | g6.48xlarge | gr6.4xlarge | gr6.8xlarge | c7i-flex.large | c7i-flex.xlarge | c7i-flex.2xlarge | c7i-flex.4xlarge | c7i-flex.8xlarge | u7i-12tb.224xlarge | u7in-16tb.224xlarge | u7in-24tb.224xlarge | u7in-32tb.224xlarge | u7ib-12tb.224xlarge | c7gn.metal | r8g.medium | r8g.large | r8g.xlarge | r8g.2xlarge | r8g.4xlarge | r8g.8xlarge | r8g.12xlarge | r8g.16xlarge | r8g.24xlarge | r8g.48xlarge | r8g.metal-24xl | r8g.metal-48xl | mac2-m1ultra.metal | g6e.xlarge | g6e.2xlarge | g6e.4xlarge | g6e.8xlarge | g6e.12xlarge | g6e.16xlarge | g6e.24xlarge | g6e.48xlarge | c8g.medium | c8g.large | c8g.xlarge | c8g.2xlarge | c8g.4xlarge | c8g.8xlarge | c8g.12xlarge | c8g.16xlarge | c8g.24xlarge | c8g.48xlarge | c8g.metal-24xl | c8g.metal-48xl | m8g.medium | m8g.large | m8g.xlarge | m8g.2xlarge | m8g.4xlarge | m8g.8xlarge | m8g.12xlarge | m8g.16xlarge | m8g.24xlarge | m8g.48xlarge | m8g.metal-24xl | m8g.metal-48xl | x8g.medium | x8g.large | x8g.xlarge | x8g.2xlarge | x8g.4xlarge | x8g.8xlarge | x8g.12xlarge | x8g.16xlarge | x8g.24xlarge | x8g.48xlarge | x8g.metal-24xl | x8g.metal-48xl | i7ie.large | i7ie.xlarge | i7ie.2xlarge | i7ie.3xlarge | i7ie.6xlarge | i7ie.12xlarge | i7ie.18xlarge | i7ie.24xlarge | i7ie.48xlarge | i8g.large | i8g.xlarge | i8g.2xlarge | i8g.4xlarge | i8g.8xlarge | i8g.12xlarge | i8g.16xlarge | i8g.24xlarge | i8g.metal-24xl | u7i-6tb.112xlarge | u7i-8tb.112xlarge | u7inh-32tb.480xlarge | p5e.48xlarge | p5en.48xlarge | f2.12xlarge | f2.48xlarge | trn2.48xlarge | c7i-flex.12xlarge | c7i-flex.16xlarge | m7i-flex.12xlarge | m7i-flex.16xlarge | i7ie.metal-24xl | i7ie.metal-48xl | i8g.48xlarge | c8gd.medium | c8gd.large | c8gd.xlarge | c8gd.2xlarge | c8gd.4xlarge | c8gd.8xlarge | c8gd.12xlarge | c8gd.16xlarge | c8gd.24xlarge | c8gd.48xlarge | c8gd.metal-24xl | c8gd.metal-48xl | i7i.large | i7i.xlarge | i7i.2xlarge | i7i.4xlarge | i7i.8xlarge | i7i.12xlarge | i7i.16xlarge | i7i.24xlarge | i7i.48xlarge | i7i.metal-24xl | i7i.metal-48xl | p6-b200.48xlarge | m8gd.medium | m8gd.large | m8gd.xlarge | m8gd.2xlarge | m8gd.4xlarge | m8gd.8xlarge | m8gd.12xlarge | m8gd.16xlarge | m8gd.24xlarge | m8gd.48xlarge | m8gd.metal-24xl | m8gd.metal-48xl | r8gd.medium | r8gd.large | r8gd.xlarge | r8gd.2xlarge | r8gd.4xlarge | r8gd.8xlarge | r8gd.12xlarge | r8gd.16xlarge | r8gd.24xlarge | r8gd.48xlarge | r8gd.metal-24xl | r8gd.metal-48xl | c8gn.medium | c8gn.large | c8gn.xlarge | c8gn.2xlarge | c8gn.4xlarge | c8gn.8xlarge | c8gn.12xlarge | c8gn.16xlarge | c8gn.24xlarge | c8gn.48xlarge | c8gn.metal-24xl | c8gn.metal-48xl | f2.6xlarge | p6e-gb200.36xlarge | g6f.large | g6f.xlarge | g6f.2xlarge | g6f.4xlarge | gr6f.4xlarge | p5.4xlarge | r8i.large | r8i.xlarge | r8i.2xlarge | r8i.4xlarge | r8i.8xlarge | r8i.12xlarge | r8i.16xlarge | r8i.24xlarge | r8i.32xlarge | r8i.48xlarge | r8i.96xlarge | r8i.metal-48xl | r8i.metal-96xl | r8i-flex.large | r8i-flex.xlarge | r8i-flex.2xlarge | r8i-flex.4xlarge | r8i-flex.8xlarge | r8i-flex.12xlarge | r8i-flex.16xlarge`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`KernelId`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-kernelid"></a>
The ID of the kernel.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`KeyName`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-keyname"></a>
The name of the key pair.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Monitoring`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-monitoring"></a>
Enable or disable monitoring for the instances.  
*Required*: No  
*Type*: [SpotFleetMonitoring](aws-properties-ec2-spotfleet-spotfleetmonitoring.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NetworkInterfaces`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces"></a>
The network interfaces.  
*Required*: No  
*Type*: Array of [InstanceNetworkInterfaceSpecification](aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Placement`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-placement"></a>
The placement information.  
*Required*: No  
*Type*: [SpotPlacement](aws-properties-ec2-spotfleet-spotplacement.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`RamdiskId`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-ramdiskid"></a>
The ID of the RAM disk. Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, refer to the AWS Resource Center and search for the kernel ID.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SecurityGroups`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups"></a>
The security groups.  
If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter.  
*Required*: No  
*Type*: Array of [GroupIdentifier](aws-properties-ec2-spotfleet-groupidentifier.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SpotPrice`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-spotprice"></a>
The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.  
If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SubnetId`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid"></a>
The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2".  
If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TagSpecifications`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-tagspecifications"></a>
The tags to apply during creation.  
*Required*: No  
*Type*: Array of [SpotFleetTagSpecification](aws-properties-ec2-spotfleet-spotfleettagspecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`UserData`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-userdata"></a>
The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`WeightedCapacity`  <a name="cfn-ec2-spotfleet-spotfleetlaunchspecification-weightedcapacity"></a>
The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O.  
If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1.  
When specifying weights, the price used in the `lowestPrice` and `priceCapacityOptimized` allocation strategies is per *unit* hour (where the instance price is divided by the specified weight). However, if all the specified weights are above the requested `TargetCapacity`, resulting in only 1 instance being launched, the price used is per *instance* hour.
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet SpotFleetMonitoring
<a name="aws-properties-ec2-spotfleet-spotfleetmonitoring"></a>

Describes whether monitoring is enabled.

## Syntax
<a name="aws-properties-ec2-spotfleet-spotfleetmonitoring-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-spotfleetmonitoring-syntax.json"></a>

```
{
  "[Enabled](#cfn-ec2-spotfleet-spotfleetmonitoring-enabled)" : Boolean
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-spotfleetmonitoring-syntax.yaml"></a>

```
  [Enabled](#cfn-ec2-spotfleet-spotfleetmonitoring-enabled): Boolean
```

## Properties
<a name="aws-properties-ec2-spotfleet-spotfleetmonitoring-properties"></a>

`Enabled`  <a name="cfn-ec2-spotfleet-spotfleetmonitoring-enabled"></a>
Enables monitoring for the instance.  
Default: `false`  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet SpotFleetRequestConfigData
<a name="aws-properties-ec2-spotfleet-spotfleetrequestconfigdata"></a>

Specifies the configuration of a Spot Fleet request. For more information, see [Spot Fleet ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html) in the *Amazon EC2 User Guide*.

You must specify either `LaunchSpecifications` or `LaunchTemplateConfigs`.

## Syntax
<a name="aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-syntax.json"></a>

```
{
  "[AllocationStrategy](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-allocationstrategy)" : String,
  "[Context](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-context)" : String,
  "[ExcessCapacityTerminationPolicy](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-excesscapacityterminationpolicy)" : String,
  "[IamFleetRole](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-iamfleetrole)" : String,
  "[InstanceInterruptionBehavior](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-instanceinterruptionbehavior)" : String,
  "[InstancePoolsToUseCount](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-instancepoolstousecount)" : Integer,
  "[LaunchSpecifications](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications)" : [ SpotFleetLaunchSpecification, ... ],
  "[LaunchTemplateConfigs](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchtemplateconfigs)" : [ LaunchTemplateConfig, ... ],
  "[LoadBalancersConfig](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-loadbalancersconfig)" : LoadBalancersConfig,
  "[OnDemandAllocationStrategy](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandallocationstrategy)" : String,
  "[OnDemandMaxTotalPrice](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandmaxtotalprice)" : String,
  "[OnDemandTargetCapacity](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandtargetcapacity)" : Integer,
  "[ReplaceUnhealthyInstances](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-replaceunhealthyinstances)" : Boolean,
  "[SpotMaintenanceStrategies](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaintenancestrategies)" : SpotMaintenanceStrategies,
  "[SpotMaxTotalPrice](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaxtotalprice)" : String,
  "[SpotPrice](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotprice)" : String,
  "[TagSpecifications](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-tagspecifications)" : [ SpotFleetTagSpecification, ... ],
  "[TargetCapacity](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacity)" : Integer,
  "[TargetCapacityUnitType](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacityunittype)" : String,
  "[TerminateInstancesWithExpiration](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-terminateinstanceswithexpiration)" : Boolean,
  "[Type](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-type)" : String,
  "[ValidFrom](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-validfrom)" : String,
  "[ValidUntil](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-validuntil)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-syntax.yaml"></a>

```
  [AllocationStrategy](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-allocationstrategy): String
  [Context](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-context): String
  [ExcessCapacityTerminationPolicy](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-excesscapacityterminationpolicy): String
  [IamFleetRole](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-iamfleetrole): String
  [InstanceInterruptionBehavior](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-instanceinterruptionbehavior): String
  [InstancePoolsToUseCount](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-instancepoolstousecount): Integer
  [LaunchSpecifications](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications): 
    - SpotFleetLaunchSpecification
  [LaunchTemplateConfigs](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchtemplateconfigs): 
    - LaunchTemplateConfig
  [LoadBalancersConfig](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-loadbalancersconfig): 
    LoadBalancersConfig
  [OnDemandAllocationStrategy](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandallocationstrategy): String
  [OnDemandMaxTotalPrice](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandmaxtotalprice): String
  [OnDemandTargetCapacity](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandtargetcapacity): Integer
  [ReplaceUnhealthyInstances](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-replaceunhealthyinstances): Boolean
  [SpotMaintenanceStrategies](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaintenancestrategies): 
    SpotMaintenanceStrategies
  [SpotMaxTotalPrice](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaxtotalprice): String
  [SpotPrice](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotprice): String
  [TagSpecifications](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-tagspecifications): 
    - SpotFleetTagSpecification
  [TargetCapacity](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacity): Integer
  [TargetCapacityUnitType](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacityunittype): String
  [TerminateInstancesWithExpiration](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-terminateinstanceswithexpiration): Boolean
  [Type](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-type): String
  [ValidFrom](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-validfrom): String
  [ValidUntil](#cfn-ec2-spotfleet-spotfleetrequestconfigdata-validuntil): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-spotfleetrequestconfigdata-properties"></a>

`AllocationStrategy`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-allocationstrategy"></a>
The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the Spot Fleet launch configuration. For more information, see [Allocation strategies for Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-allocation-strategy.html) in the *Amazon EC2 User Guide*.    
priceCapacityOptimized (recommended)  
Spot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term. Spot Fleet then requests Spot Instances from the lowest priced of these pools.  
capacityOptimized  
Spot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term. To give certain instance types a higher chance of launching first, use `capacityOptimizedPrioritized`. Set a priority for each instance type by using the `Priority` parameter for `LaunchTemplateOverrides`. You can assign the same priority to different `LaunchTemplateOverrides`. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. `capacityOptimizedPrioritized` is supported only if your Spot Fleet uses a launch template. Note that if the `OnDemandAllocationStrategy` is set to `prioritized`, the same priority is applied when fulfilling On-Demand capacity.  
diversified  
Spot Fleet requests instances from all of the Spot Instance pools that you specify.  
lowestPrice (not recommended)  
We don't recommend the `lowestPrice` allocation strategy because it has the highest risk of interruption for your Spot Instances.
Spot Fleet requests instances from the lowest priced Spot Instance pool that has available capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances come from the next lowest priced pool that has available capacity. If a pool runs out of capacity before fulfilling your desired capacity, Spot Fleet will continue to fulfill your request by drawing from the next lowest priced pool. To ensure that your desired capacity is met, you might receive Spot Instances from several pools. Because this strategy only considers instance price and not capacity availability, it might lead to high interruption rates.
Default: `lowestPrice`  
*Required*: No  
*Type*: String  
*Allowed values*: `capacityOptimized | capacityOptimizedPrioritized | diversified | lowestPrice | priceCapacityOptimized`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Context`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-context"></a>
Reserved.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ExcessCapacityTerminationPolicy`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-excesscapacityterminationpolicy"></a>
Indicates whether running Spot Instances should be terminated if you decrease the target capacity of the Spot Fleet request below the current size of the Spot Fleet.  
Supported only for fleets of type `maintain`.  
*Required*: No  
*Type*: String  
*Allowed values*: `Default | NoTermination | default | noTermination`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IamFleetRole`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-iamfleetrole"></a>
The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf. For more information, see [Spot Fleet Prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites) in the *Amazon EC2 User Guide*. Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot Fleet request or when the Spot Fleet request expires, if you set `TerminateInstancesWithExpiration`.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstanceInterruptionBehavior`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-instanceinterruptionbehavior"></a>
The behavior when a Spot Instance is interrupted. The default is `terminate`.  
*Required*: No  
*Type*: String  
*Allowed values*: `hibernate | stop | terminate`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`InstancePoolsToUseCount`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-instancepoolstousecount"></a>
The number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot **AllocationStrategy** is set to `lowest-price`. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.  
Note that Spot Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis. If a pool runs out of Spot capacity before fulfilling your target capacity, Spot Fleet will continue to fulfill your request by drawing from the next cheapest pool. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`LaunchSpecifications`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications"></a>
The launch specifications for the Spot Fleet request. If you specify `LaunchSpecifications`, you can't specify `LaunchTemplateConfigs`.  
*Required*: Conditional  
*Type*: Array of [SpotFleetLaunchSpecification](aws-properties-ec2-spotfleet-spotfleetlaunchspecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`LaunchTemplateConfigs`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchtemplateconfigs"></a>
The launch template and overrides. If you specify `LaunchTemplateConfigs`, you can't specify `LaunchSpecifications`.  
*Required*: Conditional  
*Type*: Array of [LaunchTemplateConfig](aws-properties-ec2-spotfleet-launchtemplateconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`LoadBalancersConfig`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-loadbalancersconfig"></a>
One or more Classic Load Balancers and target groups to attach to the Spot Fleet request. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups.  
With Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1.  
*Required*: No  
*Type*: [LoadBalancersConfig](aws-properties-ec2-spotfleet-loadbalancersconfig.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OnDemandAllocationStrategy`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandallocationstrategy"></a>
The order of the launch template overrides to use in fulfilling On-Demand capacity. If you specify `lowestPrice`, Spot Fleet uses price to determine the order, launching the lowest price first. If you specify `prioritized`, Spot Fleet uses the priority that you assign to each Spot Fleet launch template override, launching the highest priority first. If you do not specify a value, Spot Fleet defaults to `lowestPrice`.  
*Required*: No  
*Type*: String  
*Allowed values*: `lowestPrice | prioritized`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OnDemandMaxTotalPrice`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandmaxtotalprice"></a>
The maximum amount per hour for On-Demand Instances that you're willing to pay. You can use the `onDemandMaxTotalPrice` parameter, the `spotMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.  
If your fleet includes T instances that are configured as `unlimited`, and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The `onDemandMaxTotalPrice` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for `onDemandMaxTotalPrice`. For more information, see [Surplus credits can incur charges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits) in the *Amazon EC2 User Guide*.
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OnDemandTargetCapacity`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandtargetcapacity"></a>
The number of On-Demand units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is `maintain`, you can specify a target capacity of 0 and add capacity later.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ReplaceUnhealthyInstances`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-replaceunhealthyinstances"></a>
Indicates whether Spot Fleet should replace unhealthy instances.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SpotMaintenanceStrategies`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaintenancestrategies"></a>
The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.  
*Required*: No  
*Type*: [SpotMaintenanceStrategies](aws-properties-ec2-spotfleet-spotmaintenancestrategies.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SpotMaxTotalPrice`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaxtotalprice"></a>
The maximum amount per hour for Spot Instances that you're willing to pay. You can use the `spotMaxTotalPrice` parameter, the `onDemandMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.  
If your fleet includes T instances that are configured as `unlimited`, and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The `spotMaxTotalPrice` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for `spotMaxTotalPrice`. For more information, see [Surplus credits can incur charges](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits) in the *Amazon EC2 User Guide*.
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SpotPrice`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotprice"></a>
The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.  
If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TagSpecifications`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-tagspecifications"></a>
The key-value pair for tagging the Spot Fleet request on creation. The value for `ResourceType` must be `spot-fleet-request`, otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) (valid only if you use `LaunchTemplateConfigs`) or in the ` [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html) ` (valid only if you use `LaunchSpecifications`). For information about tagging after launch, see [Tag your resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources).  
*Required*: No  
*Type*: Array of [SpotFleetTagSpecification](aws-properties-ec2-spotfleet-spotfleettagspecification.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TargetCapacity`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacity"></a>
The number of units to request for the Spot Fleet. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is `maintain`, you can specify a target capacity of 0 and add capacity later.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetCapacityUnitType`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacityunittype"></a>
The unit for the target capacity. You can specify this parameter only when using attribute-based instance type selection.  
Default: `units` (the number of instances)  
*Required*: No  
*Type*: String  
*Allowed values*: `vcpu | memory-mib | units`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TerminateInstancesWithExpiration`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-terminateinstanceswithexpiration"></a>
Indicates whether running Spot Instances are terminated when the Spot Fleet request expires.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Type`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-type"></a>
The type of request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. When this value is `request`, the Spot Fleet only places the required requests. It does not attempt to replenish Spot Instances if capacity is diminished, nor does it submit requests in alternative Spot pools if capacity is not available. When this value is `maintain`, the Spot Fleet maintains the target capacity. The Spot Fleet places the required requests to meet capacity and automatically replenishes any interrupted instances. Default: `maintain`. `instant` is listed but is not used by Spot Fleet.  
*Required*: No  
*Type*: String  
*Allowed values*: `maintain | request`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ValidFrom`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-validfrom"></a>
The start date and time of the request, in UTC format (*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). By default, Amazon EC2 starts fulfilling the request immediately.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`ValidUntil`  <a name="cfn-ec2-spotfleet-spotfleetrequestconfigdata-validuntil"></a>
The end date and time of the request, in UTC format (*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z). After the end date and time, no new Spot Instance requests are placed or able to fulfill the request. If no value is specified, the Spot Fleet request remains until you cancel it.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet SpotFleetTagSpecification
<a name="aws-properties-ec2-spotfleet-spotfleettagspecification"></a>

The tags for a Spot Fleet resource.

## Syntax
<a name="aws-properties-ec2-spotfleet-spotfleettagspecification-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-spotfleettagspecification-syntax.json"></a>

```
{
  "[ResourceType](#cfn-ec2-spotfleet-spotfleettagspecification-resourcetype)" : String,
  "[Tags](#cfn-ec2-spotfleet-spotfleettagspecification-tags)" : [ Tag, ... ]
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-spotfleettagspecification-syntax.yaml"></a>

```
  [ResourceType](#cfn-ec2-spotfleet-spotfleettagspecification-resourcetype): String
  [Tags](#cfn-ec2-spotfleet-spotfleettagspecification-tags): 
    - Tag
```

## Properties
<a name="aws-properties-ec2-spotfleet-spotfleettagspecification-properties"></a>

`ResourceType`  <a name="cfn-ec2-spotfleet-spotfleettagspecification-resourcetype"></a>
The type of resource. Currently, the only resource type that is supported is `instance`. To tag the Spot Fleet request on creation, use the `TagSpecifications` parameter in ` [SpotFleetRequestConfigData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetRequestConfigData.html) `.  
*Required*: No  
*Type*: String  
*Allowed values*: `client-vpn-endpoint | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | internet-gateway | key-pair | launch-template | local-gateway-route-table-vpc-association | natgateway | network-acl | network-insights-analysis | network-insights-path | network-interface | placement-group | reserved-instances | route-table | security-group | snapshot | spot-fleet-request | spot-instances-request | subnet | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-route-table | volume | vpc | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-gateway`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-ec2-spotfleet-spotfleettagspecification-tags"></a>
The tags.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-ec2-spotfleet-tag.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet SpotMaintenanceStrategies
<a name="aws-properties-ec2-spotfleet-spotmaintenancestrategies"></a>

The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.

## Syntax
<a name="aws-properties-ec2-spotfleet-spotmaintenancestrategies-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-spotmaintenancestrategies-syntax.json"></a>

```
{
  "[CapacityRebalance](#cfn-ec2-spotfleet-spotmaintenancestrategies-capacityrebalance)" : SpotCapacityRebalance
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-spotmaintenancestrategies-syntax.yaml"></a>

```
  [CapacityRebalance](#cfn-ec2-spotfleet-spotmaintenancestrategies-capacityrebalance): 
    SpotCapacityRebalance
```

## Properties
<a name="aws-properties-ec2-spotfleet-spotmaintenancestrategies-properties"></a>

`CapacityRebalance`  <a name="cfn-ec2-spotfleet-spotmaintenancestrategies-capacityrebalance"></a>
The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted. For more information, see [Capacity rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) in the *Amazon EC2 User Guide*.  
*Required*: No  
*Type*: [SpotCapacityRebalance](aws-properties-ec2-spotfleet-spotcapacityrebalance.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet SpotPlacement
<a name="aws-properties-ec2-spotfleet-spotplacement"></a>

Describes Spot Instance placement.

## Syntax
<a name="aws-properties-ec2-spotfleet-spotplacement-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-spotplacement-syntax.json"></a>

```
{
  "[AvailabilityZone](#cfn-ec2-spotfleet-spotplacement-availabilityzone)" : String,
  "[AvailabilityZoneId](#cfn-ec2-spotfleet-spotplacement-availabilityzoneid)" : String,
  "[GroupName](#cfn-ec2-spotfleet-spotplacement-groupname)" : String,
  "[Tenancy](#cfn-ec2-spotfleet-spotplacement-tenancy)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-spotplacement-syntax.yaml"></a>

```
  [AvailabilityZone](#cfn-ec2-spotfleet-spotplacement-availabilityzone): String
  [AvailabilityZoneId](#cfn-ec2-spotfleet-spotplacement-availabilityzoneid): String
  [GroupName](#cfn-ec2-spotfleet-spotplacement-groupname): String
  [Tenancy](#cfn-ec2-spotfleet-spotplacement-tenancy): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-spotplacement-properties"></a>

`AvailabilityZone`  <a name="cfn-ec2-spotfleet-spotplacement-availabilityzone"></a>
The Availability Zone.  
To specify multiple Availability Zones, separate them using commas; for example, "us-west-2a, us-west-2b".  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`AvailabilityZoneId`  <a name="cfn-ec2-spotfleet-spotplacement-availabilityzoneid"></a>
The ID of the Availability Zone. For example, `use2-az1`.  
[Spot Fleet only] To specify multiple Availability Zones, separate them using commas; for example, "`use2-az1`, `use2-bz1`".  
Either `AvailabilityZone` or `AvailabilityZoneId` must be specified in the request, but not both.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`GroupName`  <a name="cfn-ec2-spotfleet-spotplacement-groupname"></a>
The name of the placement group.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tenancy`  <a name="cfn-ec2-spotfleet-spotplacement-tenancy"></a>
The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of `dedicated` runs on single-tenant hardware. The `host` tenancy is not supported for Spot Instances.  
*Required*: No  
*Type*: String  
*Allowed values*: `dedicated | default | host`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet Tag
<a name="aws-properties-ec2-spotfleet-tag"></a>

Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).

## Syntax
<a name="aws-properties-ec2-spotfleet-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-tag-syntax.json"></a>

```
{
  "[Key](#cfn-ec2-spotfleet-tag-key)" : String,
  "[Value](#cfn-ec2-spotfleet-tag-value)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-tag-syntax.yaml"></a>

```
  [Key](#cfn-ec2-spotfleet-tag-key): String
  [Value](#cfn-ec2-spotfleet-tag-value): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-tag-properties"></a>

`Key`  <a name="cfn-ec2-spotfleet-tag-key"></a>
The tag key.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-ec2-spotfleet-tag-value"></a>
The tag value.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Examples
<a name="aws-properties-ec2-spotfleet-tag--examples"></a>

### 
<a name="aws-properties-ec2-spotfleet-tag--examples--"></a>

This example specifies two tags for the Spot Fleet.

#### JSON
<a name="aws-properties-ec2-spotfleet-tag--examples----json"></a>

```
"Tags" : [
   {
      "Key" : "key1",
      "Value" : "value1"
   },
   {
      "Key" : "key2",
      "Value" : "value2"
   }
]
```

#### YAML
<a name="aws-properties-ec2-spotfleet-tag--examples----yaml"></a>

```
Tags: 
  - Key: "key1"
    Value: "value1"
  - Key: "key2"
    Value: "value2"
```

# AWS::EC2::SpotFleet TargetGroup
<a name="aws-properties-ec2-spotfleet-targetgroup"></a>

Describes a load balancer target group.

## Syntax
<a name="aws-properties-ec2-spotfleet-targetgroup-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-targetgroup-syntax.json"></a>

```
{
  "[Arn](#cfn-ec2-spotfleet-targetgroup-arn)" : String
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-targetgroup-syntax.yaml"></a>

```
  [Arn](#cfn-ec2-spotfleet-targetgroup-arn): String
```

## Properties
<a name="aws-properties-ec2-spotfleet-targetgroup-properties"></a>

`Arn`  <a name="cfn-ec2-spotfleet-targetgroup-arn"></a>
The Amazon Resource Name (ARN) of the target group.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet TargetGroupsConfig
<a name="aws-properties-ec2-spotfleet-targetgroupsconfig"></a>

Describes the target groups to attach to a Spot Fleet. Spot Fleet registers the running Spot Instances with these target groups.

## Syntax
<a name="aws-properties-ec2-spotfleet-targetgroupsconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-targetgroupsconfig-syntax.json"></a>

```
{
  "[TargetGroups](#cfn-ec2-spotfleet-targetgroupsconfig-targetgroups)" : [ TargetGroup, ... ]
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-targetgroupsconfig-syntax.yaml"></a>

```
  [TargetGroups](#cfn-ec2-spotfleet-targetgroupsconfig-targetgroups): 
    - TargetGroup
```

## Properties
<a name="aws-properties-ec2-spotfleet-targetgroupsconfig-properties"></a>

`TargetGroups`  <a name="cfn-ec2-spotfleet-targetgroupsconfig-targetgroups"></a>
One or more target groups.  
*Required*: Yes  
*Type*: Array of [TargetGroup](aws-properties-ec2-spotfleet-targetgroup.md)  
*Minimum*: `1`  
*Maximum*: `5`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet TotalLocalStorageGBRequest
<a name="aws-properties-ec2-spotfleet-totallocalstoragegbrequest"></a>

The minimum and maximum amount of total local storage, in GB.

## Syntax
<a name="aws-properties-ec2-spotfleet-totallocalstoragegbrequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-totallocalstoragegbrequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-totallocalstoragegbrequest-max)" : Number,
  "[Min](#cfn-ec2-spotfleet-totallocalstoragegbrequest-min)" : Number
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-totallocalstoragegbrequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-totallocalstoragegbrequest-max): Number
  [Min](#cfn-ec2-spotfleet-totallocalstoragegbrequest-min): Number
```

## Properties
<a name="aws-properties-ec2-spotfleet-totallocalstoragegbrequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-totallocalstoragegbrequest-max"></a>
The maximum amount of total local storage, in GB. To specify no maximum limit, omit this parameter.  
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-totallocalstoragegbrequest-min"></a>
The minimum amount of total local storage, in GB. To specify no minimum limit, omit this parameter.  
*Required*: No  
*Type*: Number  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::EC2::SpotFleet VCpuCountRangeRequest
<a name="aws-properties-ec2-spotfleet-vcpucountrangerequest"></a>

The minimum and maximum number of vCPUs.

## Syntax
<a name="aws-properties-ec2-spotfleet-vcpucountrangerequest-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ec2-spotfleet-vcpucountrangerequest-syntax.json"></a>

```
{
  "[Max](#cfn-ec2-spotfleet-vcpucountrangerequest-max)" : Integer,
  "[Min](#cfn-ec2-spotfleet-vcpucountrangerequest-min)" : Integer
}
```

### YAML
<a name="aws-properties-ec2-spotfleet-vcpucountrangerequest-syntax.yaml"></a>

```
  [Max](#cfn-ec2-spotfleet-vcpucountrangerequest-max): Integer
  [Min](#cfn-ec2-spotfleet-vcpucountrangerequest-min): Integer
```

## Properties
<a name="aws-properties-ec2-spotfleet-vcpucountrangerequest-properties"></a>

`Max`  <a name="cfn-ec2-spotfleet-vcpucountrangerequest-max"></a>
The maximum number of vCPUs. To specify no maximum limit, omit this parameter.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Min`  <a name="cfn-ec2-spotfleet-vcpucountrangerequest-min"></a>
The minimum number of vCPUs. To specify no minimum limit, specify `0`.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)