CfnEC2FleetProps Struct
Properties for defining a CfnEC2Fleet.
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_ec2 as ec2 } from 'aws-cdk-lib';
const cfnEC2FleetProps: ec2.CfnEC2FleetProps = {
launchTemplateConfigs: [{
launchTemplateSpecification: {
version: 'version',
// the properties below are optional
launchTemplateId: 'launchTemplateId',
launchTemplateName: 'launchTemplateName',
launchTemplateSpecificationUserData: 'launchTemplateSpecificationUserData',
},
overrides: [{
availabilityZone: 'availabilityZone',
availabilityZoneId: 'availabilityZoneId',
blockDeviceMappings: [{
deviceName: 'deviceName',
ebs: {
deleteOnTermination: false,
encrypted: false,
iops: 123,
kmsKeyId: 'kmsKeyId',
multiAvailabilityZoneConfiguration: {
configurationType: 'configurationType',
standbyAvailabilityZones: [{
availabilityZone: 'availabilityZone',
availabilityZoneId: 'availabilityZoneId',
}],
},
snapshotId: 'snapshotId',
volumeSize: 123,
volumeType: 'volumeType',
},
noDevice: 'noDevice',
virtualName: 'virtualName',
}],
iamInstanceProfile: {
arn: 'arn',
name: 'name',
},
instanceRequirements: {
acceleratorCount: {
max: 123,
min: 123,
},
acceleratorManufacturers: ['acceleratorManufacturers'],
acceleratorNames: ['acceleratorNames'],
acceleratorTotalMemoryMiB: {
max: 123,
min: 123,
},
acceleratorTypes: ['acceleratorTypes'],
allowedInstanceTypes: ['allowedInstanceTypes'],
bareMetal: 'bareMetal',
baselineEbsBandwidthMbps: {
max: 123,
min: 123,
},
baselinePerformanceFactors: {
cpu: {
references: [{
instanceFamily: 'instanceFamily',
}],
},
},
burstablePerformance: 'burstablePerformance',
cpuManufacturers: ['cpuManufacturers'],
excludedInstanceTypes: ['excludedInstanceTypes'],
instanceGenerations: ['instanceGenerations'],
localStorage: 'localStorage',
localStorageTypes: ['localStorageTypes'],
maxSpotPriceAsPercentageOfOptimalOnDemandPrice: 123,
memoryGiBPerVCpu: {
max: 123,
min: 123,
},
memoryMiB: {
max: 123,
min: 123,
},
networkBandwidthGbps: {
max: 123,
min: 123,
},
networkInterfaceCount: {
max: 123,
min: 123,
},
onDemandMaxPricePercentageOverLowestPrice: 123,
requireEncryptionInTransit: false,
requireHibernateSupport: false,
spotMaxPricePercentageOverLowestPrice: 123,
totalLocalStorageGb: {
max: 123,
min: 123,
},
vCpuCount: {
max: 123,
min: 123,
},
},
instanceType: 'instanceType',
keyName: 'keyName',
maxPrice: 'maxPrice',
metadataOptions: {
httpEndpoint: 'httpEndpoint',
httpPutResponseHopLimit: 123,
httpTokens: 'httpTokens',
},
networkInterfaces: [{
associatePublicIpAddress: false,
deleteOnTermination: false,
description: 'description',
deviceIndex: 123,
groups: ['groups'],
interfaceType: 'interfaceType',
ipv6AddressCount: 123,
ipv6Addresses: [{
ipv6Address: 'ipv6Address',
}],
networkCardIndex: 123,
networkInterfaceId: 'networkInterfaceId',
privateIpAddress: 'privateIpAddress',
privateIpAddresses: [{
primary: false,
privateIpAddress: 'privateIpAddress',
}],
secondaryPrivateIpAddressCount: 123,
subnetId: 'subnetId',
}],
placement: {
affinity: 'affinity',
availabilityZone: 'availabilityZone',
groupName: 'groupName',
hostId: 'hostId',
hostResourceGroupArn: 'hostResourceGroupArn',
partitionNumber: 123,
spreadDomain: 'spreadDomain',
tenancy: 'tenancy',
},
priority: 123,
subnetId: 'subnetId',
weightedCapacity: 123,
}],
}],
targetCapacitySpecification: {
totalTargetCapacity: 123,
// the properties below are optional
defaultTargetCapacityType: 'defaultTargetCapacityType',
onDemandTargetCapacity: 123,
spotTargetCapacity: 123,
targetCapacityUnitType: 'targetCapacityUnitType',
},
// the properties below are optional
context: 'context',
excessCapacityTerminationPolicy: 'excessCapacityTerminationPolicy',
onDemandOptions: {
allocationStrategy: 'allocationStrategy',
capacityReservationOptions: {
usageStrategy: 'usageStrategy',
},
maxTotalPrice: 'maxTotalPrice',
minTargetCapacity: 123,
singleAvailabilityZone: false,
singleInstanceType: false,
},
replaceUnhealthyInstances: false,
reservedCapacityOptions: {
allocationStrategy: 'allocationStrategy',
capacityReservationTarget: {
capacityReservationIds: ['capacityReservationIds'],
capacityReservationResourceGroupArns: ['capacityReservationResourceGroupArns'],
},
reservationTypes: ['reservationTypes'],
reservedCapacityFallbackOptions: {
marketTypes: ['marketTypes'],
},
},
spotOptions: {
allocationStrategy: 'allocationStrategy',
instanceInterruptionBehavior: 'instanceInterruptionBehavior',
instancePoolsToUseCount: 123,
maintenanceStrategies: {
capacityRebalance: {
replacementStrategy: 'replacementStrategy',
terminationDelay: 123,
},
},
maxTotalPrice: 'maxTotalPrice',
minTargetCapacity: 123,
singleAvailabilityZone: false,
singleInstanceType: false,
},
tagSpecifications: [{
resourceType: 'resourceType',
tags: [{
key: 'key',
value: 'value',
}],
}],
terminateInstancesWithExpiration: false,
type: 'type',
validFrom: 'validFrom',
validUntil: 'validUntil',
};
Properties
excessCapacityTerminationPolicystringexcess_capacity_termination_policystrexcessCapacityTerminationPolicyStringExcessCapacityTerminationPolicystringExcessCapacityTerminationPolicy*string#Supported only for fleets of type maintain .
launchTemplateConfigsIResolvable | IResolvable | CfnEC2Fleet.FleetLaunchTemplateConfigRequestProperty[]launch_template_configstyping.Union[IResolvable, typing.List[typing.Union[IResolvable, FleetLaunchTemplateConfigRequestProperty]]]launchTemplateConfigsIResolvableLaunchTemplateConfigsIResolvableLaunchTemplateConfigsinterface{}required#onDemandOptionsIResolvable | CfnEC2Fleet.OnDemandOptionsRequestPropertyon_demand_optionstyping.Union[IResolvable, OnDemandOptionsRequestProperty]onDemandOptionsIResolvableOnDemandOptionsIResolvableOnDemandOptionsinterface{}#replaceUnhealthyInstancesboolean | IResolvablereplace_unhealthy_instancestyping.Union[bool, IResolvable]replaceUnhealthyInstancesBooleanReplaceUnhealthyInstancesboolReplaceUnhealthyInstancesinterface{}#Supported only for fleets of type maintain . For more information, see EC2 Fleet health checks in the Amazon EC2 User Guide .
reservedCapacityOptionsIResolvable | CfnEC2Fleet.ReservedCapacityOptionsRequestPropertyreserved_capacity_optionstyping.Union[IResolvable, ReservedCapacityOptionsRequestProperty]reservedCapacityOptionsIResolvableReservedCapacityOptionsIResolvableReservedCapacityOptionsinterface{}#spotOptionsIResolvable | CfnEC2Fleet.SpotOptionsRequestPropertyspot_optionstyping.Union[IResolvable, SpotOptionsRequestProperty]spotOptionsIResolvableSpotOptionsIResolvableSpotOptionsinterface{}#tagSpecificationsIResolvable | IResolvable | CfnEC2Fleet.TagSpecificationProperty[]tag_specificationstyping.Union[IResolvable, typing.List[typing.Union[IResolvable, TagSpecificationProperty]]]tagSpecificationsIResolvableTagSpecificationsIResolvableTagSpecificationsinterface{}#notes
If the fleet type is instant , specify a resource type of fleet to tag the fleet or instance to tag the instances at launch.
If the fleet type is maintain or request , specify a resource type of fleet to tag the fleet. You cannot specify a resource type of instance . To tag instances at launch, specify the tags in a launch template .
targetCapacitySpecificationIResolvable | CfnEC2Fleet.TargetCapacitySpecificationRequestPropertytarget_capacity_specificationtyping.Union[IResolvable, TargetCapacitySpecificationRequestProperty]targetCapacitySpecificationIResolvableTargetCapacitySpecificationIResolvableTargetCapacitySpecificationinterface{}required#terminateInstancesWithExpirationboolean | IResolvableterminate_instances_with_expirationtyping.Union[bool, IResolvable]terminateInstancesWithExpirationBooleanTerminateInstancesWithExpirationboolTerminateInstancesWithExpirationinterface{}#notes
maintain- The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances.request- The EC2 Fleet places an asynchronous one-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted.instant- The EC2 Fleet places a synchronous one-time request for your desired capacity, and returns errors for any instances that could not be launched.
For more information, see EC2 Fleet request types in the Amazon EC2 User Guide .
The default is to start fulfilling the request immediately.
At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.