핵심 인사이트 (3줄 요약)
- 본질: IaC(Infrastructure as Code, 코드형 인프라)는 마우스 클릭 대신 프로그래밍 코드로 서버, 네트워크, DB 등 모든 인프라를 생성하고 관리하는 기술이다.
- 가치: 인프라 구축의 실수(Human Error)를 없애고, 복잡한 클라우드 환경을 동일하게 무한 복제할 수 있으며, 인프라의 모든 변경 이력을 기록(버전 관리)한다.
- 판단 포인트: 테라폼(Terraform) 같은 도구를 사용해 인프라를 '선언'하고, 감리 시에는 이 코드가 보안 표준을 지켰는지(통제망)를 소스 리뷰 단계에서 검증한다.
Ⅰ. 개요 및 필요성
예전에는 서버 한 대를 만들려면 기술자가 클라우드 화면에서 수십 번 클릭을 해야 했다. 만약 서버가 100대라면? 누군가는 반드시 실수로 체크박스 하나를 놓칠 것이다. IaC는 이 모든 과정을 '문서(코드)'로 작성한다. 코드를 한 번만 잘 짜두면, 실행 버튼 하나로 서버 100대를 오차 없이 1분 만에 뚝딱 만들어낸다. 이제 인프라는 '닦고 조이는 하드웨어'가 아니라 '버전 관리되는 소프트웨어'가 되었다.
📢 섹션 요약 비유: IaC는 '건축용 3D 프린터'와 같다. 사람이 일일이 벽돌을 쌓는(수동 설정) 대신, 설계도(코드)만 넣어주면 기계가 알아서 한 치의 오차도 없이 건물을 찍어내는 것과 같다.
Ⅱ. 아키텍처 및 핵심 원리
1. 선언적 방식 (Declarative) vs 절차적 방식
- 전통적 방식: "1번 하고, 2번 하고, 3번 해"라고 명령함.
- IaC (선언적): "나는 서버 3대와 DB 1개가 있는 상태를 원해"라고 '결과'만 적어둠. 테라폼이 현재 상태를 보고 부족한 부분만 알아서 채워줌.
2. 테라폼(Terraform)의 작동 원리
- HCL (HashiCorp Configuration Language): 사람이 읽기 쉬운 코드로 인프라 정의.
- State File: 현재 인프라 상태를 기억하는 '기록 장부'. 이 장부와 코드를 대조해 변경 사항을 결정.
- Plan & Apply: 실행 전 미리보기(Plan)를 통해 실수를 방지하고 실제 반영(Apply).
📢 섹션 요약 비유: 테라폼은 '인프라용 주문서'다. 메뉴판에서 "A세트 3개요"라고 주문(선언)하면, 주방(클라우드) 상황이 어떻든 주문한 결과물이 테이블에 딱 차려지는 원리다.
Ⅲ. 비교 및 연결
수동 설정 (ClickOps) vs 코드형 인프라 (IaC)
| 비교 항목 | 수동 클릭 방식 | 코드형 인프라 (IaC) |
|---|---|---|
| 구축 속도 | 느림 (반복 작업 시 고역) | 매우 빠름 (코드 재사용) |
| 정확성 | 낮음 (사람의 실수 가능성) | 매우 높음 (코드 검증 가능) |
| 변경 이력 | 파악 불가 (누가 바꿨지?) | 명확함 (Git 로그에 다 남음) |
| 복구 능력 | 힘듦 (기억에 의존) | 즉시 가능 (코드 재실행) |
| 비유 | 장인이 손으로 빚은 도자기 | 기계로 찍어낸 공산품 |
📢 섹션 요약 비유: 수동 방식은 '입에서 입으로 전해지는 전설'처럼 부정확하지만, IaC는 '성문 헌법'처럼 명확하고 단단하다.
Ⅳ. 실무 적용 및 기술사 판단
기술사 핵심 포인트 (통제망 설계):
- 보안의 코드화 (Policy as Code): 코드를 실행하기 전에 "공개된 S3 버킷이 있는지", "보안 그룹에 22번 포트가 열렸는지"를 자동으로 검사하는
Checkov,Terrascan같은 보안 필터망을 구축해야 한다. - State 파일 보안: 테라폼의 상태 파일에는 DB 비밀번호 등 민감 정보가 담길 수 있으므로, 반드시 암호화된 저장소(S3+KMS 등)에 보관하고 접근을 통제해야 한다.
- 감리인의 역할: 이제 감리인은 서버 설정 화면을 보는 게 아니라, '테라폼 코드'를 리뷰하여 설계 단계에서 인프라 결함을 찾아내는 능력을 갖춰야 함을 강조한다.
📢 섹션 요약 비유: IaC 통제망은 '검열이 포함된 설계도 승인 시스템'이다. 설계도(코드)를 제출하면, 인공지능 검토관이 보안 수칙에 어긋나는 부분을 빨간 펜으로 긋고 수정을 요구하는 과정이다.
Ⅴ. 기대효과 및 결론
IaC는 클라우드 네이티브 운영의 핵심인 '불변 인프라(Immutable Infrastructure)'를 실현하는 도구다. 인프라가 망가지면 고치는 게 아니라, 코드로 새로 찍어내면 그만이기 때문이다. 기술사 시험에서는 IaC가 가져오는 '운영 생산성'과 '보안 가시성'을 논하고, 테라폼의 Plan 단계를 활용한 안정적인 변경 관리 프로세스를 제시하는 것이 합격의 포인트다.
📢 섹션 요약 비유: IaC는 IT 세상의 '복사기'다. 잘 만든 인프라 환경 하나를 코드로 저장해두면, 전 세계 어디든 똑같은 환경을 순식간에 복사해서 뿌릴 수 있는 마법을 부린다.
📌 관련 개념 맵
| 개념 | 연관 키워드 | 관계 |
|---|---|---|
| Terraform | HCL, Provider | 가장 널리 쓰이는 오픈소스 IaC 도구 |
| GitOps | ArgoCD, 버전 관리 | IaC 코드를 Git에 넣고 자동으로 인프라를 맞추는 운영 방식 |
| Drift | 설정 괴리, 불일치 | 코드와 실제 인프라 상태가 달라지는 현상 (IaC로 해결) |
| Ansible | 구성 관리 (Config) | IaC가 뼈대를 만든다면, 앤서블은 그 안에 소프트웨어를 까는 역할 |
👶 어린이를 위한 3줄 비유 설명
- 레고 성을 만들 때 손으로 하나하나 쌓지 않고, 컴퓨터에 "성 하나 만들어줘!"라고 타이핑만 하면 자동으로 만들어지는 기술이에요.
- 실수로 성벽을 빼먹을 일이 없고, 똑같은 성을 친구들에게 수백 개나 선물해줄 수 있어요.
- 누가 설계도를 고쳤는지 기록이 다 남아서 나중에 문제가 생겨도 금방 고칠 수 있답니다.