[Terraform] 테라폼 공부하기 #3. 테라폼 명령어

ChuYong·2023년 5월 29일
0
post-thumbnail

안녕하세요
진도는 빨리빨리 나가야한다고 생각해서 열심히 달리는중 ㅎ
주로 쓴다는 명령어만 공부해서 모아왔어요

Terraform Init

해당 폴더를 테라폼 폴더..로 만들기 위한건데요,
노드도 시작할떄 npm init 하자나여. 글고 안에 있는 .tf 파일 읽어서 필요한 플러그인들도 다운받아준데요 (AWS같은 클라우드 벤더사별로 플러그인이 따로 있대여)
우선 tf파일 하나 만들어놓고 딱! 쳐놓아야 하는듯함요

Terraform Plan

테라폼을 실제 클라우드에 반영하기 전에, 내가 작성해둔 테라폼 코드가 인프라에 무슨짓을 할지에 관해서 설명을 해주는 명령어에요. 가령, 새로 VPC에 관한 테라폼 블록이 추가되었으면, VPC를 만든다고 해주겠죠? 글고 예를 들어 내가 작성한 코드가 문법적으로 틀렸다고 하면 그것도 여기서 알려줄거에요.

Terraform Apply

실제 내 위에서 Init->Plan 해둔 코드를 인프라에 반영시키는 명령이에요. 보통 Plan을 먼저 하고 이걸 치는게 맞겠죠?
내 인프라에서 얘가 무슨짓을 할지 모르는데 냅다 반영해~ 라고 할수는 없잖아요..

아 참고로 하나 짚고가고싶은게,

  • 없는 블록이 생겼다 -> 생성
  • 있는 블록이 없어졌다 -> 삭제

여기까지는 직관적인데,

  • 있던 블록이 바뀌었다 -> ????

여기서 약간 차이가 나는게, AWS 콘솔을 써보셨다면 "리소스가 생성되고 나서 변경할 수 있는 항목" 과 "그렇지 않은" 항목이 있어요.
보통 개발좀 치는척 하려면 이걸 각각 MutableImmutable 하다고 하죠 훗 (저는 개발을 못해서 한글로 썼어요)
대표적인 Immutable(바꿀 수 없는)한 값이, ALB를 생성하고 그 ALB의 VPC를 바꾼다던지, 아니면 EC2 인스턴스를 생성하고 그 인스턴스의 ID를 바꾼다던지..
이런 필드를 수정하고 Plan하면 테라폼은 ALB를 지우고 다시 만들게~ 를 시전할거에요.
프로덕션 서비스였다면 이런 일이 일어나면 좀 슬프겠죠?
이래서 꼭 Plan의 목표를 먼저 확인해보는게 중요할 거 같아요

Terraform Destroy

이름만 봐도 뻔하지만, 네 위에서 만든걸 지우는 명령이에요.

자 일단 기본적인 CRUD 명령어는 다 본거같아요! (개발자아님)
다음화에선 앞에 문법에서 나왔던 타입들을 조금 몇개 살펴볼거에요.

profile
백엔드 & 인프라 를 좋아하는 개발자에요

0개의 댓글