Terraform

Louis·2022년 11월 7일
0

Terraform

목록 보기
1/6
post-thumbnail

Terraform이란 무엇인가.?

테라폼은 하시코프에서 오픈소스로 개발중인 클라우드 인프라스터럭처 자동화를 지향하는 코드로서 인프라스트럭처(IaC) 도구이다.

IaC란?

  • IaC(Infrastructure as Code)는 코드로 인프라스트럭처를 관리한다는 개념으로 테라폼에서는 하시코프 설정 언어(HCL)을 사용해 클라우드 리소스를 선언합니다.
    쉽게 말해 인프라를 사람이 읽을 수 있는 코드로 만든다는 의미 입니다.

Terraform의 장점은..

1. 자동화

  • 수동으로 서버를 생성하는게 아닌 코드로 생성하기 때문에 서버 운영 및 관리가 모두 자동화 될 수 있습니다.

2. 속도 & 안전

  • 코드로 실행되기 때문에 사람이 수동으로 작업하는 것보다 훨씬 빠르며 또한 사람이 직접 할 때 생길 수 있는 실수들을 방지할 수 있습니다.

3. 문서화

  • 모든 인프라가 코드로 기록 및 관리 뙤기 때문에 자동으로 문서화가 됩니다.
  • 가장 큰 장점 중 하나로 많은 회사에서 인프라를 직접 구현하고 관리한 담당자를 제외하고는 전체 서버를 전부 파악하고 있는 사람이 없는 경우가 많습니다. 하지만 테라폼의 경우에는 새로 들어온 개발자라도 코드를 보면 전체적인 구성을 이해할 수 있습니다.

4. 형상관리

  • git을 통해 형상관리가 가능하며, 인프라의 변경 기록을 쉽게 볼 수 있습니다.

5. 리뷰 및 테스트

  • 코드 리뷰와 테스트를 통해 문제가 실제로 발생 되는 것을 어느 정도 예방 할 수 있습니다.

테라폼의 기본 개념

1. 프로비저닝

  • 어떤 프로세스나 서비스를 실행하기 위한 준비 단계
  • 프로바이더로는 AWS, GCP, Azure와 같은 범용 클라우드 서비스를 비롯해 깃허브, 데이터 도그와 같은 특정 기능을 제공하는 서비스, mysql, 도커와 같은 로컬 서비스를 지원합니다.

2. Resource

  • 리소스란 특정 프로바이더가 제공해주는 조작 가능한 대상의 최손 단위를 의미합니다.

3. Plan

  • 테라폼 프로젝트 디렉터리 아래의 모든 .tf 파일의 내용을 실제로 적용 가능한지 확인하는 작업을 말합니다.
  • 테라폼은 이를 terraform plan 명령어로 제공하며, 이를 명령어로 실행하면 어떤 리소스가 생성되고, 수정되고, 삭제될지 보여줍니다.

4. Apply

  • 테라폼 프로젝트 디렉터리 아래의 모든 .tf 파일의 내용대로 리소스를 생성, 수정, 삭제하는 일을 Apply를 통해서 적용합니다.
profile
인프라 운영하는 개발자

0개의 댓글