현재 연합동아리 CloudClub에서 Terraform & Ansible 스터디를 하고 있다.
매주 Terraform과 Ansible을 공부한 내용을 기록하고자 한다!
제목에서 언급했듯, Terraform은 IaC 도구이다.
여기서 IaC란 Infrastructure as Code를 의미하고 이는 코드로 인프라를 관리한다는 것을 뜻한다.
인프라를 코드로 관리하게 되면 다음과 같은 장점이 생긴다.
1. 인프라를 코드로 정의하여 생산성과 투명성을 높임.
2. 정의한 코드를 공유하여 효율적으로 협업 가능
3. 자동화
4. 오류감소
인프라 리소스에 대한 정의, 구성에 대한 설정을 코드 파일로 정의한다.
참고: Terraform 관련 코드 파일의 확장자는 tf이다
ex) main.tf, provider.tf 등
Terraform은 기존 인프라 및 구성을 기반으로 생성, 업데이트 또는 Destoy할 인프라를 설명하는 실행 계획을 생성한다.
현재 인프라 상태에서 원하는 인프라 상태의 예상되는 변경점을 미리 확인할 수 있는 단계이다.
해당 단계에서 Terraform은 모든 리소스 종속성을 고려하여 올바른 순서로 제안된 인프라 구성을 수행한다
리소스의 선후관계를 명시하지 않아도 알아서 순차적, 병렬적으로 실행된다.
앞선 Terraform의 단점에도 불구하고 장점이 가져다 주는 효용성이 크기 때문에, 현재 Devops 엔지니어나 Cloud 관련 직무에서 Terraform 사용 경험을 많이 요구하는 것 같다.
또한, 지금까지 살펴본 바에 따르면 아주 매력적으로 다가오기 때문에.. 스터디 기간동안 한 번 제대로 파봐야겠다...