필자 생각
: 테라폼 1.6 버전까지 작성된 테라폼 코드와 혹은 최신 코드라 해도 최신 기능들을 코드에 사용하지 않았다면, 거의 대부분 OpenTofu 로 마이그레이션해서 관리가 가능합니다. 또한 테라폼에 약간 아쉬운 기능들이, OpenTofu 1.7, 1.8 버전 업 될 때마다 추가가 되고 있어서 사용하는 유저의 입장에서는 테라폼과, OpenTofu 를 비교해서 각자의 회사 환경에 적합한 툴을 선택해서 검증 후 사용하기를 권합니다.
OpenTofu 소개
[GeekNews] OpenTF → OpenTofu 관련 글
- ‘23.08
- HashiCorp가 Terraform 라이선스를 Mozilla Public License (MPL) → 비오픈 소스 라이선스인 Business Source License (BUSL)로 변경 - Link
- [참고] HashiCorp가 제공하는 Provider는 여전히 MPL-2.0 License - AWS GCP ⇒ OpenTofu Fork하여 사용 - AWS GCP
- OpenTF, Terraform의 포크 발표 - Link
- OpenTF 선언문* - Link / (현재) 선언문 - Link
- ‘23.09
- OpenTF 저장소가 이제 공개되었습니다 - Link
- 테라폼의 포크버전 OpenTF가 OpenTofu로 이름을 변경 - Link
- ‘24.04 - IBM, HashiCorp 인수 계약 체결, 인수가 64억 달러 - Link
- ‘24.05 - Oracle, 기업용 제품에서 사용중인 Terraform을 OpenTofu로 교체 - Link
- Oracle E-Business Suite (EBS) Cloud Manager의 최신 버전에서 Terraform 대신 오픈소스 포크인 OpenTofu를 사용
- 2024년 3월에 출시된 OpenTofu 1.7 버전은 엔터프라이즈 수준에서 사용 가능한 첫 번째 버전
OpenTofu 소개 : The open source infrastructure as code (IaC) tool - Link
- Previously named OpenTF, OpenTofu is a fork of Terraform that is open-source, community-driven, and managed by the Linux Foundation
Intro - Link
- OpenTofu는 클라우드와 온프레미스 리소스를 모두 사람이 읽을 수 있는 구성 파일에 정의하여 버전 관리, 재사용 및 공유할 수 있는 코드 도구로서의 인프라입니다. 그런 다음 일관된 워크플로를 사용하여 라이프사이클 전체에 걸쳐 모든 인프라를 프로비저닝하고 관리할 수 있습니다.
- OpenTofu is an infrastructure as code tool that lets you define both cloud and on-prem resources in human-readable configuration files that you can version, reuse, and share. You can then use a consistent workflow to provision and manage all of your infrastructure throughout its lifecycle.
How does OpenTufu work?
- OpenTofu는 애플리케이션 프로그래밍 인터페이스(API)를 통해 클라우드 플랫폼 및 기타 서비스에서 리소스를 생성하고 관리합니다. 공급자는 OpenTofu가 액세스 가능한 API를 통해 사실상 모든 플랫폼이나 서비스와 함께 작업할 수 있도록 합니다.
- OpenTofu creates and manages resources on cloud platforms and other services through their application programming interfaces (APIs). Providers enable OpenTofu to work with virtually any platform or service with an accessible API.
- OpenTofu 커뮤니티는 이미 다양한 유형의 리소스와 서비스를 관리하기 위해 수천 개의 공급자를 작성했습니다 . Amazon Web Services(AWS), Azure, Google Cloud Platform(GCP), Kubernetes, Helm, GitHub, Splunk, DataDog 등을 포함하여 Public OpenTofu Registry 에서 공개적으로 사용 가능한 모든 공급자를 찾을 수 있습니다.
- The OpenTofu community have already written thousands of providers to manage many different types of resources and services. You can find all publicly available providers on the Public OpenTofu Registry, including Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk, DataDog, and many more.
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=
- OpenTofu Workflow - Link
-
Write 코드 작성:
여러 클라우드 공급자와 서비스에 걸쳐 있을 수 있는 리소스를 정의합니다. 예를 들어, 보안 그룹과 로드 밸런서가 있는 Virtual Private Cloud(VPC) 네트워크의 가상 머신에 애플리케이션을 배포하는 구성을 만들 수 있습니다.
-
Plan 계획:
OpenTofu는 기존 인프라와 구성에 따라 생성, 업데이트 또는 파괴할 인프라를 설명하는 실행 계획을 만듭니다.
-
Apply 적용:
승인 시 OpenTofu는 모든 리소스 종속성을 존중하여 올바른 순서로 제안된 작업을 수행합니다. 예를 들어, VPC의 속성을 업데이트하고 해당 VPC의 가상 머신 수를 변경하는 경우 OpenTofu는 가상 머신을 확장하기 전에 VPC를 다시 생성합니다.
FAQ - Link
OpenTofu와 Terraform의 차이점은 무엇인가요?
- 기술적인 측면에서 OpenTofu 1.6.x는 Terraform 1.6.x와 기능적으로 매우 유사합니다. 앞으로는 프로젝트 기능 세트가 갈라질 것입니다.
- 또 다른 주요 차이점은 OpenTofu는 오픈 소스라는 점이며, 그 목표는 단일 회사가 로드맵을 지시할 수 없는 협력적인 방식으로 추진되는 것입니다.
Terraform의 드롭인 대체품으로 OpenTofu를 사용할 수 있나요? OpenTofu는 프로덕션 사용에 적합할까요?
- 지금 당장, OpenTofu는 Terraform 버전 1.5.x 및 대부분 1.6.x와 호환되므로 Terraform의 드롭인 대체품입니다. 호환성을 보장하기 위해 코드를 변경할 필요가 없습니다.
- 자세한 내용은 마이그레이션 가이드를 참조하세요 : Terraform 1.5 이하, 1.6, 1.7, 1.8 버전별 마이그레이션 가이드 제공
OpenTofu가 기존 상태 파일과 호환되나요?
- OpenTofu는 Terraform 버전 1.5.x로 생성된 파일까지 기존 상태 파일을 지원합니다.
OpenTofu는 Terraform이 협력하는 모든 공급업체와 호환됩니까?
- OpenTofu는 자체 공급자가 없습니다. Terraform 공급자는 라이선스를 변경하지 않았으며 그러한 변경 가능성은 사실상 0입니다.
- OpenTofu는 현재 Terraform 공급자와 함께 작동하지만 별도의 레지스트리를 사용합니다.
Blog - Link
- ‘24.07 - OpenTofu 1.8.0 (출시) is out with Early Evaluation, Provider Mocking, and a Coder-Friendly Future - Link
- ‘24.07 - Get ready for OpenTofu Beta 1.8.0 - Link
- ‘24.04 - OpenTofu 1.7.0 is out with State Encryption, Dynamic Provider-Defined Functions, and more - Link
- ‘24.04 - Our Response to Hashicorp's Cease and Desist Letter - Link
- ‘24.01 - OpenTofu is going GA - Link
OpenTofu 설치
[참고] Install OpenTofu - Link
- Tenv 소개 : OpenTofu / Terraform / Terragrunt and Atmos version manager - Link / Github - Link
- Tenv (openTofu)설치 및 확인
OpenTofu 1.7.0
[실습 시나리오 참고] : https://www.youtube.com/watch?v=CQkUszVlemE&list=PLcTwvG0VZZTcrILMJDvLOMrrMcWlXFUla
- [실습] Provider-defined functions - Docs
- [실습] Loopable import blocks - Docs
- [실습] State file encryption - Local - Docs
- [실습] State file encryption - AWS KMS