github.com/paybyphone/terraform@v0.9.5-0.20170613192930-9706042ddd51/website/docs/backends/index.html.md (about) 1 --- 2 layout: "docs" 3 page_title: "Backends" 4 sidebar_current: "docs-backends-index" 5 description: |- 6 A "backend" in Terraform determines how state is loaded and how an operation such as `apply` is executed. This abstraction enables non-local file state storage, remote execution, etc. 7 --- 8 9 # Backends 10 11 A "backend" in Terraform determines how state is loaded and how an operation 12 such as `apply` is executed. This abstraction enables non-local file state 13 storage, remote execution, etc. 14 15 By default, Terraform uses the "local" backend, which is the normal behavior 16 of Terraform you're used to. This is the backend that was being invoked 17 throughout the [introduction](/intro/index.html). 18 19 Here are some of the benefits of backends: 20 21 * **Working in a team**: Backends can store their state remotely and 22 protect that state with locks to prevent corruption. Some backends 23 such as Terraform Enterprise even automatically store a history of 24 all state revisions. 25 26 * **Keeping sensitive information off disk**: State is retrieved from 27 backends on demand and only stored in memory. If you're using a backend 28 such as Amazon S3, the only location the state ever is persisted is in 29 S3. 30 31 * **Remote operations**: For larger infrastructures or certain changes, 32 `terraform apply` can take a long, long time. Some backends support 33 remote operations which enable the operation to execute remotely. You can 34 then turn off your computer and your operation will still complete. Paired 35 with remote state storage and locking above, this also helps in team 36 environments. 37 38 **Backends are completely optional**. You can successfully use Terraform without 39 ever having to learn or use backends. However, they do solve pain points that 40 afflict teams at a certain scale. If you're an individual, you can likely 41 get away with never using backends. 42 43 Even if you only intend to use the "local" backend, it may be useful to 44 learn about backends since you can also change the behavior of the local 45 backend.