Class CfnEC2Fleet

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

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

Specifies the configuration information to launch a fleet--or group--of instances. 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 for Linux Instances .

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")
                         .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())
                                 .burstablePerformance("burstablePerformance")
                                 .cpuManufacturers(List.of("cpuManufacturers"))
                                 .excludedInstanceTypes(List.of("excludedInstanceTypes"))
                                 .instanceGenerations(List.of("instanceGenerations"))
                                 .localStorage("localStorage")
                                 .localStorageTypes(List.of("localStorageTypes"))
                                 .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();
 
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

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

    • CfnEC2Fleet

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

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

      @Stability(Stable) public CfnEC2Fleet(@NotNull Construct scope, @NotNull String id, @NotNull CfnEC2FleetProps props)
      Create a new AWS::EC2::EC2Fleet.

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

    • inspect

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

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

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

      @Stability(Stable) @NotNull public String getAttrFleetId()
      The ID of the EC2 Fleet.
    • getCfnProperties

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

      @Stability(Stable) @NotNull public Object getLaunchTemplateConfigs()
      The configuration for the EC2 Fleet.
    • setLaunchTemplateConfigs

      @Stability(Stable) public void setLaunchTemplateConfigs(@NotNull IResolvable value)
      The configuration for the EC2 Fleet.
    • setLaunchTemplateConfigs

      @Stability(Stable) public void setLaunchTemplateConfigs(@NotNull List<Object> value)
      The configuration for the EC2 Fleet.
    • getTargetCapacitySpecification

      @Stability(Stable) @NotNull public Object getTargetCapacitySpecification()
      The number of units to request.
    • setTargetCapacitySpecification

      @Stability(Stable) public void setTargetCapacitySpecification(@NotNull IResolvable value)
      The number of units to request.
    • setTargetCapacitySpecification

      @Stability(Stable) public void setTargetCapacitySpecification(@NotNull CfnEC2Fleet.TargetCapacitySpecificationRequestProperty value)
      The number of units to request.
    • getContext

      @Stability(Stable) @Nullable public String getContext()
      Reserved.
    • setContext

      @Stability(Stable) public void setContext(@Nullable String value)
      Reserved.
    • getExcessCapacityTerminationPolicy

      @Stability(Stable) @Nullable public String 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.

      Supported only for fleets of type maintain .

    • setExcessCapacityTerminationPolicy

      @Stability(Stable) public void setExcessCapacityTerminationPolicy(@Nullable String value)
      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.

      Supported only for fleets of type maintain .

    • getOnDemandOptions

      @Stability(Stable) @Nullable public Object getOnDemandOptions()
      Describes the configuration of On-Demand Instances in an EC2 Fleet.
    • setOnDemandOptions

      @Stability(Stable) public void setOnDemandOptions(@Nullable IResolvable value)
      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

      @Stability(Stable) @Nullable public Object getReplaceUnhealthyInstances()
      Indicates whether EC2 Fleet should replace unhealthy Spot Instances.

      Supported only for fleets of type maintain . For more information, see EC2 Fleet health checks in the Amazon EC2 User Guide .

    • setReplaceUnhealthyInstances

      @Stability(Stable) public void setReplaceUnhealthyInstances(@Nullable Boolean value)
      Indicates whether EC2 Fleet should replace unhealthy Spot Instances.

      Supported only for fleets of type maintain . For more information, see EC2 Fleet health checks in the Amazon EC2 User Guide .

    • setReplaceUnhealthyInstances

      @Stability(Stable) public void setReplaceUnhealthyInstances(@Nullable IResolvable value)
      Indicates whether EC2 Fleet should replace unhealthy Spot Instances.

      Supported only for fleets of type maintain . For more information, see EC2 Fleet health checks in the Amazon EC2 User Guide .

    • getSpotOptions

      @Stability(Stable) @Nullable public Object getSpotOptions()
      Describes the configuration of Spot Instances in an EC2 Fleet.
    • setSpotOptions

      @Stability(Stable) public void setSpotOptions(@Nullable IResolvable value)
      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

      @Stability(Stable) @Nullable public Object getTagSpecifications()
      The key-value pair for tagging the EC2 Fleet request on creation. For more information, see Tagging your resources .

      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 .

    • setTagSpecifications

      @Stability(Stable) public void setTagSpecifications(@Nullable IResolvable value)
      The key-value pair for tagging the EC2 Fleet request on creation. For more information, see Tagging your resources .

      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 .

    • setTagSpecifications

      @Stability(Stable) public void setTagSpecifications(@Nullable List<Object> value)
      The key-value pair for tagging the EC2 Fleet request on creation. For more information, see Tagging your resources .

      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 .

    • getTerminateInstancesWithExpiration

      @Stability(Stable) @Nullable public Object getTerminateInstancesWithExpiration()
      Indicates whether running instances should be terminated when the EC2 Fleet expires.
    • setTerminateInstancesWithExpiration

      @Stability(Stable) public void setTerminateInstancesWithExpiration(@Nullable Boolean value)
      Indicates whether running instances should be terminated when the EC2 Fleet expires.
    • setTerminateInstancesWithExpiration

      @Stability(Stable) public void setTerminateInstancesWithExpiration(@Nullable IResolvable value)
      Indicates whether running instances should be terminated when the EC2 Fleet expires.
    • getType

      @Stability(Stable) @Nullable public String getType()
      The fleet type. The default value is maintain .

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

    • setType

      @Stability(Stable) public void setType(@Nullable String value)
      The fleet type. The default value is maintain .

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

    • getValidFrom

      @Stability(Stable) @Nullable public String getValidFrom()
      The start date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).

      The default is to start fulfilling the request immediately.

    • setValidFrom

      @Stability(Stable) public void setValidFrom(@Nullable String value)
      The start date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).

      The default is to start fulfilling the request immediately.

    • getValidUntil

      @Stability(Stable) @Nullable public String getValidUntil()
      The end date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).

      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.

    • setValidUntil

      @Stability(Stable) public void setValidUntil(@Nullable String value)
      The end date and time of the request, in UTC format (for example, YYYY - MM - DD T HH : MM : SS Z).

      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.