모듈 및 코드 재사용
Terraform 모듈이 재사용 가능한 인프라를 패키징하고 입력을 받아 출력을 제공하며 구성을 DRY하고 유지 관리하기 쉽게 만드는 방법을 학습합니다.
모듈 및 코드 재사용은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
모듈을 사용하는 이유
환경마다 같은 리소스를 복사하여 붙여 넣으면 환경 간 불일치와 버그가 발생합니다. 모듈은 여러 입력값을 사용해 여러 번 호출할 수 있는 재사용 가능하고 매개변수화된 Terraform 리소스 묶음으로, 코드를 DRY하게 유지해 줍니다.
모든 구성은 모듈입니다
terraform apply를 실행하는 디렉터리가 루트 모듈입니다. 루트 모듈이 호출하는 모듈은 하위 모듈입니다. 따라서 이미 모듈을 사용하고 있으며, 단지 모듈을 더 추가하는 것뿐입니다.
모듈 구조
모듈은 .tf 파일이 들어 있는 폴더이며, 일반적으로 다음과 같이 구성합니다.
main.tf— 리소스variables.tf— 입력 변수outputs.tf— 외부에 노출하는 값
입력 정의
입력값은 모듈 내부에서 변수로 선언하며, 호출자가 동작을 사용자 지정할 수 있게 합니다.
variable "bucket_name" {
type = string
}
variable "versioning" {
type = bool
default = false
}입력값 사용
모듈의 리소스는 모듈의 변수를 참조합니다.
resource "aws_s3_bucket" "this" {
bucket = var.bucket_name
}출력값 노출
출력값은 ID나 ARN과 같이 유용한 값을 호출자에게 반환합니다.
output "bucket_arn" {
value = aws_s3_bucket.this.arn
}모듈 호출
루트 모듈은 module 블록을 사용해 하위 모듈을 호출하고 입력값을 전달합니다.
module "logs" {
source = "./modules/bucket"
bucket_name = "app-logs"
versioning = true
}모듈 출력값 참조
구성의 다른 위치에서 module.NAME.OUTPUT을 사용하여 모듈의 출력값에 접근할 수 있습니다.
resource "aws_s3_bucket_policy" "p" {
bucket = module.logs.bucket_arn
}모듈 소스
source는 로컬 경로, Git URL 또는 공개 Terraform Registry일 수 있습니다.
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.0.0"
}모듈 버전 관리
업그레이드를 의도적으로 수행할 수 있도록 레지스트리 모듈에는 항상 version을 고정하세요. 모듈을 추가하거나 변경한 후에는 terraform init을 실행하여 모듈을 다운로드하세요.
좋은 모듈 설계
모듈은 집중된 범위(논리적 구성 요소 하나)로 유지하고, 필요한 입력값만 노출하며, 출력값을 문서화하고, 환경별 값을 하드코딩하지 마세요. 작고 조합 가능한 모듈이 하나의 거대한 모듈보다 낫습니다.
빠른 확인
모듈에 대한 지식을 확인해 보세요.
요약
모듈을 사용하면 Terraform을 재사용 가능하고 DRY하게 만들 수 있습니다.
- 모듈은 변수(입력값)와 출력값이 포함된 .tf 파일 폴더입니다.
module블록과source를 사용해 호출하고,module.NAME.OUTPUT으로 결과에 접근합니다.- 소스는 로컬, Git 또는 레지스트리일 수 있으며,
version을 고정하고init을 실행합니다. - 작고 집중되어 있으며 문서가 잘 작성된 모듈을 설계하세요.
자주 묻는 질문
“모듈 및 코드 재사용” 강의는 무료인가요?
네 — “모듈 및 코드 재사용” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
“모듈 및 코드 재사용”에서 뭘 배우나요?
Terraform 모듈이 재사용 가능한 인프라를 패키징하고 입력을 받아 출력을 제공하며 구성을 DRY하고 유지 관리하기 쉽게 만드는 방법을 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“모듈 및 코드 재사용” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.