Terraform Output이란?
- Terraform은 입력 변수 이외에 출력 변수도 설정해서 원하는 값을 출력할 수 있다.
- variable로 입력 변수를 컨트롤하고, output으로 출력 변수를 컨트롤 한다고 생각하면 이해에 도움이 될 것 같다.
왜 써야할까 ?
- Output을 활용하지 않는다면 사용자는 AWS EC2, ALB와 같은 리소스를 Terraform으로 생성한 후에 IP, Endpoint 등을 확인하기 위해서 다시 AWS Console에 접속해야 할 것이다.
- Output을 사용하면
terraform apply
결과로 내가 지정한 값들이 출력되고,tfstate
파일에도 output 값이 저장되기 때문에 원하는 정보를 VSC 같은 개발환경에서 바로 확인할 수 있다.
- 하지만 필요한 Output이 어떤 것인지에 대한 충분한 이해가 필요하기 때문에 콘솔보다 비교적 높은 Provider의 숙련도를 요구한다.
Terraform Ouput 사용해보기
- Terraform Output의 형식은 기본적으로 다음과 같다.
ouput "NAME" { value = VALUE }
적용해보기
- 아래 코드는 버지니아 북부 리전 Default VPC에 EC2를 생성하는 간단한 Terraform 코드다.
provider "aws" { region = "us-east-1" access_key = "IAM Access Key 입력" secret_key = "IAM Secret Access Key 입력" } resource "aws_instance" "example" { ami = "ami-40d28157" instance_type = "t2.micro" tags = { Name = "cloudest" } } output "instance_ip_addr" { value = aws_instance.example.private_ip } output "Instance_pubip_addr" { value = aws_instance.example.public_ip }
- 아래 코드는 버지니아 북부 리전 Default VPC에 EC2를 생성하는 간단한 Terraform 코드다.
결과화면
terraform apply
결과화면에 리소스 add, change, dstroy 말고도 Outputs 값이 함께 출력된다.
- 콘솔과 같은 IP정보가 출력된 것을 확인할 수 있다.
terraform apply
결과 자동으로 생성된terraform.tfstate
파일에서도 확인할 수 있다.
마무리
- 프리티어 리소스지만 혹시모를 과금을 막기 위해
terraform destroy
명령으로 리소스 삭제하기
- Output을 적절하게 활용한다면 GUI Console 접속 없이도 여러 프로바이더의 리소스들을 효율적으로 관리할 수 있을것이다.
Uploaded by Notion2Tistory v1.1.0