Class CfnEC2Fleet
- All Implemented Interfaces:
IInspectable,IEC2FleetRef,software.amazon.jsii.JsiiSerializable,software.constructs.IConstruct,software.constructs.IDependable
An EC2 Fleet can launch multiple instance types across multiple Availability Zones, using the On-Demand Instance, Reserved Instance, and Spot Instance purchasing models together. Using EC2 Fleet, you can define separate On-Demand and Spot capacity targets, specify the instance types that work best for your applications, and specify how Amazon EC2 should distribute your fleet capacity within each purchasing model. For more information, see Launching an EC2 Fleet in the Amazon EC2 User Guide .
Example:
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.ec2.*;
CfnEC2Fleet cfnEC2Fleet = CfnEC2Fleet.Builder.create(this, "MyCfnEC2Fleet")
.launchTemplateConfigs(List.of(FleetLaunchTemplateConfigRequestProperty.builder()
.launchTemplateSpecification(FleetLaunchTemplateSpecificationRequestProperty.builder()
.version("version")
// the properties below are optional
.launchTemplateId("launchTemplateId")
.launchTemplateName("launchTemplateName")
.build())
.overrides(List.of(FleetLaunchTemplateOverridesRequestProperty.builder()
.availabilityZone("availabilityZone")
.blockDeviceMappings(List.of(BlockDeviceMappingProperty.builder()
.deviceName("deviceName")
.ebs(EbsBlockDeviceProperty.builder()
.deleteOnTermination(false)
.encrypted(false)
.iops(123)
.kmsKeyId("kmsKeyId")
.snapshotId("snapshotId")
.volumeSize(123)
.volumeType("volumeType")
.build())
.noDevice("noDevice")
.virtualName("virtualName")
.build()))
.instanceRequirements(InstanceRequirementsRequestProperty.builder()
.acceleratorCount(AcceleratorCountRequestProperty.builder()
.max(123)
.min(123)
.build())
.acceleratorManufacturers(List.of("acceleratorManufacturers"))
.acceleratorNames(List.of("acceleratorNames"))
.acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRequestProperty.builder()
.max(123)
.min(123)
.build())
.acceleratorTypes(List.of("acceleratorTypes"))
.allowedInstanceTypes(List.of("allowedInstanceTypes"))
.bareMetal("bareMetal")
.baselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsRequestProperty.builder()
.max(123)
.min(123)
.build())
.baselinePerformanceFactors(BaselinePerformanceFactorsRequestProperty.builder()
.cpu(CpuPerformanceFactorRequestProperty.builder()
.references(List.of(PerformanceFactorReferenceRequestProperty.builder()
.instanceFamily("instanceFamily")
.build()))
.build())
.build())
.burstablePerformance("burstablePerformance")
.cpuManufacturers(List.of("cpuManufacturers"))
.excludedInstanceTypes(List.of("excludedInstanceTypes"))
.instanceGenerations(List.of("instanceGenerations"))
.localStorage("localStorage")
.localStorageTypes(List.of("localStorageTypes"))
.maxSpotPriceAsPercentageOfOptimalOnDemandPrice(123)
.memoryGiBPerVCpu(MemoryGiBPerVCpuRequestProperty.builder()
.max(123)
.min(123)
.build())
.memoryMiB(MemoryMiBRequestProperty.builder()
.max(123)
.min(123)
.build())
.networkBandwidthGbps(NetworkBandwidthGbpsRequestProperty.builder()
.max(123)
.min(123)
.build())
.networkInterfaceCount(NetworkInterfaceCountRequestProperty.builder()
.max(123)
.min(123)
.build())
.onDemandMaxPricePercentageOverLowestPrice(123)
.requireHibernateSupport(false)
.spotMaxPricePercentageOverLowestPrice(123)
.totalLocalStorageGb(TotalLocalStorageGBRequestProperty.builder()
.max(123)
.min(123)
.build())
.vCpuCount(VCpuCountRangeRequestProperty.builder()
.max(123)
.min(123)
.build())
.build())
.instanceType("instanceType")
.maxPrice("maxPrice")
.placement(PlacementProperty.builder()
.affinity("affinity")
.availabilityZone("availabilityZone")
.groupName("groupName")
.hostId("hostId")
.hostResourceGroupArn("hostResourceGroupArn")
.partitionNumber(123)
.spreadDomain("spreadDomain")
.tenancy("tenancy")
.build())
.priority(123)
.subnetId("subnetId")
.weightedCapacity(123)
.build()))
.build()))
.targetCapacitySpecification(TargetCapacitySpecificationRequestProperty.builder()
.totalTargetCapacity(123)
// the properties below are optional
.defaultTargetCapacityType("defaultTargetCapacityType")
.onDemandTargetCapacity(123)
.spotTargetCapacity(123)
.targetCapacityUnitType("targetCapacityUnitType")
.build())
// the properties below are optional
.context("context")
.excessCapacityTerminationPolicy("excessCapacityTerminationPolicy")
.onDemandOptions(OnDemandOptionsRequestProperty.builder()
.allocationStrategy("allocationStrategy")
.capacityReservationOptions(CapacityReservationOptionsRequestProperty.builder()
.usageStrategy("usageStrategy")
.build())
.maxTotalPrice("maxTotalPrice")
.minTargetCapacity(123)
.singleAvailabilityZone(false)
.singleInstanceType(false)
.build())
.replaceUnhealthyInstances(false)
.spotOptions(SpotOptionsRequestProperty.builder()
.allocationStrategy("allocationStrategy")
.instanceInterruptionBehavior("instanceInterruptionBehavior")
.instancePoolsToUseCount(123)
.maintenanceStrategies(MaintenanceStrategiesProperty.builder()
.capacityRebalance(CapacityRebalanceProperty.builder()
.replacementStrategy("replacementStrategy")
.terminationDelay(123)
.build())
.build())
.maxTotalPrice("maxTotalPrice")
.minTargetCapacity(123)
.singleAvailabilityZone(false)
.singleInstanceType(false)
.build())
.tagSpecifications(List.of(TagSpecificationProperty.builder()
.resourceType("resourceType")
.tags(List.of(CfnTag.builder()
.key("key")
.value("value")
.build()))
.build()))
.terminateInstancesWithExpiration(false)
.type("type")
.validFrom("validFrom")
.validUntil("validUntil")
.build();
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceThe minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.static interfaceThe minimum and maximum amount of total accelerator memory, in MiB.static interfaceThe minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.static interfaceThe baseline performance to consider, using an instance family as a baseline reference.static interfaceDescribes a block device mapping, which defines the EBS volumes and instance store volumes to attach to an instance at launch.static final classA fluent builder forCfnEC2Fleet.static interfaceThe Spot Instance replacement strategy to use when Amazon EC2 emits a rebalance notification signal that your Spot Instance is at an elevated risk of being interrupted.static interfaceDescribes the strategy for using unused Capacity Reservations for fulfilling On-Demand capacity.static interfaceThe CPU performance to consider, using an instance family as the baseline reference.static interfaceDescribes a block device for an EBS volume.static interfaceSpecifies a launch template and overrides for an EC2 Fleet.static interfaceSpecifies overrides for a launch template for an EC2 Fleet.static interfaceSpecifies the launch template to be used by the EC2 Fleet for configuring Amazon EC2 instances.static interfaceThe attributes for the instance types.static interfaceThe strategies for managing your Spot Instances that are at an elevated risk of being interrupted.static interfaceThe minimum and maximum amount of memory per vCPU, in GiB.static interfaceThe minimum and maximum amount of memory, in MiB.static interfaceThe minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).static interfaceThe minimum and maximum number of network interfaces.static interfaceSpecifies the allocation strategy of On-Demand Instances in an EC2 Fleet.static interfaceSpecify an instance family to use as the baseline reference for CPU performance.static interfaceDescribes the placement of an instance.static interfaceSpecifies the configuration of Spot Instances for an EC2 Fleet.static interfaceSpecifies the tags to apply to a resource when the resource is being created for an EC2 Fleet.static interfaceSpecifies the number of units to request for an EC2 Fleet.static interfaceThe minimum and maximum amount of total local storage, in GB.static interfaceThe minimum and maximum number of vCPUs.Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationModeNested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$DefaultNested classes/interfaces inherited from interface software.amazon.awscdk.services.ec2.IEC2FleetRef
IEC2FleetRef.Jsii$Default, IEC2FleetRef.Jsii$ProxyNested classes/interfaces inherited from interface software.amazon.awscdk.IInspectable
IInspectable.Jsii$Default, IInspectable.Jsii$Proxy -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe CloudFormation resource type name for this resource class. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCfnEC2Fleet(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protectedCfnEC2Fleet(software.amazon.jsii.JsiiObjectRef objRef) CfnEC2Fleet(software.constructs.Construct scope, String id, CfnEC2FleetProps props) -
Method Summary
Modifier and TypeMethodDescriptionstatic IEC2FleetReffromFleetId(software.constructs.Construct scope, String id, String fleetId) Creates a new IEC2FleetRef from a fleetId.The ID of the EC2 Fleet.Reserved.A reference to a EC2Fleet resource.Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.The configuration for the EC2 Fleet.Describes the configuration of On-Demand Instances in an EC2 Fleet.Indicates whether EC2 Fleet should replace unhealthy Spot Instances.Describes the configuration of Spot Instances in an EC2 Fleet.The key-value pair for tagging the EC2 Fleet request on creation.The number of units to request.Indicates whether running instances should be terminated when the EC2 Fleet expires.getType()The fleet type.The start date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).The end date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).voidinspect(TreeInspector inspector) Examines the CloudFormation resource and discloses attributes.renderProperties(Map<String, Object> props) voidsetContext(String value) Reserved.voidIndicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.voidsetLaunchTemplateConfigs(List<Object> value) The configuration for the EC2 Fleet.voidThe configuration for the EC2 Fleet.voidsetOnDemandOptions(IResolvable value) Describes the configuration of On-Demand Instances in an EC2 Fleet.voidDescribes the configuration of On-Demand Instances in an EC2 Fleet.voidIndicates whether EC2 Fleet should replace unhealthy Spot Instances.voidIndicates whether EC2 Fleet should replace unhealthy Spot Instances.voidsetSpotOptions(IResolvable value) Describes the configuration of Spot Instances in an EC2 Fleet.voidDescribes the configuration of Spot Instances in an EC2 Fleet.voidsetTagSpecifications(List<Object> value) The key-value pair for tagging the EC2 Fleet request on creation.voidsetTagSpecifications(IResolvable value) The key-value pair for tagging the EC2 Fleet request on creation.voidThe number of units to request.voidThe number of units to request.voidIndicates whether running instances should be terminated when the EC2 Fleet expires.voidIndicates whether running instances should be terminated when the EC2 Fleet expires.voidThe fleet type.voidsetValidFrom(String value) The start date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).voidsetValidUntil(String value) The end date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).Methods inherited from class software.amazon.awscdk.CfnResource
addDeletionOverride, addDependency, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getAtt, getCfnOptions, getCfnResourceType, getMetadata, getUpdatedProperites, getUpdatedProperties, isCfnResource, obtainDependencies, obtainResourceDependencies, removeDependency, replaceDependency, shouldSynthesize, toString, validatePropertiesMethods inherited from class software.amazon.awscdk.CfnRefElement
getRefMethods inherited from class software.amazon.awscdk.CfnElement
getCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalIdMethods inherited from class software.constructs.Construct
getNode, isConstructMethods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSetMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface software.constructs.IConstruct
getNodeMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Field Details
-
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
-
-
Constructor Details
-
CfnEC2Fleet
protected CfnEC2Fleet(software.amazon.jsii.JsiiObjectRef objRef) -
CfnEC2Fleet
protected CfnEC2Fleet(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
CfnEC2Fleet
@Stability(Stable) public CfnEC2Fleet(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull CfnEC2FleetProps props) - Parameters:
scope- Scope in which this resource is defined. This parameter is required.id- Construct identifier for this resource (unique in its scope). This parameter is required.props- Resource properties. This parameter is required.
-
-
Method Details
-
fromFleetId
@Stability(Stable) @NotNull public static IEC2FleetRef fromFleetId(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String fleetId) Creates a new IEC2FleetRef from a fleetId.- Parameters:
scope- This parameter is required.id- This parameter is required.fleetId- This parameter is required.
-
inspect
Examines the CloudFormation resource and discloses attributes.- Specified by:
inspectin interfaceIInspectable- Parameters:
inspector- tree inspector to collect and process attributes. This parameter is required.
-
renderProperties
@Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String, Object> props) - Overrides:
renderPropertiesin classCfnResource- Parameters:
props- This parameter is required.
-
getAttrFleetId
The ID of the EC2 Fleet. -
getCfnProperties
- Overrides:
getCfnPropertiesin classCfnResource
-
getEc2FleetRef
A reference to a EC2Fleet resource.- Specified by:
getEc2FleetRefin interfaceIEC2FleetRef
-
getLaunchTemplateConfigs
The configuration for the EC2 Fleet.Returns union: either
IResolvableor Listinvalid input: '<'eitherIResolvableorCfnEC2Fleet.FleetLaunchTemplateConfigRequestProperty> -
setLaunchTemplateConfigs
The configuration for the EC2 Fleet. -
setLaunchTemplateConfigs
The configuration for the EC2 Fleet. -
getTargetCapacitySpecification
The number of units to request.Returns union: either
IResolvableorCfnEC2Fleet.TargetCapacitySpecificationRequestProperty -
setTargetCapacitySpecification
The number of units to request. -
setTargetCapacitySpecification
@Stability(Stable) public void setTargetCapacitySpecification(@NotNull CfnEC2Fleet.TargetCapacitySpecificationRequestProperty value) The number of units to request. -
getContext
Reserved. -
setContext
Reserved. -
getExcessCapacityTerminationPolicy
Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet. -
setExcessCapacityTerminationPolicy
Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet. -
getOnDemandOptions
Describes the configuration of On-Demand Instances in an EC2 Fleet.Returns union: either
IResolvableorCfnEC2Fleet.OnDemandOptionsRequestProperty -
setOnDemandOptions
Describes the configuration of On-Demand Instances in an EC2 Fleet. -
setOnDemandOptions
@Stability(Stable) public void setOnDemandOptions(@Nullable CfnEC2Fleet.OnDemandOptionsRequestProperty value) Describes the configuration of On-Demand Instances in an EC2 Fleet. -
getReplaceUnhealthyInstances
Indicates whether EC2 Fleet should replace unhealthy Spot Instances.Returns union: either
BooleanorIResolvable -
setReplaceUnhealthyInstances
Indicates whether EC2 Fleet should replace unhealthy Spot Instances. -
setReplaceUnhealthyInstances
Indicates whether EC2 Fleet should replace unhealthy Spot Instances. -
getSpotOptions
Describes the configuration of Spot Instances in an EC2 Fleet.Returns union: either
IResolvableorCfnEC2Fleet.SpotOptionsRequestProperty -
setSpotOptions
Describes the configuration of Spot Instances in an EC2 Fleet. -
setSpotOptions
@Stability(Stable) public void setSpotOptions(@Nullable CfnEC2Fleet.SpotOptionsRequestProperty value) Describes the configuration of Spot Instances in an EC2 Fleet. -
getTagSpecifications
The key-value pair for tagging the EC2 Fleet request on creation.For more information, see Tag your resources .
Returns union: either
IResolvableor Listinvalid input: '<'eitherIResolvableorCfnEC2Fleet.TagSpecificationProperty> -
setTagSpecifications
The key-value pair for tagging the EC2 Fleet request on creation.For more information, see Tag your resources .
-
setTagSpecifications
The key-value pair for tagging the EC2 Fleet request on creation.For more information, see Tag your resources .
-
getTerminateInstancesWithExpiration
Indicates whether running instances should be terminated when the EC2 Fleet expires.Returns union: either
BooleanorIResolvable -
setTerminateInstancesWithExpiration
Indicates whether running instances should be terminated when the EC2 Fleet expires. -
setTerminateInstancesWithExpiration
Indicates whether running instances should be terminated when the EC2 Fleet expires. -
getType
The fleet type.The default value is
maintain. -
setType
The fleet type.The default value is
maintain. -
getValidFrom
The start date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z). -
setValidFrom
The start date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z). -
getValidUntil
The end date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z). -
setValidUntil
The end date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).
-