> For the complete documentation index, see [llms.txt](https://anon-coders-notes.gitbook.io/techwriterdev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anon-coders-notes.gitbook.io/techwriterdev/technologies/terraform/04_remote_state.md).

# Terraform Cloud

* Terraform Cloud allows teams to easily version, audit, and collaborate on infrastructure changes. It also securely stores variables, including API tokens and access keys, and provides a safe, stable environment for long-running Terraform processes.
* Example of terraform cloud configuration.

  ```
  terraform {
      // Cloud configuration

      backend "remote" {
          organization = "my_organization"
          workspaces {
            name = "Example-Workspace"
          }
      }

      //Provider configuration
      required_providers {
          aws = {
          source  = "hashicorp/aws"
          version = "~> 3.27"
          }
      }
  }

  ```
* Sign up for terraform cloud account and create an organization.
* Use `terraform login` command to login to the cloud account from the terminal. This will open a browser with access token. Copy the access token and paste it into the input prompt. (Note, while pasting input will be hidden).
* Once above steps are done, run `terraform init` to reinitialize the configuration and migrate/store the state to terraform cloud.
* Once migration is completed, delete the local state file, if it exists.
* Set up access key and secret tokens for you cloud provider in you terraform cloud organization under `variables` tab.
* Once access keys are configured, run `terraform apply` to trigger a run in terraform cloud.
* Note: terraform state is only loaded to memory when a terraform run is triggered.
