Terraform 기본

운영하는은영이·2023년 1월 14일
0

AWS&Terraform

목록 보기
2/11

Terraform 기본

Terraform

인프라를 만들고, 변경하고, 기록하는 도구
AWS, Azure, GCP같은 퍼블릭 클라우드 뿐 만이 아니라 다양한 서비스들 지원

테라폼 구성 요소 ( 6개 )

  • provider : 테라폼으로 생성할 인프라의 종류
  • resource : 테라폼으로 실제로 생성할 인프라 자원
  • state : 테라폼을 통해 생성한 자원의 상태
  • output :테라폼으로 만든 자원을 변수 형태로 state에 저장
  • module : 공통적으로 활용할 수 있는 코드를 문자 그대로 모듈 형태로 정의
  • remote : 다른 경로의 state를 참조하는 것. output 변수를 불러올 때 주로 사용

테라폼 코드 형태

provider

  • 보통 provider.tf로 파일 생성
  • 형태 : provider "실제프로바이더" {
    다양한 arguments (ex:aws 리소스를 다루기 위한 파일들을 다운로드 하는 역할)
    }
  • 예시 코드
    provider "aws" {
        region = "ap-northeast-2"
        version = "~> 3.0"
        }

resource

  • 보통 main.tf, vpc.tf 등 원하는 형태로 파일 이름을 사용
  • 형태 : resouce "사용할 리소스(어떤 리소스를 만들지)" "리소스의 이름" {
    다양한 arguments
    }
  • 예시 코드
    resource "aws_vpc" "example" {
    	cidr_block = "10.0.0.0/16"
    }

state

  • 테라폼 명령어로 생성한 리소스의 결과값. 인프라의 실제 상태 X
  • state 상태와 현재 인프라를 일치시는 것이 중요

output

  • state 파일로 저장. 저장한 값들은 재사용 가능
  • 예시 코드
    output "cidr_block" {
        value = aws_vpc.default.cidr_block
        }
    
      
      

module

  • 한번 만들어진 테라폼 코드로 같은 형태를 반복적으로 만들어낼 때 주로 사용
  • 예시 코드
    module "vpc" {
        source = "../_modules/vpc"
        cidr_block="10.0.0.0/16"
        }

remote

  • 원격 참조 개념으로 이해
  • 예시 코드
      data "terraform_remote_state" "vpc" {
          backend = "remote"
          config = {
              bucket 	= "terraform-s3-bucket"
              region 	= "ap-northeast-2"
              key		= "terraform/vpc/terraform/sfstate"
              }
          }
    		```
      

Terraform 기본 명령어

  • init : 테라폼 명령어 사용을 위해 각종 설정을 진행
    : 최초의 테라폼 명령을 실행할 때 실행해줘야 함
  • plan : 테라폼으로 작성한 코드가 실제로 어떻게 만들어질지에 대한 예측 결과를 보여줌
    : 가장 많이 쓰이는 명령어
  • apply : 테라폼 코드로 실제 인프라를 생성하는 명령어
  • import : 이미 만들어진 자원을 코드로 만들고 싶을 때 테라폼 state 파일로 옮겨주는 명령어
  • state : 테라폼 state를 다루는 명령어. 하위 명령어로는 my, push가 있음
  • destroy : 생성된 자원들 state 파일 모두 삭제하는 명령어

테라폼 명령어의 Process

init -> plan -> Apply

profile
ผ(•̀_•́ผ) (ง •_•)ง

0개의 댓글