오늘은 클라우드 및 인프라 엔지니어링 생태계에서 가장 중요한 패러다임 중 하나인
코드형 인프라(Infrastructure as Code, IaC)의 핵심 개념과,
대표적인 IaC 도구인 테라폼(Terraform)을 사용하기 위한 로컬 개발 환경 구축 방법을 한눈에 알기 쉽게 정리해 보겠습니다.
1. IaC(Infrastructure as Code) 개요
IaC란 무엇인가요?
IaC(Infrastructure as Code)는 사람이 AWS 콘솔이나 GCP 웹 화면에 접속하여 마우스 클릭으로 서버, 네트워크, 데이터베이스 등을 일일이 설정하는 대신, 명확하게 정의된 코드(텍스트 파일)를 통해 IT 인프라를 자동으로 생성, 수정, 삭제하는 기술입니다.
주요 특징
- 인프라의 코드화(Text-based Definition)
- 서버(EC2), 저장소(S3), 네트워크(VPC) 등의 인프라 구성 요소를 선언적 언어나 프로그래밍 언어 형태의 코드로 작성합니다.
- 동일성 및 멱등성(Idempotency) 보장
- 코드를 실행할 때마다 환경의 치우침 없이 언제나 동일한 구성 결과를 보장받을 수 있습니다.
- 버전 관리(Version Control) 용이
- 인프라 설정 파일도 일반 소스 코드처럼 Git을 이용해 커밋, 브랜칭, 이력 추적 및 롤백(Rollback) 관리를 수행할 수 있습니다.
IaC 도입 시 주요 장점
- 휴먼 에러(Human Error) 방지: 웹 콘솔 클릭 실수로 인한 잘못된 설정이나 세팅 누락을 근본적으로 예방할 수 있습니다.
- 압도적으로 빠른 배포 속도: 수동 작업으로 수시간~수일이 걸리던 인프라 구축을 수초~수분 내에 마칠 수 있습니다.
- 팀 내 협업 및 리뷰 용이: 코드 리뷰(Pull Request) 절차를 통해 인프라 변경 사항을 팀원들과 검증하고 간편하게 공유할 수 있습니다.
2. 주요 IaC 제품군 비교
IaC 도구는 특정 클라우드 벤더 전용 도구와, 여러 클라우드를 아우르는 멀티 클라우드 도구로 구분됩니다.
1) AWS 전용 도구
- AWS CloudFormation: YAML 또는 JSON 형태의 선언적(Declarative) 템플릿 파일로 인프라를 정의하는 AWS의 기본 서비스입니다.
- AWS CDK (Cloud Development Kit): Python, TypeScript, Java, Go 등 익숙한 프로그래밍 언어를 그대로 사용하여 AWS 인프라를 생성할 수 있는 개발자 친화적 도구입니다.
2) 멀티 클라우드 도구
- Terraform (테라폼)
- 사실상 글로벌 표준(De-facto Standard)으로 여겨지는 오픈소스/써드파티 프로비저닝 도구입니다.
- HashiCorp가 개발한 HCL(HashiCorp Configuration Language)이라는 직관적인 독자 언어를 사용합니다.
- AWS, GCP, Azure, 네이버클라우드 등 대부분의 클라우드 인프라를 하나의 도구로 통합 관리할 수 있습니다.
- Ansible (앤서블)
- 테라폼이 *'인프라 뼈대(프로비저닝)'*를 생성하는 데 집중한다면, 앤서블은 생성된 인프라 내부의 소프트웨어 설치나 설정 관리(구성 관리, Configuration Management)에 특화된 도구입니다.
3. 테라폼 & AWS CLI 개발 환경 구축
이제 테라폼 코드를 작성하고 AWS 클라우드에 실제 인프라 명령을 전달할 수 있도록 로컬 PC 세팅을 진행해 보겠습니다.
Step 1. AWS CLI 설치 및 설정
AWS CLI(Command Line Interface)는 터미널 쉘에서 AWS 서비스를 명령어로 관리할 수 있게 돕는 통합 오픈소스 도구입니다.
- 다운로드 패키지 설치
- Windows: AWS CLI V2 MSI 다운로드
- Mac: AWS CLI V2 PKG 다운로드
설치 상태 확인 (터미널 새로 오픈 후 실행)
aws --version
# 출력 예시
aws-cli/2.35.6 Python/3.14.5 Windows/11 exe/AMD64
- IAM 액세스키(Access Key) 설정 터미널에서 아래 명령어를 실행하고, 발급받은 IAM 액세스 키 정보를 입력합니다.
Step 2. AWS IAM 인증 액세스키(Access Key) 발급 절차 및 주의사항
테라폼이나 AWS CLI가 외부 로컬 PC에서 AWS 리소스에 접근하려면 인증 자격 증명이 필요합니다.
- 액세스 키 발급 과정
- AWS Console ➔ IAM 서비스 진입 ➔ 본인 계정/사용자 선택 ➔ 보안 자격 증명(Security credentials) 탭 선택
- [액세스 키] 항목에서 [액세스 키 만들기] 클릭
- 사용 사례 선택 시 Command Line Interface(CLI) 선택 후 안내 모범 사례 확인 체크 ➔ [다음] ➔ [액세스 키 만들기] 클릭
- CSV 파일 다운로드를 클릭하여 발급받은 Access Key ID와 Secret Access Key를 저장합니다.
- 액세스 키 관리 및 삭제 방법
- 필요가 없어진 키는 보안을 위해 IAM 콘솔에서 비활성화 처리 후 삭제하는 것이 모범 사례입니다.
⚠️ 보안 주의사항 (중요!) 발급된 Secret Access Key는 절대 외부로 유출되거나 GitHub 공개 저장소에 올려서는 안 됩니다. 해커들이 매크로 스크립트로 깃허브를 상시 모니터링하고 있으며, 유출 시 고성능 가상화 머신(채굴 등)이 무단 생성되어 방대한 비용 폭탄을 맞을 수 있습니다.

잘 숨긴 후 아래 명령어 cmd나 powershell에서 작성합니다.
그럼 id, access key, region name, output format을 작성하라고 나오는데
위의 두 개는 iam 액세스 키 치시면 되고 지역은 자신이 쓰고있는 지역 작성 output format은 json으로 해주세요.
aws configure
AWS Access Key ID [None]: AKIA4BQ3...
AWS Secret Access Key [None]: NZkQwWX...
Default region name [ap-northeast-2]: ap-northeast-2
Default output format [json]: json
Step 3. Terraform 설치 및 시스템 경로(PATH) 등록
- 다운로드
- Windows (AMD64): HashiCorp Terraform Windows 다운로드
- Mac: HashiCorp Terraform Mac 다운로드
- 설치 및 환경변수 지정
- 압축 파일 내부의 terraform.exe 파일을 C:\terraform 경로에 저장합니다.
- Windows [시스템 속성] ➔ [환경 변수] ➔ Path 항목 편집에 C:\terraform 경로를 추가합니다.


- 버전 확인
terraform --version
# 출력 예시
Terraform v1.15.6 on windows_amd64
Step 4. VS Code 확장 프로그램 설치
- VS Code 실행 ➔ Extensions(Ctrl + Shift + X) ➔ HashiCorp Terraform 검색 후 [Install] 버튼 클릭
- 설치 효과: HCL 코드 구문 강조(Syntax Highlighting), 자동 완성을 지원받아 개발 생산성이 크게 향상됩니다.
4. 테라폼 동작 매커니즘 한눈에 이해하기
테라폼으로 인프라가 구성되는 내부 흐름은 다음과 같은 단계로 연동되어 수행됩니다.
[VS Code]에서 테라폼 코드(*.tf) 작성 및 적용 명령 실행
↓
[Terraform Engine]에서 HCL 언어 해석 및 생성할 인프라 계획 수립
↓
[AWS CLI / Provider]를 통해 AWS API 호출 명령어 집합 변환
↓
[IAM Access Key] 자격 증명을 거쳐 AWS 클라우드로 전송
↓
[AWS Cloud] 실제 EC2, VPC, S3 등 인프라 자동 생성/구성
이와 같은 흐름을 이해하고 계시면 추후 테라폼 코드를 작성하고 트러블슈팅할 때 커뮤니케이션과 문제 원인 파악이 한층 수월해집니다.
마치며
지금까지 코드형 인프라(IaC)의 도입 배경부터 테라폼 및 AWS CLI 환경 설정 방법까지 살펴보았습니다. 이제 로컬 환경 구축이 완료되었으니 다음 글에서는 실제 .tf 파일 작성법과 terraform init, plan, apply 명령어의 사용법을 자세히 알아보겠습니다.
오늘의 한 마디
최근에 무기력에 대한 영상을 봤는데 거기서 현대인들이 무기력증이 엄청나게 많다고 한다. 그래서 그 무기력증을 해결할 수 있는 방법을 취미라고 했다. 무조건 가만히 쉬는 것을 좋아하는 사람도 있지만 그것이 아니라면 취미를 가지라고 하고 취미에서도 흥미를 느끼지 못한다면 통제 가능한 취미를 가지라고 했다.
통제 가능한 취미라는 것이 아래 그림과 같이 밑그림이 그려진 그림에 색칠해서 성공의 기쁨? 완성의 기쁨을 누릴 수 있는 것들을 하라고 했다. 그래서 수학 문제 풀기 이런것도 도움이 되지 않을까 생각했다.
아무튼 요즘 세상이 너무 팍팍해서 다들 힘을 못내고 있는 것 같다. 회복 탄력성을 길러 다시 몇 번이고 일어나야 한다. 그래야 생존할 수 있다. 모두 조금 힘들지만 파이팅입니다 ㅎㅎ
