[AWS] Image Builder란?
IT/AWS

[AWS] Image Builder란?

반응형

Intro

AWS에서는 AMI(Amazon Machine Image)라는 VM 이미지를 제공합니다. AMI이미지는 OS내부에 필수로 설치해야하는 소프트웨어나 설정들을 미리 작업하여 이미지로 만들어서 같은 작업을 반복하지 않고도 그대로 찍어낼 수 있습니다. (이러한 이미지를 골든 이미지라고 합니다.)

AMI이미지 안에 소프트웨어나 설정값들을 바꿔야 할때는 어떻게 해야할까요? 일반적으로 이 경우에는 OS내부에서 다시 설정을 한 뒤에 새로운 AMI이미지를 만들어야 합니다. (이러한 일련의 파이프라인을 제공하는 Packer라는 오픈소스 툴도 있습니다.)

오늘 이런 AMI이미지를 만들어 주는 Image Builder를 소개하고자 합니다. Image Builder를 사용하면 앞서 말씀드린 OS내부에 필요한 작업들을 설정파일로 버전관리가 가능합니다.

Image Builder란?

Image Builder는 이미지 생성 및 관리를 자동화하는 파이프라인을 제공하는 AWS서비스입니다. 몇가지 설정으로 보안성이 높은 골든 이미지를 생성하고 관리할 수 있게 되었습니다.

Image Builder 기능

  • OS 이미지 생성, 유지, 검증, 배포 작업의 파이프라인 생성
  • AWS 및 On-Premise 환경의 이미지 생성 및 유지 관리 지원
  • 같은 AWS Organization 내에서 생성된 이미지 공유

요금

Image Builder에 대한 과금은 없으며 로그 저장, 이미지 생성, 저장, 공유에 사용되는 AWS 리소스에 대한 부분만 과금

Image Builder 생성 절차

1. Create Components

components에는 os내에 필요한 작업들을 yml 형태로 정의 할 수 있습니다.

  • 예시

    name: updateos
    description: test
    schemaVersion: 1.0
    phases:
      - name: build
        steps:
          - name: InstallLinuxUpdate
            action: UpdateOS

2. Create Image recipes

1번에서 생성한 Component를 선택하여 recipe를 생성합니다. 여러개의 Component를 선택할 수 있습니다.

3. Create Infrastructure configuration

이미지 생성 작업을 할 인프라 구조를 정의 합니다.

  • Name
  • IAM Role
  • Instance type
  • SNS topic
  • VPC ID
  • Subnet ID
  • Security Group
  • key pair

4. Create Distribution settings

생성한 이미지를 어디에 배포할지 정의 합니다. 생성되어있는 Launch template을 설정하면 해당 template의 AMI이미지를 업데이트 할 수 있습니다.

5. Create Image Pipelines

2번에서 생성한 image recipe 기준으로 3번, 4번을 선택하여 Image Builder 파이프라인을 생성합니다.

마치며

Image Builder Pipeline을 Run하면 아래와 같이 EC2 instance가 생성이 되었다가 자동으로 terminate(제거)가 됩니다. (생각보다 이미지가 생성되는 시간이 꽤나 오래 걸립니다) 최근 인프라서버를 "애완동물 처럼 관리하기보다는 소떼처럼 관리해야한다"는 불변 인프라의 중요성이 부각되고 있습니다. 즉, 인프라의 서버는 언제든지 폐기될 수 있고 자동화 된 툴로 쉽게 교체하거나 확장할 수 있어야 한다는 것입니다. 이제 Image Builder는 인프라 엔지니어들이 필수적으로 사용해야하는 기능이라고 생각이 될거 같네요.

반응형