1 리눅스 서버에서 작업한다. 테라폼 v1.2.3 버전으로 실습 wget https://releases.hashicorp.com/terraform/1.2.3/terraform_1.2.3_linux_386.zip unzip [root@ip-172-31-61-209 bin]# ./terraform -version Terraform v1.2.3 2 # aws configure us-east-2 or export AWS_DEFAULT_REGION=us-east-2 # git clone https://github.com/brikis98/terraform-up-and-running-code.git cd terraform-up-and-running-code/code/terraform tree <2> ec2 생성하기 1 다른 터미널에서 ec2 생성 모니터링 export AWS_PAGER="" while true; do aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,InstanceName:Tags[?Key=='Name']|[0].Value,Status:State.Name}" --filters Name=instance-state-name,Values=running --output text ; echo "------------------------------" ; sleep 1; done cd /root/terraform-up-and-running-code/code/terraform/00-preface/hello-world terraform init terraform plan terraform apply yes 2 삭제 후 확인 terraform destroy -auto-approve cd ~/terraform-up-and-running-code/code/terraform <3> ec2 , lb 생성하기 1 # [터미널2] cd 02-intro-to-terraform-syntax/webserver-cluster cat main.tf variables.tf # 배포 terraform init terraform plan terraform apply -auto-approve 2 터미널 1에서 서버 생성 확인 terraform-asg-example None running ------------------------------ terraform-asg-example None running terraform-asg-example None running 3 터미널1에서 배포가 다되면 아웃풋 파일이 나온다. Outputs: alb_dns_name = "terraform-asg-example-723538014.us-east-2.elb.amazonaws.com" 4 # 배포 완료 후 ALB 접속 확인 ALBDNS=$(terraform output -raw alb_dns_name) while true; do curl --connect-timeout 1 http://$ALBDNS/ ; echo; echo "------------------------------"; date; sleep 1; done ------------------------------ Tue Dec 6 08:01:18 UTC 2022 Hello, World # 삭제 terraform destroy -auto-approve cd ~/terraform-up-and-running-code/code/terraform