You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.

Class: Aws::EC2::Types::SpotFleetRequestConfigData

Inherits:
Struct
  • Object
show all
Defined in:
(unknown)

Overview

Note:

When passing SpotFleetRequestConfigData as input to an Aws::Client method, you can use a vanilla Hash:

{
  allocation_strategy: "lowestPrice", # accepts lowestPrice, diversified
  on_demand_allocation_strategy: "lowestPrice", # accepts lowestPrice, prioritized
  client_token: "String",
  excess_capacity_termination_policy: "noTermination", # accepts noTermination, default
  fulfilled_capacity: 1.0,
  on_demand_fulfilled_capacity: 1.0,
  iam_fleet_role: "String", # required
  launch_specifications: [
    {
      security_groups: [
        {
          group_name: "String",
          group_id: "String",
        },
      ],
      addressing_type: "String",
      block_device_mappings: [
        {
          device_name: "String",
          virtual_name: "String",
          ebs: {
            delete_on_termination: false,
            iops: 1,
            snapshot_id: "String",
            volume_size: 1,
            volume_type: "standard", # accepts standard, io1, gp2, sc1, st1
            encrypted: false,
            kms_key_id: "String",
          },
          no_device: "String",
        },
      ],
      ebs_optimized: false,
      iam_instance_profile: {
        arn: "String",
        name: "String",
      },
      image_id: "String",
      instance_type: "t1.micro", # accepts 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, m1.small, m1.medium, m1.large, m1.xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge, cr1.8xlarge, 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.12xlarge, r5.24xlarge, r5.metal, r5a.large, r5a.xlarge, r5a.2xlarge, r5a.4xlarge, r5a.12xlarge, r5a.24xlarge, r5d.large, r5d.xlarge, r5d.2xlarge, r5d.4xlarge, r5d.12xlarge, r5d.24xlarge, r5d.metal, x1.16xlarge, x1.32xlarge, x1e.xlarge, x1e.2xlarge, x1e.4xlarge, x1e.8xlarge, x1e.16xlarge, x1e.32xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge, i3.metal, hi1.4xlarge, hs1.8xlarge, 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.18xlarge, c5d.large, c5d.xlarge, c5d.2xlarge, c5d.4xlarge, c5d.9xlarge, c5d.18xlarge, c5n.large, c5n.xlarge, c5n.2xlarge, c5n.4xlarge, c5n.9xlarge, c5n.18xlarge, cc1.4xlarge, cc2.8xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, g3s.xlarge, cg1.4xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, p3dn.24xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, f1.2xlarge, f1.4xlarge, f1.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.12xlarge, m5.24xlarge, m5.metal, m5a.large, m5a.xlarge, m5a.2xlarge, m5a.4xlarge, m5a.12xlarge, m5a.24xlarge, m5d.large, m5d.xlarge, m5d.2xlarge, m5d.4xlarge, m5d.12xlarge, m5d.24xlarge, m5d.metal, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge, z1d.large, z1d.xlarge, z1d.2xlarge, z1d.3xlarge, z1d.6xlarge, z1d.12xlarge, z1d.metal, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, a1.medium, a1.large, a1.xlarge, a1.2xlarge, a1.4xlarge
      kernel_id: "String",
      key_name: "String",
      monitoring: {
        enabled: false,
      },
      network_interfaces: [
        {
          associate_public_ip_address: false,
          delete_on_termination: false,
          description: "String",
          device_index: 1,
          groups: ["String"],
          ipv_6_address_count: 1,
          ipv_6_addresses: [
            {
              ipv_6_address: "String",
            },
          ],
          network_interface_id: "String",
          private_ip_address: "String",
          private_ip_addresses: [
            {
              primary: false,
              private_ip_address: "String",
            },
          ],
          secondary_private_ip_address_count: 1,
          subnet_id: "String",
        },
      ],
      placement: {
        availability_zone: "String",
        group_name: "String",
        tenancy: "default", # accepts default, dedicated, host
      },
      ramdisk_id: "String",
      spot_price: "String",
      subnet_id: "String",
      user_data: "String",
      weighted_capacity: 1.0,
      tag_specifications: [
        {
          resource_type: "client-vpn-endpoint", # accepts client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, launch-template, natgateway, network-acl, network-interface, reserved-instances, route-table, security-group, snapshot, spot-instances-request, subnet, transit-gateway, transit-gateway-attachment, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway
          tags: [
            {
              key: "String",
              value: "String",
            },
          ],
        },
      ],
    },
  ],
  launch_template_configs: [
    {
      launch_template_specification: {
        launch_template_id: "String",
        launch_template_name: "LaunchTemplateName",
        version: "String",
      },
      overrides: [
        {
          instance_type: "t1.micro", # accepts 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, m1.small, m1.medium, m1.large, m1.xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge, cr1.8xlarge, 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.12xlarge, r5.24xlarge, r5.metal, r5a.large, r5a.xlarge, r5a.2xlarge, r5a.4xlarge, r5a.12xlarge, r5a.24xlarge, r5d.large, r5d.xlarge, r5d.2xlarge, r5d.4xlarge, r5d.12xlarge, r5d.24xlarge, r5d.metal, x1.16xlarge, x1.32xlarge, x1e.xlarge, x1e.2xlarge, x1e.4xlarge, x1e.8xlarge, x1e.16xlarge, x1e.32xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge, i3.metal, hi1.4xlarge, hs1.8xlarge, 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.18xlarge, c5d.large, c5d.xlarge, c5d.2xlarge, c5d.4xlarge, c5d.9xlarge, c5d.18xlarge, c5n.large, c5n.xlarge, c5n.2xlarge, c5n.4xlarge, c5n.9xlarge, c5n.18xlarge, cc1.4xlarge, cc2.8xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, g3s.xlarge, cg1.4xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, p3dn.24xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, f1.2xlarge, f1.4xlarge, f1.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.12xlarge, m5.24xlarge, m5.metal, m5a.large, m5a.xlarge, m5a.2xlarge, m5a.4xlarge, m5a.12xlarge, m5a.24xlarge, m5d.large, m5d.xlarge, m5d.2xlarge, m5d.4xlarge, m5d.12xlarge, m5d.24xlarge, m5d.metal, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge, z1d.large, z1d.xlarge, z1d.2xlarge, z1d.3xlarge, z1d.6xlarge, z1d.12xlarge, z1d.metal, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, a1.medium, a1.large, a1.xlarge, a1.2xlarge, a1.4xlarge
          spot_price: "String",
          subnet_id: "String",
          availability_zone: "String",
          weighted_capacity: 1.0,
          priority: 1.0,
        },
      ],
    },
  ],
  spot_price: "String",
  target_capacity: 1, # required
  on_demand_target_capacity: 1,
  terminate_instances_with_expiration: false,
  type: "request", # accepts request, maintain, instant
  valid_from: Time.now,
  valid_until: Time.now,
  replace_unhealthy_instances: false,
  instance_interruption_behavior: "hibernate", # accepts hibernate, stop, terminate
  load_balancers_config: {
    classic_load_balancers_config: {
      classic_load_balancers: [
        {
          name: "String",
        },
      ],
    },
    target_groups_config: {
      target_groups: [
        {
          arn: "String",
        },
      ],
    },
  },
  instance_pools_to_use_count: 1,
}

Describes the configuration of a Spot Fleet request.

Returned by:

Instance Attribute Summary collapse

Instance Attribute Details

#allocation_strategyString

Indicates how to allocate the target capacity across the Spot pools specified by the Spot Fleet request. The default is lowestPrice.

Possible values:

  • lowestPrice
  • diversified

Returns:

  • (String)

    Indicates how to allocate the target capacity across the Spot pools specified by the Spot Fleet request.

#client_tokenString

A unique, case-sensitive identifier that you provide to ensure the idempotency of your listings. This helps to avoid duplicate listings. For more information, see Ensuring Idempotency.

Returns:

  • (String)

    A unique, case-sensitive identifier that you provide to ensure the idempotency of your listings.

#excess_capacity_termination_policyString

Indicates whether running Spot Instances should be terminated if the target capacity of the Spot Fleet request is decreased below the current size of the Spot Fleet.

Possible values:

  • noTermination
  • default

Returns:

  • (String)

    Indicates whether running Spot Instances should be terminated if the target capacity of the Spot Fleet request is decreased below the current size of the Spot Fleet.

#fulfilled_capacityFloat

The number of units fulfilled by this request compared to the set target capacity. You cannot set this value.

Returns:

  • (Float)

    The number of units fulfilled by this request compared to the set target capacity.

#iam_fleet_roleString

Grants the Spot Fleet permission to terminate Spot Instances on your behalf when you cancel its Spot Fleet request using CancelSpotFleetRequests or when the Spot Fleet request expires, if you set terminateInstancesWithExpiration.

Returns:

  • (String)

    Grants the Spot Fleet permission to terminate Spot Instances on your behalf when you cancel its Spot Fleet request using CancelSpotFleetRequests or when the Spot Fleet request expires, if you set terminateInstancesWithExpiration.

#instance_interruption_behaviorString

The behavior when a Spot Instance is interrupted. The default is terminate.

Possible values:

  • hibernate
  • stop
  • terminate

Returns:

  • (String)

    The behavior when a Spot Instance is interrupted.

#instance_pools_to_use_countInteger

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.

Returns:

  • (Integer)

    The number of Spot pools across which to allocate your target Spot capacity.

#launch_specificationsArray<Types::SpotFleetLaunchSpecification>

The launch specifications for the Spot Fleet request.

Returns:

#launch_template_configsArray<Types::LaunchTemplateConfig>

The launch template and overrides.

Returns:

#load_balancers_configTypes::LoadBalancersConfig

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.

Returns:

#on_demand_allocation_strategyString

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.

Possible values:

  • lowestPrice
  • prioritized

Returns:

  • (String)

    The order of the launch template overrides to use in fulfilling On-Demand capacity.

#on_demand_fulfilled_capacityFloat

The number of On-Demand units fulfilled by this request compared to the set target On-Demand capacity.

Returns:

  • (Float)

    The number of On-Demand units fulfilled by this request compared to the set target On-Demand capacity.

#on_demand_target_capacityInteger

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.

Returns:

  • (Integer)

    The number of On-Demand units to request.

#replace_unhealthy_instancesBoolean

Indicates whether Spot Fleet should replace unhealthy instances.

Returns:

  • (Boolean)

    Indicates whether Spot Fleet should replace unhealthy instances.

#spot_priceString

The maximum price per unit hour that you are willing to pay for a Spot Instance. The default is the On-Demand price.

Returns:

  • (String)

    The maximum price per unit hour that you are willing to pay for a Spot Instance.

#target_capacityInteger

The number of 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.

Returns:

  • (Integer)

    The number of units to request.

#terminate_instances_with_expirationBoolean

Indicates whether running Spot Instances should be terminated when the Spot Fleet request expires.

Returns:

  • (Boolean)

    Indicates whether running Spot Instances should be terminated when the Spot Fleet request expires.

#typeString

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.

Possible values:

  • request
  • maintain
  • instant

Returns:

  • (String)

    The type of request.

#valid_fromTime

The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.

Returns:

  • (Time)

    The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).

#valid_untilTime

The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, 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.

Returns:

  • (Time)

    The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).