IaC(Infrastructure as Code)
- 코드형 인프라, 또는 프로그래밍형 인프라라고도 함
- 수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로비저닝하는 것
IaC의 개념
- 시스템이 읽을 수 있는 인프라 정의 파일(yaml, yml, tf)을 통해 인프라의 구성 관리 및 배포를 자동 화하는 것
- 생성할 인프라는 물리적 하드웨어 뿐만 아니라 가상 컴퓨터, 클라우드 등의 리소스 또한 관리가 가능
장점
- 인프라 일관성 향상: 동일한 설정파일의 동일한 버전은 동일한 인프라를 구성
- 배포 속도 향상: 인프라 구성 관리 및 배포를 자동화 함으로 신속한 실행이 가능
- 오류 감소: 정의 파일 검토로 사전 방지가 가능, 수동으로 구성할 때의 휴먼에러 방지
- 재사용성: 인프라를 코드화 하고 관련 리소스를 그룹 및 모듈화 하여 필요한 부분을 재사용(ex. Pipelines)
단점
- 초기 설정 구축이 필요: IaC를 설정하려면 IaC 도구의 구현, 구성 및 운영을 허용하는 인프라를 정의 해야함
- 오류 복제의 위험: 초기 코드는 사람이 개발하기 때문에 일정 시간이 지나면 영향을 미치는 사소한 오류가 포함될 수 있음