1. 테라폼이란?

terraform 은 Hashicorp에서 오픈소스로 제공하는 ICA(Infrastructure as Code)이다.
서비스가 되는 환경을 구성하는 프로비저닝 도구로 분류되며, Cloud 환경에 제약없이 사용이 가능하다.
terraform은 GUI(Graphical user interface)나 웹 콘솔을 이용해 관리하던 것을 Code로 관리할 수 있게해준다.
이로써 구성을 버젼 관리가 쉬워지고 수작업으로 인한 실수가 적어진다.

특징

  • Infrastructure ad Code : 코드 베이스
  • Execution Plans : 사전 테스트
  • Resource Graph : 리소스 의존관계 처리
  • Change Automation : 변경사항 자동화 가능하다.

2. Cloud 별 ICA

종류

  • AWS : AWS Cloud Formation
  • GCP : Google Cloud Deployment Manager

장점

  • Cloud 별 ICA
    Cloud의 신규 서비스 대응이 빠르다.
  • terraform
    Cloud에 종속되지 않는다.

단점

  • Cloud 별 ICA
    Cloud에 종속 된다.
  • terraform
    Cloud의 신규 서비스 대응이 상대적으로 느리다.

3. 기본 용어 정리

프로비저닝 (Provisioning)

  • 서비스를 실행 하기위한 준비단계
  • 네트워크, 컴퓨팅 자원을 준비 작업 & 준비된 컴퓨팅 자원에 사이트 패키지나 어플리케이션 의존성을 준비하는 단계
  • terraform은 전자에 치우쳐 있다.

프로바이더 (Provider)

  • 외부 서비스를 연결해주는 기능을 하는 모듈
  • AWS, GCP 등등이 프로바이더(Provider)로 있다.

리소스 (Resource)

  • 프로바이더가 제공하는 제품의 최소 단위.
    ex> EC2 Instance, Public IP 등등

HCL (Hashicorp Configration Language)

  • Terraform 에서 사용하는 언어
  • 확장자는 .tf를 사용

계획 (Plan)

  • .tf 파일의 내용이 실제 적용이 가능한지 확인 작업
  • 리소스에 어떤 영향(create, update, delete 등)을 미칠지 보여준다.

적용 (Apply)

  • 계획 (Plan)을 실제 서비스에서 수행하는 단계

4. 설치

Ubuntu

WINDOWS 10

  • 다운로드
    https://www.terraform.io/downloads.html
  • 압축을 풀어 아래 폴더를 만들고 terraform.exe를 위치시킨다.
    C:\terraform
  • 환경변수에서 [시스템 변수]-[Path] 에 C:\terraform을 추가시킨다.

+ Recent posts