연재 시리즈

테라폼 시리즈 1편. IAC 정의와 테라폼

악분 2022. 10. 17. 22:36
반응형

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다.

 

1. IAC란?

테라폼은 IAC도구입니다. 그러므로 IAC가 무엇인지 이해하는게 중요합니다. IAC(Infrastructure as Code, IaC)는 코드로 인프라를 관리하는 방법입니다. 

 

코드로 인프라를 관리한다는 말이 무엇일까요? 사용자는 생성/수정/삭제하고 싶은 인프라 자원을 코드로 작성합니다. 그리고 사용자가 IAC도구를 실행하면, IAC도구가 코드를 해석해석 인프라 자원을 반영시킵니다.

 

그렇다면 코드로 어떻게 인프라를 생성/수정/삭제 작업을 할 수 있을까요? 정답은 인프라를 제공하는 환경에서 코드관리 기능을 지원하기 때문입니다. 모든 인프라를 코드로 관리할 수 없고 코드관리기능을 지원하는 환경에서만 사용가능합니다. 대표적으로 가상머신(VirtualBox 등), 클라우드(aws, gcp) 등이 있습니다.

 

2. IAC 장단점

2.1 장점

인프라의 변경내용이 모두 코드로 기록되는 특성으로 얻는 장점이 있습니다.

 

인프라를 전체를 일일이 찾지 않아도 코드를 보고 인프라를 추적할 수 있습니다. 그리고 같은 환경을 어려움 없이 똑같이 만들 수 있고 코드를 추가하여 확장성을 가질 수 있습니다. 특히 git과 같이 사용하면 버전관리를 할 수 있어 롤백 등 버전관리 작업이 편합니다.

 

2.2 단점

물론 단점도 많이 있습니다. 대표적인 단점은 IAC를 적용하게 되면, 조직이 IAC도구를 공부해야하는 러닝커브가 있습니다. 그리고 긴급상황 등 수동으로 인프라를 고치는 경우, 코드로 인프라를 수정하지 않으므로 동기화가 깨집니다. 동기화가 어긋난 상황에서 IAC를 하게 되면 오류가 발생할 수 있습니다.

 

가장 큰 단점이 IAC를 사용하도록 조직문화를 만드는 것이라고 생각합니다. 코드 동기화를 유지하기 위해 모든 조직원이 IAC를 사용하도록 문화를 장려해야 하는데, 쉬울것 같지는 않습니다.

 

3. 테라폼

테라폼(Terraform)은 Hashicorp 회사에서 만든 IAC도구입니다. 무료로 사용할 수 있으며 약 7200개 이상의 인프라 자원을 코드로 관리할 수 있습니다. 

 

IAC도구를 이야기하면 테라폼은 빠질수 없을 만큼 정말 많이 사용하는 도구입니다. 아작 꽁부하는 단계라 왜 많이 사용하는지 모르겠지만, 문서화가 잘되어 있어 쉽게 따라할 수 있고 많은 인프라 환경을 지원하는 장점이 큰 몫을 한것 같습니다.

 

앞으로 테라폼 글 시리즈에서는 테라폼을 어떻게 사용할 수 있는지 입문자 레벨에서 설명할 예정입니다.

 

반응형