0Pricing
Terraform Infrastructure as Code · 강의

코드 구조와 이름 지정 규칙

Terraform 파일과 모듈을 구성하는 모범 사례와 리소스 및 변수에 일관된 이름 지정 규칙을 적용합니다.

코드 구조와 이름 지정 규칙은(는) CoddyKit의 무료 Terraform Infrastructure as Code 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Terraform Infrastructure as Code 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Terraform Infrastructure as Code 강의에는 총 4개의 강의가 포함되어 있습니다.

테라폼 코드를 구조화하는 이유

물리적인 작업 공간을 정리하는 것처럼 테라폼 코드를 구조화하면 코드를 더 쉽게 이해하고 관리하며 공동 작업할 수 있습니다.

구조를 잘 정리하면 가독성이 향상되고 오류가 줄어들며, 새로운 팀원이 빠르게 업무에 적응할 수 있습니다.

필수 테라폼 파일

테라폼 프로젝트는 일반적으로 몇 가지 핵심 파일로 시작합니다. 구성을 이러한 파일로 나누어 정리하는 것은 일반적인 권장 방법입니다.

  • main.tf: 리소스와 모듈을 정의합니다.
  • variables.tf: 모든 입력 변수를 선언합니다.
  • outputs.tf: 인프라에서 출력되는 값을 정의합니다.
  • versions.tf: 테라폼 및 프로바이더 버전을 지정합니다.

리소스 이름 지정하기

일관된 이름을 사용하면 리소스를 쉽게 식별할 수 있습니다. 지역 이름(예: resource "aws_instance" "my_instance"의 my_instance)에는 다음과 같은 일반 지침을 따르세요.

  • 설명적인 이름 사용하기: 이 리소스는 어떤 작업을 수행하나요?
  • 하이픈 또는 밑줄 사용하기: 가독성을 높일 수 있습니다(예: web-server-sg 또는 web_server_sg).
  • 일반적인 이름 피하기: server보다 app-frontend-server가 더 유용합니다.

테라폼의 지역 리소스 이름은 하나의 모듈 안에서 고유해야 합니다.

변수 명명 규칙

변수를 사용하면 구성을 유연하게 만들 수 있습니다. 변수 이름을 잘 지정하는 것이 중요합니다.

  • 소문자와 밑줄 사용하기: 가장 일반적인 규칙입니다(예: instance_type, vpc_id).
  • 구체적으로 작성하기: 이 변수는 무엇을 제어하나요?
  • 설명 추가하기: 명확하게 이해할 수 있도록 변수의 목적을 설명하세요.

변수 이름을 잘 지정하면 다른 사람이 모듈에서 어떤 입력을 예상하는지 이해하는 데 도움이 됩니다.

출력 값 이름 지정하기

출력은 배포된 인프라에 대한 중요한 정보를 외부에 제공합니다. 일관된 이름을 사용하면 이를 사용하는 사람이 쉽게 이해할 수 있습니다.

  • 소문자와 밑줄 사용하기: 변수와 비슷한 방식으로 지정합니다(예: web_server_ip).
  • 값을 설명하는 이름 사용하기: 어떤 정보를 제공하나요?
  • 설명 추가하기: 모듈의 출력이 무엇을 반환하는지 설명하는 데 필수적입니다.

예제: 단순한 구성

이 완전한 main.tf 파일은 리소스, 변수 및 출력에 적절한 이름을 지정하는 방법을 보여 줍니다. 이 파일로 terraform init과 terraform plan을 실행할 수 있습니다.

terraform {
  required_providers {
    null = {
      source = "hashicorp/null"
      version = "~> 3.0"
    }
  }
}

resource "null_resource" "example_web_server" {
  # Descriptive resource name
  triggers = {
    always_run = timestamp()
  }
}

variable "app_environment" {
  description = "The application's deployment environment (e.g., dev, prod)."
  type        = string
  default     = "development"
}

output "resource_unique_id" {
  description = "The unique ID of the example null resource."
  value       = null_resource.example_web_server.id
}

테라폼 모듈 구조화하기

재사용 가능한 구성 요소인 모듈은 자체적으로 명확한 구조를 갖습니다.

  • 루트 모듈: 기본 구성이 포함된 최상위 디렉터리입니다.
  • 하위 모듈: 각각 자체 main.tf, variables.tf, outputs.tf 등을 포함하는 하위 디렉터리입니다.
  • README.md: 모듈의 목적, 입력 및 출력을 설명하는 데 필수적입니다.

이렇게 하면 모듈이 독립적으로 구성되어 쉽게 재사용할 수 있습니다.

프로젝트 폴더 구성하기

파일뿐 아니라 프로젝트 폴더를 구성하는 방식도 중요하며, 특히 규모가 큰 환경에서는 더욱 그렇습니다.

  • 환경 분리하기: dev, staging, prod를 위한 전용 폴더를 각각 만들고, 각 폴더에 자체 구성을 둡니다.
  • 공통 모듈 폴더: 직접 만든 재사용 가능한 모듈을 위한 modules 디렉터리입니다.
  • 프로바이더용 루트 폴더: 최상위 폴더에서 일반적으로 프로바이더와 상태 백엔드를 정의합니다.

이렇게 하면 환경 간 구성 드리프트를 방지하고 관리 편의성을 높일 수 있습니다.

프로젝트 폴더 예제

일반적인 다중 환경 테라폼 프로젝트는 다음과 같은 형태로 구성할 수 있으며, 환경을 명확히 분리하고 재사용성을 높일 수 있습니다.

. ├── modules/ │ ├── vpc/ │ │ ├── main.tf │ │ ├── variables.tf │ │ └── outputs.tf │ └── ec2-instance/ │ ├── main.tf │ └── variables.tf ├── environments/ │ ├── dev/ │ │ └── main.tf │ ├── staging/ │ │ └── main.tf │ └── prod/ │ └── main.tf └── README.md

이해도 확인

인스턴스 수를 지정하는 테라폼 입력 변수의 이름을 정할 때 다음 중 가장 좋은 방법은 무엇인가요?

복습: 구조와 명명

구조를 잘 정리하고 일관된 이름을 사용하는 테라폼 코드는 가독성, 유지 관리 편의성 및 팀 공동 작업에 매우 중요하다는 것을 배웠습니다.

  • 파일을 main.tf, variables.tf, outputs.tf로 나누어 정리합니다.
  • 리소스, 변수 및 출력에는 설명적인 소문자와 밑줄 조합의 이름을 사용합니다.
  • 재사용성과 환경 분리를 고려하여 모듈과 프로젝트 폴더를 구성합니다.

이러한 방법은 효과적인 코드형 인프라 관리의 토대가 됩니다!

자주 묻는 질문

“코드 구조와 이름 지정 규칙” 강의는 무료인가요?

네 — “코드 구조와 이름 지정 규칙” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Terraform Infrastructure as Code 강의 전체를 잠금 해제할 수 있습니다. Terraform Infrastructure as Code 강의에는 총 4개의 강의가 포함되어 있습니다.

“코드 구조와 이름 지정 규칙”에서 뭘 배우나요?

Terraform 파일과 모듈을 구성하는 모범 사례와 리소스 및 변수에 일관된 이름 지정 규칙을 적용합니다. 브라우저에서 직접 실행하는 실습 코드로 Terraform Infrastructure as Code을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Terraform Infrastructure as Code을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Terraform Infrastructure as Code은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“코드 구조와 이름 지정 규칙” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Terraform Infrastructure as Code 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Terraform Infrastructure as Code 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 코드 구조와 이름 지정 규칙
  2. Git으로 버전 관리
  3. 팀 협업과 작업 흐름
  4. 문서화 및 셀프 서비스 작업 흐름
← Terraform Infrastructure as Code(으)로 돌아가기