구름

[테라폼] Terraform Output 사용하기 본문

Code/IaC

[테라폼] Terraform Output 사용하기

Cloudest 2021. 4. 14. 13:40
 

Cloudest - 블로그 이사했습니다

노션으로 블로그를 옮겼습니다.

흥미로운 포스팅이 올라옵니다!

cloudest.oopy.io

💡
준비물 - AWS 계정 및 EC2 Fullaccess 권한을 가진 IAM User의 키 - Terraform이 설치된 호스트 - Powershell이나 VSCode와 같은 Terraform 실행 환경

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
      }
  • 결과화면
    • terraform apply 결과화면에 리소스 add, change, dstroy 말고도 Outputs 값이 함께 출력된다.
    • 콘솔과 같은 IP정보가 출력된 것을 확인할 수 있다.
    • terraform apply 결과 자동으로 생성된 terraform.tfstate 파일에서도 확인할 수 있다.

마무리

  • 프리티어 리소스지만 혹시모를 과금을 막기 위해 terraform destroy 명령으로 리소스 삭제하기
  • Output을 적절하게 활용한다면 GUI Console 접속 없이도 여러 프로바이더의 리소스들을 효율적으로 관리할 수 있을것이다.

 

Comments