github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/website/source/docs/providers/aws/r/spot_fleet_request.html.markdown (about)

     1  ---
     2  layout: "aws"
     3  page_title: "AWS: aws_spot_fleet_request"
     4  sidebar_current: "docs-aws-resource-spot-fleet-request"
     5  description: |-
     6    Provides a Spot Fleet Request resource.
     7  ---
     8  
     9  # aws\_spot\_fleet\_request
    10  
    11  Provides an EC2 Spot Fleet Request resource. This allows a fleet of Spot
    12  instances to be requested on the Spot market.
    13  
    14  ## Example Usage
    15  
    16  ```
    17  # Request a Spot fleet
    18  resource "aws_spot_fleet_request" "cheap_compute" {
    19    iam_fleet_role      = "arn:aws:iam::12345678:role/spot-fleet"
    20    spot_price          = "0.03"
    21    allocation_strategy = "diversified"
    22    target_capacity     = 6
    23    valid_until         = "2019-11-04T20:44:20Z"
    24  
    25    launch_specification {
    26      instance_type = "m4.10xlarge"
    27      ami           = "ami-1234"
    28      spot_price    = "2.793"
    29    }
    30  
    31    launch_specification {
    32      instance_type     = "m4.4xlarge"
    33      ami               = "ami-5678"
    34      key_name          = "my-key"
    35      spot_price        = "1.117"
    36      availability_zone = "us-west-1a"
    37      subnet_id         = "subnet-1234"
    38      weighted_capacity = 35
    39  
    40      root_block_device {
    41        volume_size = "300"
    42        volume_type = "gp2"
    43      }
    44    }
    45  }
    46  ```
    47  
    48  ~> **NOTE:** Terraform does not support the functionality where multiple `subnet_id` or `availability_zone` parameters can be specified in the same
    49  launch configuration block. If you want to specify multiple values, then separate launch configuration blocks should be used:
    50  
    51  ```
    52  resource "aws_spot_fleet_request" "foo" {
    53    iam_fleet_role  = "arn:aws:iam::12345678:role/spot-fleet"
    54    spot_price      = "0.005"
    55    target_capacity = 2
    56    valid_until     = "2019-11-04T20:44:20Z"
    57  
    58    launch_specification {
    59      instance_type     = "m1.small"
    60      ami               = "ami-d06a90b0"
    61      key_name          = "my-key"
    62      availability_zone = "us-west-2a"
    63    }
    64  
    65    launch_specification {
    66      instance_type     = "m3.large"
    67      ami               = "ami-d06a90b0"
    68      key_name          = "my-key"
    69      availability_zone = "us-west-2a"
    70    }
    71  
    72    depends_on = ["aws_iam_policy_attachment.test-attach"]
    73  }
    74  ```
    75  
    76  ## Argument Reference
    77  
    78  Most of these arguments directly correspond to the
    79  [official API](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetRequestConfigData.html).
    80  
    81  * `iam_fleet_role` - (Required) Grants the Spot fleet permission to terminate
    82    Spot instances on your behalf when you cancel its Spot fleet request using
    83  CancelSpotFleetRequests or when the Spot fleet request expires, if you set
    84  terminateInstancesWithExpiration.
    85  * `launch_specification` - Used to define the launch configuration of the
    86    spot-fleet request. Can be specified multiple times to define different bids
    87  across different markets and instance types.
    88  
    89      **Note:** This takes in similar but not
    90      identical inputs as [`aws_instance`](instance.html).  There are limitations on
    91      what you can specify (tags, for example, are not supported). See the
    92      list of officially supported inputs in the
    93      [reference documentation](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetLaunchSpecification.html). Any normal [`aws_instance`](instance.html) parameter that corresponds to those inputs may be used.
    94  
    95  * `spot_price` - (Required) The bid price per unit hour.
    96  * `target_capacity` - The number of units to request. You can choose to set the
    97    target capacity in terms of instances or a performance characteristic that is
    98  important to your application workload, such as vCPUs, memory, or I/O.
    99  * `allocation_strategy` - Indicates how to allocate the target capacity across
   100    the Spot pools specified by the Spot fleet request. The default is
   101  lowestPrice.
   102  * `excess_capacity_termination_policy` - Indicates whether running Spot
   103    instances should be terminated if the target capacity of the Spot fleet
   104    request is decreased below the current size of the Spot fleet.
   105  * `terminate_instances_with_expiration` - Indicates whether running Spot
   106    instances should be terminated when the Spot fleet request expires.
   107  * `valid_until` - The end date and time of the request, in UTC ISO8601 format
   108    (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance
   109  requests are placed or enabled to fulfill the request. Defaults to 24 hours.
   110  
   111  
   112  ## Attributes Reference
   113  
   114  The following attributes are exported:
   115  
   116  * `id` - The Spot fleet request ID
   117  * `spot_request_state` - The state of the Spot fleet request.