Terraform and Packer were used to automate the deployment of a Go application to AWS. Terraform was used to define and provision the infrastructure in AWS including networks, security groups, load balancers, auto scaling groups, and databases. Packer was used to build machine images with the application and dependencies installed to populate the auto scaling groups. Together, Terraform and Packer provided an automated and repeatable process for deploying the application to different environments like development, testing, and production.