제135회 정보관리기술사 1교시 7번 — IaC와 Terraform 핵심 개념 및 워크플로

정보관리기술사 · 135회 1교시 · 7번 · 배점 10점

제135회 정보관리기술사 1교시 7번

단답형 | 10점
[문제] 코드형 인프라(IaC: Infrastructure as Code)의 개념과 명령형·선언형 방식의 차이를 설명하고, Terraform의 핵심 개념(Provider, Resource, State, Module)과 워크플로(init·plan·apply)를 서술하시오.

1. IaC 개념과 명령형 vs 선언형

IaC(Infrastructure as Code)는 서버·네트워크·데이터베이스 등 인프라를 코드로 정의하여 자동화·버전 관리·재사용하는 방식이다.

구분 명령형(Imperative) 선언형(Declarative)
방식 “어떻게” 만들지 절차 기술 “무엇을” 원하는지 최종 상태 기술
도구 Ansible (일부), Chef, Puppet Terraform, CloudFormation, Pulumi
멱등성 개발자가 직접 보장 도구가 현재 상태→목표 상태 자동 조정

2. Terraform 핵심 개념

  • Provider: AWS·Azure·GCP 등 인프라 공급자와 통신하는 플러그인 (aws, azurerm, google)
  • Resource: 관리할 인프라 단위 정의 (aws_instance, aws_s3_bucket)
  • State: 현재 인프라 상태를 JSON으로 저장하는 파일 (terraform.tfstate). 원격 백엔드(S3+DynamoDB)로 팀 공유
  • Module: 재사용 가능한 Terraform 코드 묶음 (VPC Module, EKS Module)

3. Terraform 워크플로

terraform init → Provider 플러그인 다운로드
terraform plan → 현재 상태 vs 코드 차이 미리보기
terraform apply → 인프라 변경 적용
terraform destroy → 모든 리소스 삭제

핵심 키워드: IaC, Terraform, HCL, Provider, State, Module, 선언형, GitOps, Remote Backend
IaC는 인프라 드리프트를 방지하고 재현 가능한 환경을 보장한다. Terraform의 선언형 HCL과 State 관리로 멀티클라우드 인프라를 코드로 일관되게 관리할 수 있다.

Leave a Comment