목표: “수작업 인프라/서버 운영”을 “코드 기반 재현 가능한 운영”으로 전환

1) 온프레미스 IaC의 현실적인 범위

온프레미스는 “클라우드처럼 API로 다 된다”가 아니라, 보통 아래 2단으로 쪼갭니다.

  • Provisioning(자원 생성): VM/네트워크/스토리지 생성
    → Terraform (vSphere/Proxmox/OpenStack 등 Provider로 제어)
  • Configuration(서버 설정): OS/패키지/계정/보안/배포 에이전트 구성
    → Ansible(SSH 기반, 에이전트리스)

이렇게 나누면 “온프레미스도 IaC 된다”가 실무적으로 성립합니다.


2) 권장 아키텍처: Terraform + Ansible + GitOps

저장소 구조(예시)

  • infra/terraform/ : VM, 네트워크, LB, DNS 등 “생성”
  • infra/ansible/ : OS/미들웨어/계정/보안/런타임 “설정”
  • app/ : 애플리케이션(도커/자바) 배포 정의

운영 원칙

  • PR로 변경 → CI에서 terraform plan → 승인 후 apply
  • 서버 설정은 Ansible로 “idempotent”하게 유지
  • state는 로컬 금지, 원격 저장소 사용(팀 협업/락/감사)

Terraform 원격 state를 쓰면 “누가 언제 무엇을 바꿨는지” 추적이 되고, 충돌도 줄어듭니다.

 

3) Claude Code를 어디에 쓰면 실전 효율이 나오나

Claude Code는 코드베이스 이해 + 파일 편집 + 명령 실행을 하는 에이전틱 도구라서
IaC에서 “반복 작업/표준화/검증 자동화”에 붙이면 효율이 큽니다.

(1) Terraform 모듈 표준화

  • vSphere/Proxmox 리소스 정의 템플릿(모듈) 생성
  • 환경(dev/stg/prod) 변수 분리
  • 네이밍/태깅/네트워크 규칙 강제

Provider 예: vSphere Provider는 Terraform로 vSphere 리소스를 관리하도록 제공

(2) Ansible 플레이북 “운영 표준” 만들기

  • 사용자/SSH/보안 설정
  • Docker 설치, systemd 서비스 등록
  • 로그 수집기/모니터링 에이전트 배포

Ansible은 기본적으로 SSH 키 기반 연결을 전제로 하고
관리 노드에 별도 에이전트를 설치하지 않는 방식(에이전트리스)으로 운영이 단순해집니다.

(3) CI에서 정적 검증/보안 스캔 자동화

  • terraform fmt, validate, tflint(린트), tfsec(보안) 같은 파이프라인을 Claude Code가 “레포 표준”으로 구축
  • Claude Code 자체도 보안 취약점 점검 기능을 확장하고 있다고 Anthropic이 공개한 바 있음
    → “IaC PR에 보안 체크”를 얹기 좋은 흐름

4) 온프레미스 IaC 적용 절차(실행 순서)

  1. 현행 자산을 코드화(1차 목표: 재현성)
    • 네트워크/VLAN/서브넷/방화벽 룰
    • VM 템플릿(이미지) 기준(Packer 있으면 더 좋음)
  2. Terraform으로 VM/리소스 생성 자동화
    • vSphere면 vSphere provider
    • Proxmox면 Proxmox provider
  3. Ansible로 공통 베이스라인 적용
    • 계정/SSH/패키지/시간동기/로깅/모니터링
  4. 배포 파이프라인 연결
    • GitHub Actions → (Self-hosted runner 권장) → Ansible 배포 또는 Docker pull/restart
  5. 드리프트(Drift) 탐지/복구 루프 구축
    • “서버에 수동 변경”이 발생하면 IaC가 다시 원복하거나 경고

5) 효율성(ROI): 무엇이 얼마나 좋아지나

온프레미스에서 IaC의 효율은 “속도”보다 품질(안정성) + 재현성 + 인수인계 비용 절감에서 크게 터집니다.

정량/정성 효과

  • 프로비저닝 리드타임 단축: VM/네트워크 생성이 분 단위로 수렴
  • 휴먼에러 감소: 클릭/수작업 설정 제거
  • 장애 복구 속도 향상: “같은 환경”을 재생성 가능(재현성)
  • 감사/추적성 확보: PR/커밋 이력으로 변경 추적(특히 보안/컴플라이언스)
  • 표준화: 신규 서버/신규 프로젝트 온보딩이 빨라짐

특히 Terraform은 state를 원격 저장소로 공유하면 팀 협업이 쉬워지고(락/공유)
온프레미스 환경에서도 vSphere 같은 플랫폼 리소스를 Terraform로 관리할 수 있습니다.

Claude Code가 더해주는 “추가 효율”

  • 모듈/플레이북 생성 속도 ↑
  • 리팩토링/규칙 통일 속도 ↑
  • PR 리뷰용 체크리스트/검증 파이프라인 구축 속도 ↑
  • 보안 패치 제안/자동 수정 후보 생성(인간 검토 전제)

6) 실무에서 실패하는 포인트(여기만 막으면 성공률↑)

  • state 로컬 저장 → 팀에서 바로 깨짐 (원격 backend 필수)
  • 모듈 없이 파일 난립 → 3개월 뒤 유지보수 불가
  • 비밀정보를 코드에 박음 → Vault/SOPS/Secret Manager로 분리
  • 수동 변경 허용 → drift 지옥 (정책/권한/프로세스 함께 잡아야 함)
LIST

+ Recent posts