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.