github.com/darmach/terratest@v0.34.8-0.20210517103231-80931f95e3ff/examples/terraform-redeploy-example/README.md (about)

     1  # Terraform Redeploy Example
     2  
     3  This folder contains a simple Terraform module that deploys resources in [AWS](https://aws.amazon.com/) to demonstrate
     4  how you can use Terratest to write automated tests for your AWS Terraform code. This module deploys an [Auto Scaling
     5  Group (ASG)](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) in the AWS region specified
     6  in the `aws_region` variable and a [Load Balancer](https://aws.amazon.com/elasticloadbalancing/) to route traffic
     7  across the ASG. Each EC2 Instance in the ASG runs a simple web server that listens for HTTP requests on the port
     8  specified by the `instance_port` variable and returns the text specified by the `instance_text` variable. The ASG is
     9  configured to support zero-downtime deployments, which is something we verify in the automated test.
    10  
    11  Check out [test/terraform_redeploy_example_test.go](/test/terraform_redeploy_example_test.go) to see how you can write
    12  automated tests for this module.
    13  
    14  Note that the example in this module is still fairly simplified, as the "web server" we run just servers up a static
    15  `index.html`, and not in a particularly production-ready manner! For a more complicated, real-world, end-to-end
    16  example of a Terraform module and web server, see [terraform-packer-example](/examples/terraform-packer-example).
    17  
    18  **WARNING**: This module and the automated tests for it deploy real resources into your AWS account which can cost you
    19  money. The resources are all part of the [AWS Free Tier](https://aws.amazon.com/free/), so if you haven't used that up,
    20  it should be free, but you are completely responsible for all AWS charges.
    21  
    22  
    23  
    24  
    25  
    26  ## Running this module manually
    27  
    28  1. Sign up for [AWS](https://aws.amazon.com/).
    29  1. Configure your AWS credentials using one of the [supported methods for AWS CLI
    30     tools](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html), such as setting the
    31     `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables. If you're using the `~/.aws/config` file for profiles then export `AWS_SDK_LOAD_CONFIG` as "True".
    32  1. Install [Terraform](https://www.terraform.io/) and make sure it's on your `PATH`.
    33  1. Run `terraform init`.
    34  1. Run `terraform apply`.
    35  1. The `url` output variable shows you the URL of the load balancer. Try opening it in your browser!
    36  1. When you're done, run `terraform destroy`.
    37  
    38  
    39  
    40  
    41  ## Running automated tests against this module
    42  
    43  1. Sign up for [AWS](https://aws.amazon.com/).
    44  1. Configure your AWS credentials using one of the [supported methods for AWS CLI
    45     tools](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html), such as setting the
    46     `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables. If you're using the `~/.aws/config` file for profiles then export `AWS_SDK_LOAD_CONFIG` as "True".
    47  1. Install [Terraform](https://www.terraform.io/) and make sure it's on your `PATH`.
    48  1. Install [Golang](https://golang.org/) and make sure this code is checked out into your `GOPATH`.
    49  1. `cd test`
    50  1. `dep ensure`
    51  1. `go test -v -run TestTerraformRedeployExample`