Skip to content
Kendrick's Website Kendrick's GitHub Kendrick's Youtube Kendrick's Travel blog

[도서 리뷰] 테라폼으로 시작하는 IaC

8 min read
Cover

테라폼으로 시작하는 IaC

한 6년전 회사에 인프라스트럭처를 초기 구축할 때, IaC(Infrastructure as Code)를 위해 Ansible, Puppet, Chef 같은 여러 툴을 검토했습니다. Terraform 역시 후보 중 하나였지만, 최종적으로는 Ansible을 선택하게 되었습니다. 그런 이유로 지금까지 Terraform을 깊이 사용해보지 못했지만, 이번에 ‘나는 리뷰어다’를 통해 Terraform 관련 도서를 리뷰할 기회를 얻게 되어 좀 더 집중적으로 탐구하게 되었습니다.

이 책은 기존의 인프라스트럭처나 데브옵스 서적과는 다르게, 전반적으로 Terraform에 집중합니다. Terraform이라는 툴의 기본 철학과 원리를 이해하도록 유도하며, 1장에서는 Terraform의 목적을 명확히 짚고 넘어가는 것으로 시작합니다. 이 과정에서 Terraform이 인프라스트럭처 관리를 얼마나 체계적이고 효율적으로 도와줄 수 있는지 이해하게 됩니다.

파트 1. 처음 만나는 테라폼

책의 첫 번째 파트에서는 Terraform의 기본 개념을 소개하고, 실습을 통해 주요 명령어와 설정 방법을 익히도록 구성되어 있습니다. 약 6년 전 VM을 위해 Vagrant를 사용했던 기억이 새록새록 떠오릅니다. Docker를 주로 사용하게 되면서 Vagrant의 사용 빈도가 줄어들었지만, Terraform이 Vagrant의 전신이라는 사실은 처음 알았습니다. 이 점이 굉장히 흥미로웠고, Terraform이 어떻게 진화해 왔는지를 알 수 있어 유익했습니다.

1장에서는 Terraform의 기본 환경 설정과 주요 기능을 개괄적으로 다룹니다. 이후 2장과 3장에서는 Terraform의 기본 세팅과 주요 명령어들을 직접 실행해보는 실습이 포함되어 있어, 단계별로 따라 하며 Terraform의 핵심 문법과 구조에 익숙해질 수 있었습니다. 특히, Terraform이 사용하는 HashiCorp의 DSL인 HCL(HashiCorp Configuration Language)을 익히기 좋은 예제와 설명이 많아 자연스럽게 HCL 문법에 대한 감을 잡을 수 있었습니다.

책에 코드 예제가 많이 포함되어 있고, 삽화도 많은 편이라 따라하기 좋았습니다. 파트 2. 구축부터 운영까지, 테라폼 워크플로

모든 파트가 중요하지만, 개인적으로 파트 2가 핵심이라 생각합니다. 인프라스트럭처의 가장 큰 역할 중 하나는 협업을 위한 환경을 만드는 것입니다. Terraform을 사용하면 누구나 같은 코드를 통해 인프라 환경을 일관되게 배포할 수 있어, 협업의 효과를 극대화할 수 있습니다. 파트 2에서는 이러한 협업적 환경을 설정하고 관리하는 부분에 집중하고 있습니다.

또한, 파트 2에서는 Terraform의 상태 관리(State)와 모듈화(Module)를 다루며, 인프라스트럭처 코드를 더욱 효율적이고 재사용 가능하게 설계하는 방법을 알려줍니다. State 파일을 통해 현재 인프라의 상태를 추적하고, 이를 통해 원하는 변경 사항이 반영되도록 관리하는 부분은 Terraform을 사용하는 데 있어 중요한 개념이었습니다. 이를 통해 복잡한 인프라 구성을 안정적으로 유지하고, 개발 및 운영 팀이 쉽게 환경을 공유할 수 있게 됩니다.

마지막장의 생성형 AI와 Terraform의 접목 부분은 매우 흥미로웠습니다. LLM(대형 언어 모델)을 활용해 생산성을 높이는 예제와, Streamlit으로 구현한 간단한 Terraform 코드 생성기를 사용하는 방법을 다룹니다. 다른 IaC 서비스인 Pulumi에서 AI 기능을 도입한 사례를 봤을 때 인상 깊었는데, Terraform에서도 비슷한 시도가 이루어지고 있다는 점이 반가웠습니다. 아직 최적화는 더 필요하지만, AI를 통해 코드 작성 시간을 단축하고 오류 가능성을 줄이는 데 상당히 유용할 수 있겠다는 생각이 들었습니다.

마치며

이 책은 전반적으로 쉬운 내용은 아닙니다. 기본적인 네트워크 및 클라우드 환경에 및 개발 Flow나 테스트 등 전체적인 싸이클에 대한 이해가 필요하기 때문에, 관련 데브옵스나 인프라스트럭처에 관해 미리 공부하고 읽는 것이 좋다고 생각합니다. 인프라스트럭처와 Terraform에 관심이 있는 분들께는 추천할 만한 책입니다.

Terraform은 단순히 코드를 작성하는 것에서 그치지 않고, 실제로 협업과 자동화를 통해 인프라스트럭처를 안정적으로 관리할 수 있도록 돕는 도구입니다. 책에서 제공하는 예제를 따라 실습하다 보면, 단순히 코드 작성 이상의 경험을 쌓을 수 있습니다. Terraform의 핵심 기능들을 깊이 있게 다룬 이 책을 통해 인프라스트럭처 관리에 한 걸음 더 다가가 볼 수 있을 것 같습니다.

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."