# Terraform AWS Global Network
Terraform AWS Global Network is a system primarily written in Terraform that you use to deploy and automate the configuration of a transitive network on the AWS Cloud. You can deploy a single transit gateway in one AWS Region, multiple gateways in multiple Regions, or a globally meshed network of gateways in every Region. For more information about the configurations available and the system's components, see [README.md](README.md), also in this repository.
Author: [Androski Spicer](mailto:androsks@amazon.com)
## Deploy Terraform AWS Global Network
1. Install Terraform. See [Install Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli) for a tutorial.
2. Sign up and log into [Terraform Cloud](https://app.terraform.io/signup/account). There is a free tier available.
3. Generate a Terraform Cloud token.
`terraform login`
4. Export the `TERRAFORM_CONFIG` variable.
* Mac/Linux
`export TERRAFORM_CONFIG="$HOME/.terraform.d/credentials.tfrc.json"`
* Windows
`export TERRAFORM_CONFIG="$HOME/AppData/Roaming/terraform.d/credentials.tfrc.json"`
5. Configure the AWS Command Line Interface (AWS CLI). For more information, see [Configuring the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
6. If you don't have git installed, [install git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
7. Clone the **aws-ia/terraform-aws-globalnetwork-1** repository.
`git clone https://github.com/aws-ia/terraform-aws-globalnetwork-1.git`
8. Change to the module root directory.
`cd terraform-aws-globalnetwork-1/`
9. Set up your Terraform cloud workspace.
`cd setup_workspace`
`terraform init`
`terraform apply`
10. Change to the **deploy** directory.
`cd ../deploy`
11. Initialize the **deploy** directory.
`terraform init`.
12. Run `terraform apply` or `terraform apply -var-file="$HOME/.aws/terraform.tfvars"`
**Note:** `terraform apply` runs remotely in the Terraform Cloud.