새소식

IaC/Terraform

5주차(4)_Terraform 조건문

  • -
CloudNet@ 팀의 가시다님께서 Leading 하시는 Terraform T101 Study 내용 요약

 

해당 Terraform Study 는 Terraform Up and Running 책을 기반으로 진행 중입니다.

 

 

기존 프로그래밍 언어에서는 if 문을 통해 조건에 따라 결과가 변하는 코드를 작성할 수 있다.
테라폼은 타 프로그래밍 언어처럼 자유롭진 않지만, 나름대로 조건문을 제공하고 있다.

 

조건문을 잘 활용할 수 있다면 보다 유연한 테라폼 코드를 작성할 수 있을 것이다.
테라폼 조건문 사용법 동작 원리를 알아보자 !!



1. Count 조건문 ( 3항 연산자 )


count 매개변수를 사용해서 반복문을 수행할 수 있다고 배웠는데, 이를 응용하여 조건문 작업을 수행할 수 있다.

우선 기본 조건문 형식을 알아보자 !!

 

1.1. if 조건문 구현

bool 타입의 입력 변수가 존재할 때 다음과 같이 조건문을 구현할 수 있다.
  • 조건이이면 EC2 인스턴스 생성, 거짓이면 미생성

variable "create_ec2" {
  description = "If set to true, create ec2"
  type        = bool
}

<CONDITION> ? <TRUE_VAL> : <FALSE_VAL>

 

1.2. count 매개변수 활용

앞서 알아본 if 조건문을 count 매개변수에 활용하면 다음과 같은 조건문을 작성할 수 있다.
확실하게 알기 위해 입력 변수의 default 값은 설정하지 않았다.


provider "aws" {
  region = "ap-northeast-2"
}

variable "create_ec2" {
  description = "If set to true, create ec2"
  type        = bool
}

resource "aws_instance" "if_ec2" {
  count = var.create_ec2 ? 1 : 0

  ami             = "ami-0e9bfdb247cc8de84"
  instance_type   = "t2.micro"

  tags = {
    Name = "if-ec2"
  }
}

output "ec2_id" {
  value = aws_instance.if_ec2[*].id
}

 

  • 실제로 입력 변수가 true 일 때 ec2 를 실행하고 , false 일 때 ec2 를 실행하지 않는 것을 알 수 있다.

 


이번에는 테라폼 조건문에 대해서 알아보았다.

조건문을 활용하면 보다 유연한 테라폼 코드를 작성할 수 있을 것이다.

 

다음 포스팅에서는 테라폼 코드에서 입력되는 민감정보 (DB 비밀번호, Secret Key) 등을 관리하는 법에 대해서 알아보자!!

Contents

포스팅 주소를 복사했습니다