Terraform 프로젝트에서 Git Push 오류를 해결하기 위한 실용적인 가이드

발행: (2025년 12월 25일 오전 02:46 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

Terraform 프로젝트에서 Git Push 오류를 해결하기 위한 실용 가이드 표지 이미지

Introduction

Terraform 프로젝트를 진행하던 중 여러 Git push 오류를 만나게 되었는데, 처음엔 혼란스럽고 답답했습니다. 각 오류는 결국 귀중한 학습 기회가 되었습니다. 이 글에서는 그 문제들을 단계별로 정리하고, 왜 발생하는지 설명하며, 올바르게 해결하는 방법을 보여줍니다.

Terraform, DevOps, 혹은 Infrastructure as Code를 배우고 있다면 이러한 문제들을 마주하게 될 가능성이 높습니다.

1️⃣ GitHub Rejects Large Files (>100 MB)

Error

File .terraform/...terraform-provider-aws is larger than 100 MB

Why this happens

.terraform/ 디렉터리를 커밋했습니다. 이 디렉터리에는 수백 메가바이트에 달할 수 있는 Terraform provider 바이너리가 들어 있으며, 절대로 버전 관리에 포함돼서는 안 됩니다.

Correct fix

.gitignore에 다음 항목을 추가합니다:

.terraform/
*.tfstate
*.tfstate.backup

대용량 파일이 이미 저장소 히스토리에 존재한다면, 새 프로젝트의 경우 가장 깔끔한 방법은 저장소를 다시 초기화하는 것입니다:

rm -rf .git
git init
git add .
git commit -m ""

(기존 저장소의 경우 git filter-repo 혹은 git filter-branch를 사용해 히스토리에서 파일을 제거할 수도 있습니다.)

2️⃣ GitHub Push Protection Blocks Secrets

Error

Push cannot contain secrets (AWS Access Key detected)

Why this happens

AWS 자격 증명이 provider.tf 안에 하드코딩되어 있었습니다. GitHub은 커밋을 자동으로 스캔해 비밀 정보를 찾아내고, 자격 증명 유출을 방지하기 위해 푸시를 차단합니다.

What not to do

provider "aws" {
  access_key = "AKIA..."
  secret_key = "xxxx"
}

Correct approach

자격 증명을 포함하지 않고 프로바이더를 설정합니다:

provider "aws" {
  region = "us-east-1"
}

자격 증명은 안전하게 저장하세요. 예시:

  • aws configure ( ~/.aws/credentials에 기록)
  • 환경 변수 (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 등)
  • IAM 역할 (EC2, CloudShell, CI/CD 파이프라인에 권장)

⚠️ 자격 증명이 커밋된 적이 있다면, 푸시가 차단되었더라도 즉시 회전시켜야 합니다.

Back to Blog

관련 글

더 보기 »