본문 바로가기

퍼블릭 클라우드

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

728x90

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"
      }
    }
  }
}

 

728x90

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

 

  • 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

 

Patch Management in EC2 Image Builder - EC2 Image Builder

Patch Management in EC2 Image Builder EC2 Image Builder provides the latest Amazon Linux 2, Red Hat Enterprise Linux (RHEL), CentOS, Ubuntu, SUSE Linux Enterprise Server, and Windows 2012 R2 and later AMIs as managed image sources. You maintain the Amazon

docs.aws.amazon.com

 

728x90