-
Notifications
You must be signed in to change notification settings - Fork 0
Terraform
Jae-Baek Song edited this page Jul 26, 2024
·
2 revisions
테라폼은 iaC(Infrastructure as Code) 도구중 하나로 코드를 통해 인프라 서버를 관리 할 수 있게 해주는 도구입니다.
장점
- 코드로 인프라를 관리하기 때문에 자동화가 가능하다.
인프라를 코드로 관리하기 때문에 따로 문서화가 필요 없고 전체 구성을 파악하기 쉽다.
Git을 통한 형상 관리 및 변경 이력 관리가 가능하다.
- 코드 리뷰를 통해서 수동으로 인프라를 변경하는 것 보다 안전하고, 변경사항을 미리 확인해 피드백을 받을 수 있다.
단점
- 러닝 커브
테라폼(Terraform) 버전 차이에 따라 변경된 명령어가 많아 하위 호환성이 보장되지 않는 경우가 많다. 공식 문서 외의 자료를 찾을 때도 이 점에 유의해야 한다.
초보 | terraform을 사용할줄만 아는 수준 | 일주일 |
---|---|---|
중수 | terraform code를 리팩토링하고 구조화할 줄 아는 수준 | 1~3달 |
고수 | terraform의 함수, 모듈과 같은 고급 기능을 자유롭게 쓸 수 있는 수준 | 3달 이상 |
https://openupthecloud.com/how-long-to-learn-terraform/
백엔드 팀에서 terraform을 처음에 도입할 때 일주일 정도 소요되었기 때문에 저도 동의하는 편입니다. 다만, 중수와 고수 부분은 경험해보지 못해서 말씀드리기가 어려운데요. 저와 팀의 terraform 숙련도가 초보와 중수 그 사이 어딘가에 있는 가장 큰 이유는 이 정도만 알아도 서비스를 관리하기에 충분했기 때문이라고 생각합니다. https://goodahn.tistory.com/84
https://discuss.hashicorp.com/c/terraform-core/27
https://github.com/hashicorp/terraform/issues
테라폼 포럼이나 깃허브 이슈를 통해서 대부분의 문제를 해결할 수 있다.
https://terraform101.inflearn.devopsart.dev/preparation/install-terraform-aws/
https://terraform101.inflearn.devopsart.dev/preparation/aws-configure/
terraform init # 환경을 초기화시킵니다
terraform plan # 상태를 적용시킨다면 어떤 결과가 발생할지 미리 확인합니다.
terraform apply # 상태를 적용시킵니다.
terraform destroy # 모든 상태를 파괴(삭제)합니다.