2015-08-20 19:53:23 +00:00
---
layout: "google"
page_title: "Google: google_compute_backend_service"
2015-10-23 14:10:41 +00:00
sidebar_current: "docs-google-compute-backend-service"
2015-08-20 19:53:23 +00:00
description: |-
Creates a Backend Service resource for Google Compute Engine.
---
# google\_compute\_backend\_service
2017-06-14 21:13:52 +00:00
A Backend Service defines a group of virtual machines that will serve traffic for load balancing. For more information
2017-06-07 22:17:49 +00:00
see [the official documentation ](https://cloud.google.com/compute/docs/load-balancing/http/backend-service )
and the [API ](https://cloud.google.com/compute/docs/reference/latest/backendServices ).
2015-08-20 19:53:23 +00:00
2017-05-09 10:10:14 +00:00
For internal load balancing, use a [google_compute_region_backend_service ](/docs/providers/google/r/compute_region_backend_service.html ).
2015-08-20 19:53:23 +00:00
## Example Usage
2017-04-17 10:17:54 +00:00
```hcl
2017-06-14 21:13:52 +00:00
resource "google_compute_backend_service" "website" {
2017-06-14 21:17:34 +00:00
name = "my-backend"
2017-06-14 21:13:52 +00:00
description = "Our company website"
2016-04-10 21:34:15 +00:00
port_name = "http"
protocol = "HTTP"
timeout_sec = 10
2016-07-28 20:38:09 +00:00
enable_cdn = false
2016-04-10 21:34:15 +00:00
backend {
2017-06-14 21:13:52 +00:00
group = "${google_compute_instance_group_manager.webservers.instance_group}"
2016-04-10 21:34:15 +00:00
}
health_checks = ["${google_compute_http_health_check.default.self_link}"]
2015-08-20 19:53:23 +00:00
}
2017-06-14 21:13:52 +00:00
resource "google_compute_instance_group_manager" "webservers" {
2017-06-14 21:17:34 +00:00
name = "my-webservers"
2017-06-14 21:13:52 +00:00
instance_template = "${google_compute_instance_template.webserver.self_link}"
base_instance_name = "webserver"
2016-04-10 21:34:15 +00:00
zone = "us-central1-f"
target_size = 1
2015-09-08 10:57:51 +00:00
}
2017-06-14 21:13:52 +00:00
resource "google_compute_instance_template" "webserver" {
2017-06-14 21:17:34 +00:00
name = "standard-webserver"
2016-04-10 21:34:15 +00:00
machine_type = "n1-standard-1"
network_interface {
network = "default"
}
disk {
2016-08-19 00:23:15 +00:00
source_image = "debian-cloud/debian-8"
2016-04-10 21:34:15 +00:00
auto_delete = true
boot = true
}
2015-09-08 10:57:51 +00:00
}
2015-08-20 19:53:23 +00:00
resource "google_compute_http_health_check" "default" {
2016-04-10 21:34:15 +00:00
name = "test"
request_path = "/"
check_interval_sec = 1
timeout_sec = 1
2015-08-20 19:53:23 +00:00
}
```
## Argument Reference
The following arguments are supported:
* `name` - (Required) The name of the backend service.
2016-04-10 21:34:15 +00:00
2017-06-20 17:45:58 +00:00
* `health_checks` - (Required) Specifies a list of HTTP/HTTPS health checks
2017-06-20 17:26:09 +00:00
for checking the health of the backend service. Currently at most one health
check can be specified, and a health check is required.
2016-04-10 21:34:15 +00:00
- - -
2017-06-07 22:17:49 +00:00
* `backend` - (Optional) The list of backends that serve this BackendService. Structure is documented below.
2016-04-10 21:34:15 +00:00
2017-12-11 17:43:27 +00:00
* `iap` - (Optional) Specification for the Identity-Aware proxy. Disabled if not specified. Structure is documented below.
2015-08-20 19:53:23 +00:00
* `description` - (Optional) The textual description for the backend service.
2016-07-28 20:38:09 +00:00
* `enable_cdn` - (Optional) Whether or not to enable the Cloud CDN on the backend service.
2016-04-10 21:34:15 +00:00
* `port_name` - (Optional) The name of a service that has been added to an
instance group in this backend. See [related docs ](https://cloud.google.com/compute/docs/instance-groups/#specifying_service_endpoints ) for details. Defaults to http.
* `project` - (Optional) The project in which the resource belongs. If it
is not provided, the provider project is used.
* `protocol` - (Optional) The protocol for incoming requests. Defaults to
`HTTP` .
2017-01-16 21:42:55 +00:00
* `session_affinity` - (Optional) How to distribute load. Options are `NONE` (no
affinity), `CLIENT_IP` (hash of the source/dest addresses / ports), and
`GENERATED_COOKIE` (distribute load using a generated session cookie).
2016-11-27 19:12:56 +00:00
2015-08-20 19:53:23 +00:00
* `timeout_sec` - (Optional) The number of secs to wait for a backend to respond
2016-04-10 21:34:15 +00:00
to a request before considering the request failed. Defaults to `30` .
2017-06-14 21:13:52 +00:00
* `connection_draining_timeout_sec` - (Optional) Time for which instance will be drained (not accept new connections,
2017-10-06 19:03:16 +00:00
but still work to finish started ones). Defaults to `300` .
2016-04-10 21:34:15 +00:00
2017-06-07 22:17:49 +00:00
The `backend` block supports:
2015-08-20 19:53:23 +00:00
2016-04-10 21:34:15 +00:00
* `group` - (Required) The name or URI of a Compute Engine instance group
(`google_compute_instance_group_manager.xyz.instance_group`) that can
receive traffic.
* `balancing_mode` - (Optional) Defines the strategy for balancing load.
Defaults to `UTILIZATION`
* `capacity_scaler` - (Optional) A float in the range [0, 1.0] that scales the
maximum parameters for the group (e.g., max rate). A value of 0.0 will cause
no requests to be sent to the group (i.e., it adds the group in a drained
state). The default is 1.0.
2015-08-20 19:53:23 +00:00
* `description` - (Optional) Textual description for the backend.
2016-04-10 21:34:15 +00:00
* `max_rate` - (Optional) Maximum requests per second (RPS) that the group can
handle.
* `max_rate_per_instance` - (Optional) The maximum per-instance requests per
second (RPS).
* `max_utilization` - (Optional) The target CPU utilization for the group as a
float in the range [0.0, 1.0]. This flag can only be provided when the
balancing mode is `UTILIZATION` . Defaults to `0.8` .
2015-08-20 19:53:23 +00:00
2017-12-11 17:43:27 +00:00
The `iap` block supports:
* `oauth2_client_id` - (Required) The client ID for use with OAuth 2.0.
* `oauth2_client_secret` - (Required) The client secret for use with OAuth 2.0.
2015-08-20 19:53:23 +00:00
## Attributes Reference
2016-04-10 21:34:15 +00:00
In addition to the arguments listed above, the following computed attributes are
exported:
* `fingerprint` - The fingerprint of the backend service.
2015-08-20 19:53:23 +00:00
* `self_link` - The URI of the created resource.
2017-06-14 21:13:52 +00:00
## Import
Backend services can be imported using the `name` , e.g.
```
2017-06-14 21:17:34 +00:00
$ terraform import google_compute_backend_service.website my-backend
2017-06-14 21:13:52 +00:00
```