Terraform (테라폼) 정리

설탕찍은사과·2023년 5월 28일
0

Terraform

목록 보기
1/1

Terraform

TL;DR

  • IaC 를 위해서 공부 하고 책읽고 찾아보면서 결국은 손가락에 익숙해지는 것만큼 좋은게 없으므로 일단 만들어보면서 익숙해지기위해서 아래에 정리해본다.
  • 최대한 짧게 쓰려고 노력할테니.. 길면 길다고.. 댓글좀!!

Terraform 구성요소

  • provider : 테라폼으로 생성할 인프라의 종류
  • resource : 테라폼으로 실제로 생성할 인프라 자원
  • state : 테라폼을 생성할 자원의 상태
    • 현재 인프라의 상태를 의미하는 것은 아님
    • state는 원격저장소인 backend 에도 저장될 수 있음
  • output : 테라폼으로 만든 자원을 변수 형태로 state에 저장하는 것
  • module : 공통적으로 활용할 수 있는 코드를 문자 그대로 모듈형태로 정의
    • 한번 만들어진 테라폼 코드로 같은 형태를 반복적으로 만들어낼때 주로 사용 (재사용에 대한 강점!)
module "vpc" {
	source = "../_modules/vpc"
    
    cidr_blr = "10.0.0.0/16"
}
  • remote : 다른 경로의 state 를 참조하는 것, 보통 output변수를 불러올때 주로 사용
    • 원격참조개념 (remote state는 key 값에 명시된 state에서 변수를 가져옴)
data "terraform_remote_state" "vpc" {
	backend = "remote"
    
    config = {
    
    	bucket = "terraform-s3-bucket"
        region = "ap-northeast-2"
        key	   = "terraform/vpc/terraform.tfstate"
        }
     }

테라폼 기본 명령어

  1. init : 테라폼 명령어 사용을 위해 각종 설정을 진행
  2. plan : 테라폼으로 작성한 코드가 실제로 어떻게 만들어질지에 대한 예측
    • 가장 많이 쓰이게 됨!
    • 무조건 습관화 필요
  3. apply: 테라폼 코드로 실제 인프라 생성
  4. import : 이미 만들어진 자원을 테라폼 state파일로 옮겨주는 명령어
    • 예를 들면 route53 자원을 state 자원으로 옮겨주기 위할때 사용
  5. state : 테라폼 state를 다루는 명령어, 하위명령어로 my/push와 같은 명령어도 포함
  6. destroy : 생성된 자원 / state 파일 모두 삭제
profile
귀찮아하지말고 계속 정리하고 공부하자

0개의 댓글