퍼블릭 클라우드

[draft] EC2 이미지 빌더(EC2 Image Builder)

SangChul Dot Kr Blog 2025. 9. 25. 21:14

EC2 이미지 빌더(EC2 Image Builder)

AWS EC2 Image Builder는 인프라를 코드로 정의하여 이미지를 생성하고 배포하기 위한 서비스입니다. EC2 Image Builder를 사용하면 서버 이미지를 빌드하고 AMI를 자동으로 생성할 수 있습니다. EC2 Image Builder를 사용하여 AMI를 생성하는 방법은 다음과 같습니다.

 

1. EC2 Image Builder 콘솔 열기: AWS Management Console에서 EC2 Image Builder 콘솔로 이동합니다.

 

2. 이미지 레시피 작성: EC2 Image Builder를 사용하여 이미지를 생성하려면 이미지 레시피를 작성해야 합니다. 이미지 레시피는 이미지를 빌드하기 위한 코드로, JSON 형식으로 작성됩니다. 예를 들어, 아래의 이미지 레시피는 Ubuntu 20.04 AMI를 생성하는 레시피입니다.

{
  "schemaVersion": "1.0",
  "description": "Ubuntu 20.04 AMI",
  "parameters": {
    "instanceType": {
      "type": "string",
      "default": "t3.micro",
      "allowedValues": [
        "t3.micro",
        "t3.small"
      ],
      "description": "The EC2 instance type to use for building the AMI."
    },
    "amiName": {
      "type": "string",
      "default": "ubuntu-20.04-ami",
      "description": "The name of the AMI to be created."
    }
  },
  "phases": {
    "build": {
      "steps": [
        {
          "name": "Install updates and required packages",
          "action": "ExecuteBash",
          "inputs": {
            "commands": [
              "sudo apt-get update",
              "sudo apt-get install -y nginx",
              "sudo apt-get install -y php-fpm"
            ]
          }
        },
        {
          "name": "Clean up",
          "action": "ExecuteBash",
          "inputs": {
            "commands": [
              "sudo apt-get clean"
            ]
          }
        }
      ]
    },
    "finalize": {
      "steps": [
        {
          "name": "Tag the AMI",
          "action": "CreateTags",
          "inputs": {
            "tags": [
              {
                "key": "Name",
                "value": "{{ imagebuilder:buildName }}"
              }
            ]
          }
        }
      ]
    }
  },
  "targets": {
    "ubuntu": {
      "name": "ubuntu-20.04",
      "description": "Ubuntu 20.04 LTS",
      "platform": "Ubuntu",
      "version": "20.04",
      "architecture": "x86_64",
      "tags": {
        "Operating System": "Ubuntu"
      }
    }
  }
}

 

이미지 레시피에는 다음과 같은 항목이 포함됩니다.

 

  • schemaVersion: 이미지 레시피의 버전
  • description: 이미지 레시피의 설명
  • parameters: 이미지 레시피에서 사용할 매개변수
  • phases: 빌드 프로세스를 정의하는 레시피
  • build: 이미지를 빌드하는 단계
  • finalize: 빌드가 완료된 후 추가 작업을 수행하는 단계
  • targets: 이미지가 대상으로 하는 운영 체제와 플랫폼

3. 이미지 빌드: 이미지 레시피를 작성한 후, EC2 Image Builder에서 이미지를 빌드할 수 있습니다. 이미지 빌드를 위해서는 IAM 역할과 정책을 설정해야 합니다. 이미지 빌드를 수행하는 EC2 인스턴스에 할당된 IAM 역할은 이미지를 빌드할 때 필요한 권한을 제공합니다. 또한, 이미지 빌드를 위한 EC2 인스턴스를 생성할 때 사용할 AMI ID와 인스턴스 유형, 서브넷 ID 등을 지정해야 합니다.

 

4. AMI 생성: 이미지 빌드가 완료되면, 생성된 AMI를 확인할 수 있습니다. AMI를 사용하여 EC2 인스턴스를 시작할 수 있습니다.

 

EC2 Image Builder는 EC2, Lambda, CodePipeline 등 다양한 AWS 서비스와 통합됩니다. 따라서 이미지 빌드와 AMI 생성 프로세스를 자동화할 수 있습니다. EC2 Image Builder를 사용하면 다음과 같은 이점이 있습니다.

 

  • 인프라를 코드로 정의하여, 반복적인 이미지 빌드 및 AMI 생성을 자동화할 수 있습니다.
  • 이미지 빌드 과정에서 보안, 품질, 규정 준수 등의 정책을 적용하여, 높은 수준의 보안성을 확보할 수 있습니다.
  • 이미지 빌드를 위한 EC2 인스턴스를 쉽게 구성할 수 있으며, 자동으로 시작하여 작업을 완료하면 중지할 수 있습니다.
  • 이미지 빌드를 위한 EC2 인스턴스가 자동으로 생성되므로, 이미지 빌드를 위한 기존의 인프라를 사용하지 않아도 됩니다.

EC2 Image Builder는 다음과 같은 상황에서 유용하게 사용될 수 있습니다.

 

  • 여러 운영 체제, 미들웨어, 애플리케이션 및 설정을 설치해야 하는 경우
  • 보안 및 규정 준수를 준수하는 이미지를 생성해야 하는 경우
  • 반복적으로 이미지 빌드 및 AMI 생성을 수행해야 하는 경우
  • 다수의 개발자 또는 운영자가 동일한 AMI를 사용해야 하는 경우
  • 이미지 빌드를 자동화하여 인프라를 코드로 정의하고, DevOps 프로세스를 간소화해야 하는 경우

EC2 Image Builder를 사용하여 AMI를 생성하는 것은 기존의 방법과 달리 이미지 빌드 및 AMI 생성 프로세스를 자동화할 수 있습니다. 따라서 효율적이고 반복적인 이미지 빌드 및 AMI 생성을 수행할 수 있으며, 보안, 규정 준수 및 정책 적용 등 다양한 요구사항을 충족시킬 수 있습니다.

 

참고URL

- EC2 이미지 빌더의 패치 관리 : https://docs.aws.amazon.com/imagebuilder/latest/userguide/vulnerability-analysis-and-management.html