Terraform

Terraform이란?

Terraform은 HashiCorp가 만든 코드형 인프라(infrastructure-as-code) 도구입니다. 서버, 네트워크, 클라우드 서비스를 설정 파일에 기술하면 Terraform이 이에 맞춰 실제 인프라를 만들거나 변경합니다.

엔지니어와 상담하세요 지식 베이스
상승 타일 바닥이 깔린 데이터 센터 홀의 서버 캐비닛

정의

이런 도구가 없으면 인프라는 웹 콘솔에서 클릭해 가며 구축되고, 나중에 정확히 무엇을 설정했는지 아무도 말할 수 없습니다. Terraform에서는 엔지니어가 있어야 할 것을 기술하는 파일을 작성합니다. 특정 크기의 가상 머신 두 대, 사설 네트워크, 방화벽 규칙, 스토리지 버킷 같은 것들입니다.

Terraform은 프로바이더를 통해 각 플랫폼과 통신합니다. 프로바이더는 해당 플랫폼의 API를 아는 플러그인입니다. AWS, Microsoft Azure, Google Cloud, DNS 서비스 등 많은 프로바이더가 있으며, Proxmox VE용으로는 커뮤니티가 관리하는 프로바이더가 있습니다. 하나의 설정으로 여러 플랫폼을 다룰 수 있습니다.

Plan, Apply, State

  • Plan: Terraform이 파일과 현재 존재하는 것을 비교하여 생성, 변경, 삭제할 항목을 나열합니다. 아직 아무것도 건드리지 않습니다.
  • Apply: 누군가 plan을 검토한 뒤, Terraform이 해당 변경만 수행합니다.
  • State: Terraform은 어떤 실제 리소스가 설정의 어느 부분에 속하는지 기록한 state 파일을 유지합니다. 비밀번호와 다른 민감한 값이 들어 있을 수 있으므로, 노트북 한 대가 아니라 보호되고 공유되는 곳에 보관합니다.

기업이 얻는 것

  • 인프라의 기록: Git에 보관된 파일이 무엇이 존재하는지, 각 변경이 왜 이루어졌는지 보여 줍니다.
  • 변경하는 날에도 놀랄 일이 없습니다. 무언가를 삭제하기 전에 plan이 정확히 무슨 일이 일어날지 보여 줍니다.
  • 반복 가능한 환경: 테스트 환경이나 두 번째 사이트를 운영 환경과 같은 파일로 만들 수 있습니다.

Terraform과 Ansible

Terraform은 머신, 네트워크, 클라우드 서비스 같은 인프라를 만듭니다. Ansible은 그 머신들이 생긴 뒤에 그 위에서 실행되는 것을 설정합니다. 많은 팀이 둘 다 사용합니다.

라이선스와 OpenTofu

2023년에 HashiCorp는 Terraform의 라이선스를 오픈 소스 라이선스에서 Business Source License로 바꾸었으며, 이는 HashiCorp와 경쟁하는 제품에서의 사용을 제한합니다. 이에 대응해 OpenTofu가 오픈 소스 포크로 시작되었고 현재는 Linux Foundation 프로젝트입니다. 같은 설정 언어를 읽습니다. IBM은 2025년에 HashiCorp 인수를 완료했습니다.

KawaConnect가 코드형 인프라를 다루는 방식

저희는 코드형 인프라를 버전 관리에 보관하고, GitOps로 Kubernetes를 운영하며, Proxmox VE 클러스터와 Microsoft Azure 환경을 구축합니다. 인프라를 파일로 기술하면 구축을 반복할 수 있고 모든 변경을 추적할 수 있습니다.

관련 서비스

클라우드 인프라

Azure, 하이브리드 구성, 마이그레이션, 복구 계획.

Proxmox 컨설팅

클러스터, 고가용성, VMware에서의 마이그레이션.

Kubernetes 컨설팅

GitOps로 Git을 통해 변경되는 클러스터.

자세히 보기

  • Terraform 문서설정 언어와 명령줄에 대한 HashiCorp의 가이드와 레퍼런스입니다.
  • Terraform Registry프로바이더와 재사용 가능한 모듈의 공개 카탈로그로, 각각의 문서가 있습니다.
  • OpenTofuLinux Foundation이 관리하는 Terraform의 오픈 소스 포크입니다.
  • 위키백과의 Terraform 항목도구와 그 역사, 2023년 라이선스 변경을 중립적으로 개괄합니다.

클릭으로 인프라를 구축하고 계십니까?

서버와 클라우드 서비스가 어디에서 실행되는지 알려 주십시오. 이를 파일로 기술하려면 무엇이 필요하고 귀사에 어떤 변화가 생기는지 설명해 드리겠습니다.

상담 시작하기