베하~
안녕하세요 3대 5000의 man, xoxo 입니다.
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/035.gif)
이번 시간에는 테라폼과 모듈화에 대해 알아보겠습니다.
테라폼이란?
Terraform은 프로그래밍 코드로 인프라를 구축/운영할 수 있는 IAC 도구입니다.
- IaC(Infrastructure as Code)는 코드로 인프라를 관리(생성, 삭제, 수정 등) 한다는 개념으로 테라폼에서는 HCL(Hashicorp Configuration Language)을 사용해 클라우드의 리소스를 선언합니다.
- 쉽게 말해, 인프라를 코드로 만들 수 있습니다. 이를 통해 버전 관리, 공유 및 재사용이 가능하다는 장점이 있습니다.
테라폼 모듈화
테라폼을 사용할 때 인프라의 규모가 커지게 되는 경우 하나의 파일에 모든 리소스를 정의할 경우 의도치 않게 다른 부분에 영향을 끼칠 수 있고, 사용자의 환경 별 리소스의 코드가 중복되어 쌓일 수가 있습니다.
이러한 단점을 해결하기 위해 테라폼에서는 모듈이란 요소를 제공해줍니다.
모듈은 관련 있는 리소스를 모아 하나의 패키지를 만듭니다. 예를 들어 VPC 모듈의 경우 subnet, netmask 등의 리소스를 하나로 패키징을 할 수 있습니다.
테라폼 모듈 사용의 장점
- 캡슐화: 서로 연관있는 리소스들을 한데 모아 결합시키고 필요한 인자들만 넘겨주면 되므로 실제 구현에 대해서는 몰라도 된다.
- 재사용성: 한번 정의해둔 모듈은 여러번 호출될 수 있으므로 리소스를 쉽게 재사용할 수 있다.
- 일관성: 모듈화를 통해 리소스에 필요한 옵션들을 정의해놓을 수 있으므로 빠지는 옵션 없이 같은 설정 값으로 리소스를 생성할 수 있다.
사용방법은 테라폼에서 공식으로 제공해주는 모듈을 사용하는 방법과 사용자가 직접 커스텀하게 모듈을 생성하여 사용하는 방법이 있다.
이러한 테라폼 모듈을 활용하여 편리하게 테라폼을 사용하면 좋을 것 같습니다~
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/031.gif)
댓글