Terraform 시작하기 # 1. Terraform & Install

hyehye^-^·2022년 10월 18일
0

[Terraform] 테라폼

목록 보기
1/1

1. Terraform ?

인프라스트럭처를 코드로서 작성, 계획, 생성하는 도구

HashCorp 에서 개발한 오픈소스 IaC(Infrastructure as code) 소프트웨어다.
테라폼에서 제공하는 HCL(Hashcorp Configuration Language) 라는 고수준 설정 언어 혹은 json 을 이용해서 데이터센터 인프라스트럭처를 정의 할 수 있다.

테라폼은 AWS, IBM Cloud, GCP, Azure, Oracle Cloud, OpenStack 등의 인프라스트럭처 제공자를 지원한다.

2. 기본 개념

테라폼은 코드작성 > plan > apply 순으로 동작한다.
아래에서 설명하겠지만 apply 명령어 실행시에 실제 인프라 리소스가 생성된다.

  • resource
    실제로 생성할 인프라 자원을 의미
  • provider
    리소스들이 배포될 환경을 정의한 것으로 aws, gcp, azure 등이 있다.
  • output
    인프라를 프로비저닝 한후에 생성된 자원에 대한 데이터를 output으로 확인할 수있으며 다른 모듈에서 이전에 생성한 리소스 데이터에 접근하기 위해 정의하고 사용한다.
  • tfstate
    현재 테라폼 리소스들의 정보를 정의 (최신 상태 정보)
    테라폼 apply/deploy 시 기존 tfstate 상태를 기준으로 수행되며 현재 리소스 상태와 tfstate 상태가 일치하지 않을 경우 오류가 발생할 수 있다.
  • backend
    Terraform 상태(tfstate) 파일이 저장되는 위치를 정의
  • module
    관련있는 요소끼리 모아 하나의 패키지를 만든다. 예를 들어 VPC 모듈의 경우 서브넷, netmask 등의 리소스를 하나의 패키징을 하고 해당 모듈을 사용하면 변수만 바꿔서 동일한 리소스를 손쉽게 생성 할 수 있다.

✏️커맨드

1. init

Terraform을 사용하기 위해, 설정한 provider 나 module 등을 download 받는 initialize 동작을 수행한다.
terraform init은 provider 나 module 등의 initialization 정보가 바뀔때만 한번씩 실행해 주면 된다.

2. plan

내가 code 로 작성한 infrastructure 를 실제로 적용하기 전에 변경사항을 체크해볼 수 있는 명령어다.
+ 표시와 함께 생성되는 resource 가 무엇인지 보여주는 화면이 나타난다.
terraform plan을 통해 나타나는 resource 의 변경 결과는 create, update, destroy 중 하나다.

  • -> create
    ~ -> update
  • -> destroy

3. apply

code 로 작성된 infrastructure 를 실제로 적용시키는 명령어다.

4. destroy

terraform 으로 생성된 insrastructure resource 들을 모두 제거하고 싶을 때 사용하는 명령어다.

테라폼은 디렉토리에 있는 모든 *.tf 파일을 읽고 수행한다.

테라폼 컨벤션으로 보통 아래와 같이 정의됨
-provider.tf : provider / module 의 버전 의존성
-variables.tf : variable 관련
-outputs.tf : output 관련
-main.tf :
-README.md

3. 설치

  • MacOS
$ brew tap hashicorp/tap
$ brew install hashicorp/tap/terraform
  • MacOS (m1)
$ brew tap hashicorp/tap
$ arch -arm64 brew install hashicorp/tap/terraform

기타
https://www.jacobbaek.com/1067
https://ssup2.github.io/record/OpenStack_Terraform_%EC%8B%A4%EC%8A%B5_Kubernetes_%ED%99%98%EA%B2%BD_%EA%B5%AC%EC%B6%95/

profile
안녕 코더? 혼자보려고 끄적이는 공간이에요.

0개의 댓글