해당 내용은 cloudNet@ 팀의 가시다 님이 진행하는 테라폼 스터디 T101 4기에서 학습한 내용을 정리한 것입니다.
1. OpenTofu 소개
- OpenTofu는 클라우드와 온프레미스 리소스를 모두 사람이 읽을 수 있는 구성 파일에 정의하여 버전 관리, 재사용 및 공유할 수 있는 코드 도구로서의 인프라이다.
- 일관된 워크플로를 사용하여 라이프사이클 전체에 걸쳐 모든 인프라를 프로비저닝하고 관리할 수 있다.
- OpenTofu는 애플리케이션 프로그래밍 인터페이스(API)를 통해 클라우드 플랫폼 및 기타 서비스에서 리소스를 생성하고 관리한ㄷ. 공급자는 OpenTofu가 액세스 가능한 API를 통해 사실상 모든 플랫폼이나 서비스와 함께 작업할 수 있도록 한다.
- OpenTofu 커뮤니티는 이미 다양한 유형의 리소스와 서비스를 관리하기 위해 수천 개의 공급자를 작성했다. Amazon Web Service(AWS), Azure, Google Cloud Platform(GCP), Kubernetes, Helm, GitHub, Splunk, DataDog 등을 포함하여 Public OpenTofu Registry 에서 공개적으로 사용 가능한 모든 공급자를 찾을 수 있다.
- 핵심 OpenTofu 워크플로는 세 단계로 구성
- Write 쓰기
여러 클라우드 공급자와 서비스에 걸쳐 있을 수 있는 리소스를 정의한다. 예를 들어, 보안그룹과 로드 밸런서가 있는 Virtual Private Cloud(VPC) 네트워크의 가상 머신에 애플리케이션을 배포하는 구성을 만들 수 있다. - Plan 계획
OpenTofu는 기존 인프라와 구성에 따라 생성, 업데이트 또는 파괴할 인프라를 설명하는 실행 계획을 만든다. - Apply 적용
승인 시 OpenTofu는 모든 리소스 종속성을 존중하여 올바른 순서로 제안된 작업을 수행한다. 예를 들어, VPC의 속성을 업데이트하고 해당 VPC의 가상머신 수를 변경하는 경우 OpenTofu는 가상머신을 확장하기 전에 VPC를 다시 생성한다.
- Write 쓰기
Terraform과 OpenTofu의 차이점
- 기술적인 측면에서 OpenTofu 1.6.x와 Terraform 1.6.x는 매우 유사하다. 앞으로 프로젝트 기능 세트가 갈라질 것이다.
- OpenTofu는 오픈 소스라는 점. 그 목표는 단일 회사가 로드맵을 지시할 수 없는 협력적인 방식으로 추진되는 것(?)
Terraform과 드롭인 대체품으로 OpenTofu를 사용할 수 있는가? OpenTofu는 프로덕션 사용에 적합한가?
- 지금 당장, OpenTofu는 Terraform 버전 1.5.x 및 대부분 1.6.x와 호환되므로 Terraform의 드롭인 대체품입니다. 호환성을 보장하기 위해 코드를 변경할 필요가 없습니다.
- 자세한 내용은 Migration Guide를 참조할 것 : Terraform 1.5 이하, 1.6, 1.7, 1.8 버전별 migration 가이드 제공
OpenTofu가 기존 상태 파일과 호환되는가?
- Terraform 1.5.x로 생성된 파일까지 호환된다.
OpenTofu는 Terraform이 협력하는 모든 공급업체(Provider)와 호환되는가?
- OpenTofu는 자체 공급자(Provider)가 없다.
- OpenTofu는 현재 Terraform 공급자(Provider)와 함께 작동하지만 별도의 레지스트리를 사용한다.
2. OpenTofu 설치 (MacOS)
# (옵션) tfenv 제거
brew remove tfenv
# Tenv 설치
## brew install cosign # 설치 권장
brew install tenv
tenv -v
tenv -h
tenv tofu -h
which tenv
# (옵션) Install shell completion
tenv completion zsh > ~/.tenv.completion.zsh
echo "source '~/.tenv.completion.zsh'" >> ~/.zshrc
3. Tofu 설치 확인
#
tenv tofu -h
tenv tofu list
tenv tofu list-remote
# 설치
tenv tofu install 1.7.3
tenv tofu list
tenv tofu use 1.7.3
tenv tofu detect
# tofu 확인
tofu -h
tofu version
'DevOps' 카테고리의 다른 글
[T1014-실습] OpenTofu 1.7.0 (2) (0) | 2024.08.04 |
---|---|
[T1014-실습] OpenTofu 1.7.0 (0) | 2024.08.02 |
[T1014-실습] Terraform 으로 AWS EKS 배포하기 (0) | 2024.07.24 |
[T1014-이론] EKS? Kubernetes? Karpenter? Helm? ArgoCD? (1) | 2024.07.24 |
[T1014-실습] Terraform Runner (1) | 2024.07.14 |