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
  client_token: "String",
  excess_capacity_termination_policy: "noTermination", # accepts noTermination, default
  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: {
            encrypted: false,
            delete_on_termination: false,
            iops: 1,
            kms_key_id: "String",
            snapshot_id: "String",
            volume_size: 1,
            volume_type: "standard", # accepts standard, io1, gp2, sc1, st1
          },
          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, 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, 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, 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, cc1.4xlarge, cc2.8xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, cg1.4xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, f1.2xlarge, f1.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.12xlarge, m5.24xlarge, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge
      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", # required
            },
          ],
          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: "customer-gateway", # accepts customer-gateway, dhcp-options, image, instance, internet-gateway, network-acl, network-interface, reserved-instances, route-table, snapshot, spot-instances-request, subnet, security-group, volume, vpc, 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, 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, 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, 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, cc1.4xlarge, cc2.8xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, cg1.4xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, f1.2xlarge, f1.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.12xlarge, m5.24xlarge, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge
          spot_price: "String",
          subnet_id: "String",
          availability_zone: "String",
          weighted_capacity: 1.0,
        },
      ],
    },
  ],
  spot_price: "String",
  target_capacity: 1, # required
  terminate_instances_with_expiration: false,
  type: "request", # accepts request, maintain
  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: [ # required
        {
          name: "String", # required
        },
      ],
    },
    target_groups_config: {
      target_groups: [ # required
        {
          arn: "String", # required
        },
      ],
    },
  },
}

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 you provide to ensure idempotency of your listings. This helps avoid duplicate listings. For more information, see Ensuring Idempotency.

Returns:

  • (String)

    A unique, case-sensitive identifier you provide to ensure 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.

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.

#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:

#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 fleet will only request the target capacity or also attempt to maintain it. When you request a certain target capacity, the fleet will only place the required requests. It will not attempt to replenish Spot Instances if capacity is diminished, nor will it submit requests in alternative Spot pools if capacity is not available. When you want to maintain a certain target capacity, fleet will place the required requests to meet this target capacity. It will also automatically replenish any interrupted instances. Default: maintain.

Possible values:

  • request
  • maintain

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. The default end date is 7 days from the current date.

Returns:

  • (Time)

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