imjihye***
2023-06-25

현업에서 요구하는 진짜 IaC 사용법, 테라폼으로 배우는 인프라 운영의 모든 것
IaC는 컴퓨터에서 읽을 수 있는 정의 파일을 사용해 인프라나 서비스를 관리하고 프로비저닝하는 프로세스이다.
33쪽, 테라폼으로 시작하는 IaC.
테라폼은 ‘프로비저닝’을 지원하는 도구로서, 실제 서비스가 실행되기 위한 인프라를 다지는 역할을 수행한다. 인프라 구성과 설정은 어떤 서비스가 동작하기 위한 기반을 만드는 것이고, 작업을 수행하는 사람은 처음에는 혼자 시작해 서비스 규모가 증가할수록 팀에서 전체 조직으로 확산된다. 이 방식은 코드 기반으로 재활용성을 확보하고 사용자 간 협업을 이끌어낸다.
32쪽, 테라폼으로 시작하는 IaC.
테라폼 입문서를 만든 저자 중 절반은 LG U+ Cloud 관련 팀에서 근무하고 있다. 실제 적용 사례를 기반으로 책을 작성하여 테라폼이 활용되어야 할 이유에 공감할 수 있고, 현실적인 기술 적용 방법을 익혀볼 수 있었다. 다른 산업보다도 활발하게 MSA로 전환하는 통신업이기에 IT 추세 또한 살펴볼 수 있다.
IaC를 이해하기 전, 인프라 자동화 단계와 요즘의 IT 환경 추세를 파악하고 있어야 한다. 인프라와 IT의 발전 단계를 몸소 경험했거나 경험하지 않은 이들 모두에게 전달될만한 발전 단계를 설명한다. IaC를 통해 인프라 관리에 대해 관심을 갖게 된 이들에게도 도움이 될 것이다.
좋은 코드의 특징과 IaC는 어떤 관계가 있을까? 먼저 인프라도 좋은 코드처럼 관리가 가능하다. 앞서 자동화를 위해서는 문서화해야 했고, 인프라 종속성을 분석해 관리하며, 인프라 자원 변경이 있을 때마다 변경하고, 그 결과물 또는 결과물을 만들어내는 도구를 관리하고, 다시 사용할 수 있게 만들어야 했다. 이러한 복잡한 과정 대신 좋은 코드가 좋은 인프라 자동화 방식으로 이어지도록 만들어주는 게 IaC의 특징이다.
32쪽, 테라폼으로 시작하는 IaC.
앞서 말했던 인프라 관리에 관한 지식 외에도 좋은 코드에 대한 정의를 짚고 가야한다. 테라폼은 GUI 형식이 아닌 코드로 환경을 관리하기 때문에 좋은 코드가 곧 좋은 관리가 되는 것이다. 테라폼을 사용하고자 한다면 이 점을 반드시 되새기고 가는 것이 좋을 듯 하다.
- 속도와 효율성: 사람이 수동으로 작업할 때 보다 빠르고, 불필요한 인프라 구성을 방지하여 생산성을 높인다. 또한 코드를 변경하여 적용하면 인프라도 변경되어 기존 방식보다 변경 속도가 빠르다.
- 버전 관리: 코드 형태로 관리하기 때문에 버전 관리 툴(VCS)과 연계할 수 있다. 변경 내용을 추적하고 이전 코드로 되돌리거나 비교할 수 있다.
- 협업: 파일 형태로 되어 있어 쉽게 공유할 수 있고, 버전 관리 툴과 연계하면 공동 작업을 위한 환경을 만들 수 있다.
- 재사용성: 코드의 주요 반복 또는 표준화된 구성을 패키징하면 매번 새로 코드를 구성하지 않고 기존 모듈을 활용해 배포할 수 있다.
- 기술의 자산화: 관리 노하우와 작업 방식이 코드에 녹아 있고, 파이프라인에 통합해 워크플로 형태로 자산화되어 기술 부채를 제거한다.
33쪽, 테라폼으로 시작하는 IaC.
IaC를 도입하고자 하는 이유는 위의 항목들에서 확인할 수 있다. 기업에서 IT를 활용할 때 추구하는 덕목과 맞닿아있다. Cloud 도입이 높아지고 있는 요즘, IaC의 필요성이 대두되고 있는 이유라 할 수 있다. IaC의 필요성과 그중 테라폼을 활용하고자 하는 당위성을 알게 되었으니, 실습 단계로 넘어가고자 한다.
이 책에서는 IDE로 VS CODE를 사용한다. VS CODE에서 테라폼 관련 확장 도구를 제공한다.
3장에서는 테라폼의 기본 사용법에 대해 소개한다. 주요 커맨드를 간단히 숙지하고 커맨드 사용법에 대해 배운다. 작업 디렉토리를 초기화하는 데 사용되는 init, 디렉토리에 있는 테라폼 구성 파일의 유효성을 확인하는 validate, 테라폼으로 적용할 인프라의 변경 사항에 관한 실행 계획을 생성하는 teraform plan 등 세부 옵션에 대해서도 안내한다.
하나의 서비스를 개발하다 보면 시야가 좁아질 가능성이 있다. 이는 종종 근본적인 실수를 야기하기도 한다. '테라폼으로 시작하는 IaC'로 기본적인 환경 관리에 대한 지식을 상기하면서도 새로운 지식들을 쌓을 수 있었다. 특정 서비스 개발에 국한된 것이 아닌 넓은 관점으로 개발하고 싶은 이들에게도 이 책을 추천한다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.