해당 스터디는 90DaysOfDevOps
https://github.com/MichaelCade/90DaysOfDevOps
를 기반으로 진행한 내용입니다.
Day 8 - Culinary Coding: Crafting Infrastructure Recipes with OpenTofu
OpenTofu는 Terraform과 유사한 '오픈 소스 인프라형 코드 (laC) 도구'이다.
이전에는 OpenTF로 불렸으며, Terraform의 오픈 소스 Fork로 최근에는 Linux Foundation에 합류하였다.
OpenTofu의 주요 동기는 '기존 Terraform 생태계의 격차를 해소하고 개선하며 Terraform의 대안'이 되는 것이다.
Terraform을 개발한 하시코프 (HashiCorp)가 기존의 오픈소스 라이선스(MPL)를 BSL(Business Source License)로 변경하면서 더 이상 오픈소스가 아니게 되었고, 특정 비즈니스 사용 사례에서 Terraform 사용 여부를 판단하기 어려워 졌다.
이러한 문제를 해결하기 위해, Terraform이 라이선스를 변경하기 직전의 마지막 오픈소스 버전을 기반으로 여러 기업과 커뮤니티가 합쳐 완전한 오픈소스 대안인 OpenTofu를 만들었다.
앞서 말한 것처럼, OpenTofu는 Terraform의 Fork이므로, Terraform 1.5x 에서 1.6 버전까지의 모든 구성요소와 호환된다.
또한, 이미 Terraform을 사용하여 인프라를 구축한 경우, 기존의 Terraform 상태 파일, 변수 및 구성 요소를 OpenTofu와 함께 사용할 수 있어 전체를 다시 작성할 필요가 없다.
테라폼 (Terraform)은 Infrastructure를 코드로 관리하고 프로비저닝하는 오픈 소스 도구이다.
HashiCorp에 의해 개발되었으며, 클라우드 서비스, VM, Storage 등 다양한 서비스에 대한 관리를 자동화하는 데 사용된다.
Terraform을 사용하여 인프라의 구성을 코드로 작성하고, 코드를 사용하여 인프라 생성, 변경 및 관리할 수 있다.
해당 이미지는 Terraform의 인프라 관리 및 프로비저닝 프로세스를 나타내는 워크플로우 과정도이다.
자세한 용어 설명은 다음과 같다.
Terraform은 해당 동작 방식을 가지고 있으며, 추가적으로 Apply 과정에 제시된 AWS, GCP, DataDog 이외에도 약 1000개 이상의 다양한 Provider들과 호환이 가능하다.