상세 컨텐츠

본문 제목

[매일메일] Infrastructure as Code (Iac)에 대해 설명해주세요

본문

코드형 인프라

코드형 인프라는 수동 프로세스 대신 코드를 통해 인프라를 프로비저닝하고 관리

기존의 수동 설정 방식 -> 반복 작업 많고, 휴먼 에러 발생하기 쉽고 인프러 설정을 별도로 문서화해 관리해야 하는 번거로움 있음.

 

IaC는 크게 선언적(Declarative) 방식과 명령형(Imperative) 방식으로 나뉨

선언적 방식 : 최종 상태 정의하면 IaC 도구가 이를 자동으로 구성하는 방식이다.

(대표적 도구 - Terraform, AWS CloudFormation)

명령형 방식 : 구성 방법을 직접 정의하는 방식, 인프라를 설정하는 단계를 코드로 정의하며 명령어 기반으로 실행

(대표적 도구 - Ansible, AWS CDK)

 

장점 

  • Git과 같은 형상 관리 도구를 활용해서 변경 사항을 추적할 수 있습니다.
  • 코드 자체가 문서 역할을 하며 협업할 때 코드 리뷰를 통해 인프라 변경 사항을 검토할 수 있습니다.
  • 수동 작업없이 코드 실행만으로 인프라 구축을 자동화할 수 있습니다.
  • 코드를 재사용할 수 있기 때문에 비슷한 인프라를 구축할 때 시간을 절약할 수 있습니다.

단점

  • 다양한 도구의 사용법을 익혀야 하기 때문에 러닝 커브가 발생할 수 있습니다.
  • 인프라의 상태 관리가 복잡할 수 있습니다.
  • 인프라 변경 시 문제가 발생했을 때 디버깅이 어려울 수 있습니다.

관련글 더보기