IaC, 형상 관리, 이미지 빌드

Lee Dong Uk·2023년 4월 30일
0

IaC(Infrastructure as Code)

네트워크, 로드밸런서, 저장소, 서버 등의 인프라 자원을 수동 술정이 아닌 코드를 이용하여 프로비저닝하고 관리하는 것

대표적인 IaC 도구로 Terraform, CloudFormation, Pulumi, Azure Arm Template 등이 있다.

형상 관리(Configuration Management)


서버 운영체제 상에 필요한 소프트웨어를 설치하고 원하는 설정으로 관리하는 것, CaC(Configuration as Code)라고도 불림

이미지 빌드(Image Build)


AWS EC2, VMware, VirtualBox, Docker 등 여러 플랫폼에서 재사용 가능한 머신 이미지를 빌드하는 것
대표적인 이미지 빌더로 패커(Packer), AWS EC2 Image Builder 등이 있음.

코드로 관리한다는 것(... as Code)


  • 사람이 수동으로 처리하는 것을 코드로 작성하여 관리

    • 휴먼 에러 방지
    • 재사용성
    • 일관성
  • 소프트웨어 개발처럼 Git과 같은 버전 관리 시스템(VCS) 활용 가능

    • 코드 리뷰 가능
    • 변경내용 추적 가능
    • 버전 관리
    • 협업

코드가 어떻게 관리되느냐에 따라 선언형 설정(Declartive Configuration)과 절차형 설정(Imperative Configuration)으로 분류할 수 있다.

선언형 설정

선언형 설정에서는, 우리가 워나는 시스템의 최종 상태에 대해 '선언'한다. 이를 통해, 시스템은 최종 상태를 달성하는 데 필요한 단계를 자체적으로 결정하고 수행할 수 있다.

선언형 설정은 코드의 명확성과 유지 관리 용이성을 높이며, 사이드 이펙트를 최소화하는 데 효과적이다.

Terraform, Kubernetes, Ansible이 이에 해당한다.

절차형 설정

시스템에게 상태를 변경하는 방법에 대한 명령을 '지시'한다. 이 경우, 명확한 단계와 절차를 제공해야하며, "어떻게"이러한 상태를 달성할 것인지를 지시한다. 절차형 설정은 세부적인 제어와 특정 동작에 대한 완전한 통제를 가능하게 한다.

Shell scripts, Python, JavaScript 등의 일반적인 프로그래밍 언어들, Chef와 Puppet과 같은 관리 도구들이 이에 해당한다.

0개의 댓글