Terraform

이경민·2026년 1월 13일

한화시스템 Beyond SW

목록 보기
51/52

테라폼
인프라스트럭처를 코드로 관리하는 오픈소스
리소스와 서비스를 선언적 구성 파일로 정의하고 프로비저닝*한다.
AWS, Azure, GCP 등 다양한 클라우드 제공업체를 지원하며 버전관리와 협업이 용이함
현재 상태와 목표 상태를 비교하여 필요한 변경사항을 결정하고 계획 및 적용 단계를 통해 일관된 인프라 관리를 가능하게 한다.

*프로비저닝 : 서비스 실행을 위한 인프라 준비과정. 사용자의 요구에 맞게 시스템, 데이터, 소프트웨어 등 IT 리소스를 준비하고 할당하는 프로세스

장점

  • 선언적 구성: 인프라를 코드로 정의하여 가독성과 유지보수성이 높다.
  • 멀티 클라우드 지원: 다양한 클라우드 제공업체와 서비스를 단일 도구로 관리할 수 있다.
  • 상태 관리: 인프라의 현재 상태를 추적하고 관리하여 일관성을 유지한다.

단점

  • 학습 곡선: 테라폼 문법과 개념을 익히는 데 초기 시간 투자가 필요하다.
  • 제한적인 동적 구성: 일부 동적 구성이나 복잡한 로직 구현에 제한이 있을 수 있다.
  • HCL : 테라폼의 설정 언어(.tf 사용)
  • 프로바이더 : 테라폼과 클라우드 서비스를 연결하는 플러그인
    | 클라우드 서비스 모델 | 프로바이더 |
    | --- | --- |
    | IaaS (Infrastructure as a Service) | AWS, Azure, GCP, Alibaba, Oracle Cloud |
    | PaaS (Platform as a Service) | Kubernetes, Docker, AWS Elastic Beanstalk |
    | SaaS (Software as a Service) | Github, GitLab, Atlassian(Jira, Confluence) |
  • 리소스 : 프로바이더를 통해 생성/관리되는 인프라 요소

워크플로우

  1. Write(작성): 인프라를 코드로 정의
  2. Plan(계획): 변경 사항 미리 확인
  3. Apply(적용): 인프라에 변경 사항 적용

실제 코드로 작성하고 적용할 땐
tf config 파일 작성 이후 init → plan → apply

  • 초기화(Init)
    • 명령어: transform init
    • 역할: 프로젝트 디렉토리 초기화, 필요한 프로바이더 다운로드
    • 중요성: 모든 테라폼 프로젝트의 첫 단계
  • 계획(Plan)
    • 명령어: transform plan
    • 역할: 설정 파일 분석, 변경 예정 사항 미리 보기를 통해 해당 디렉토리 이하 모든 .tf 파일 적용 가능 확인
    • 결과: 생성/수정/삭제 될 리소스 목록 제공
  • 적용(Apply)
    • 명령어: transform apply
      • 역할: 계획된 변경 사항을 실제 인프라에 적용(생성, 수정, 삭제)
    • 특징: 실행 전 최종 확인 단계 제공

0개의 댓글