# Launch EC2 instance ## Reuqirements * AWS account ## Objectives 1. Write Terraform configuration for launching an EC2 instance 2. Run the commands to apply the configuration and create the EC2 instance 3. What happens if you run again `terraform apply`? 4. Destroy the instance you've created with Terraform ## Solution ``` mkdir exercise cat << EOT >> main.tf terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 4.16" } } required_version = ">= 1.2.0" } provider "aws" { region = "us-west-2" } resource "aws_instance" "app_server" { ami = "ami-830c94e3" instance_type = "t2.micro" tags = { Name = "ExampleAppServerInstance" } } EOT terraform init terraform validate terraform plan # You should see this line at the end: Plan: 1 to add, 0 to change, 0 to destroy terraform apply -auto-approve # You should see the following output: # aws_instance.app_server: Creation complete after 49s [id=i-004651a9d4427d236 # Running 'terraform apply' again won't change anything as # Terraform will compare actual infrastructure to your # configuration and won't find any difference. You should see the following line: # Apply complete! Resources: 0 added, 0 changed, 0 destroyed. # Remove instance terraform destroy -auto-approve # Destroy complete! Resources: 1 destroyed. ```