View a markdown version of this page

Image Builder에서 레시피 관리 - EC2 Image Builder

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Image Builder에서 레시피 관리

EC2 Image Builder 레시피는 사용자 지정 머신 이미지를 생성하기 위한 청사진입니다. 레시피는 세 가지 주요 요소를 지정합니다.

  1. 기본 이미지 - 이미지의 시작점(AMI, 컨테이너 이미지 또는 가져온 VM).

  2. 구성 요소 - 이미지를 사용자 지정하는 빌드 및 테스트 단계입니다. 구성 요소는 선택 사항입니다. 이 설계는 테스트 및 배포 전용 워크플로를 지원합니다.

  3. 구성 - 스토리지 볼륨, 인스턴스 설정, 작업 디렉터리 및 기타 빌드 타임 파라미터.

Image Builder는 두 가지 유형의 레시피를 지원합니다.

  • 이미지 레시피는 Amazon EC2 인스턴스를 시작하는 데 사용할 수 있는 Amazon Machine Image(AMIs)를 생성합니다.

  • 컨테이너 레시피는 Amazon ECR 리포지토리에 저장된 Docker 컨테이너 이미지를 생성합니다.

레시피는 변경할 수 없습니다. 레시피를 생성한 후에는 수정하거나 이를 대체할 수 없습니다. 구성 요소 또는 기타 구성을 업데이트하려면 새 레시피 또는 레시피 버전을 생성해야 합니다. Image Builder는 모든 이전 버전을 유지합니다. 이를 통해 이미지 계보를 각 출력을 생성한 정확한 레시피로 다시 추적할 수 있습니다. 기존 레시피에 언제든지 태그를 적용할 수 있습니다. 에서 Image Builder 명령을 사용하여 리소스에 태그를 지정하는 방법에 대한 자세한 내용은이 가이드의 리소스 태깅 섹션을 AWS CLI참조하세요.

작은 정보

레시피에서 Amazon 관리형 구성 요소를 사용하거나 자체 사용자 지정 구성 요소를 개발할 수 있습니다. 자세한 내용은 Image Builder 이미지에 대한 사용자 지정 구성 요소 개발 단원을 참조하십시오. 출력 AMIs를 생성하는 이미지 레시피의 경우 AWS Marketplace 이미지 제품 및 구성 요소를 사용할 수도 있습니다. AWS Marketplace 제품과의 통합에 대한 자세한 내용은 단원을 참조하십시오AWS Marketplace Image Builder의 통합.

이 섹션의 주제를 사용하여 기존 레시피 나열, 세부 정보 보기, 새 레시피 버전 생성 등 EC2 Image Builder 레시피를 관리합니다.

컨테이너 레시피와 비교한 이미지 레시피

다음 표에서는 이미지 레시피와 컨테이너 레시피의 기능을 비교합니다.

기능 이미지 레시피 컨테이너 레시피
출력 AMI Docker Amazon ECR의 컨테이너 이미지
기본 이미지 소스 AMI ID, Image Builder 이미지 ARN, SSM 파라미터, AWS Marketplace 제품 Docker Hub 이미지, Amazon ECR 이미지, Amazon 관리형 이미지, Image Builder 이미지 ARN
Dockerfile 해당 사항 없음 필수( 컨텍스트 변수가 있는 템플릿)
대상 리포지토리 해당 사항 없음 Amazon ECR(필수)
스토리지 구성 출력 AMI에 대한 블록 디바이스 매핑 빌드 인스턴스에 대한 블록 디바이스 매핑
사용자 데이터 지원됨(기본 cloud-init 재정의) 레시피 수준에서 지원되지 않음
Systems Manager 에이전트 제어 구성 가능(빌드 후 제거) 구성할 수 없음
AWS Marketplace 구성 요소 지원됨 지원되지 않음
플랫폼 재정의 해당 사항 없음(AMI에서 감지됨) Amazon ECR 및 Docker Hub 이미지에 사용 가능

레시피 버전 관리

모든 레시피는 <major>.<minor>.<patch> 형식의 의미 체계 버전 관리를 사용합니다. 각 버전 노드는 0~1,073,741,823(2^30~1)의 값을 허용합니다.

한 위치에서 와일드카드(x)를 사용하여 자동 버전 증분을 활성화할 수 있습니다. 와일드카드 버전으로 레시피를 생성하면 Image Builder가를 해당 위치에 사용 가능한 x 다음 번호로 바꿉니다.

패턴 동작 예제 시퀀스
1.0.x 패치 번호 증가 1.0.1, 1.0.2, 1.0.3, ...
1.x.0 마이너 숫자 증가 1.1.0, 1.2.0, 1.3.0, ...
x.0.0 메이저 수를 늘립니다. 1.0.0, 2.0.0, 3.0.0, ...

와일드카드 버전에는 다음 규칙이 적용됩니다.

  • 버전 문자열당 x 하나의 와일드카드만 허용됩니다.

  • 와일드카드는 단일 위치(주요, 마이너 또는 패치)에 나타날 수 있습니다.

  • 나머지 위치의 숫자 값은 명시적 정수여야 합니다.

작은 정보

수동으로 레시피 버전을 추적하고 증분할 필요가 없도록 CI/CD 자동화에서 와일드카드 버전을 사용합니다. 동일한 와일드카드로 레시피를 생성할 때마다 Image Builder는 사용 가능한 다음 버전을 확인합니다. 예를 들어 항상를 사용하는 레시피는 1.0.1, , 1.0.2등으로 1.0.x 확인됩니다. Image Builder 리소스의 시맨틱 버전 관리에 대한 자세한 내용은 Image Builder의 의미 체계 버전 관리(을)를 참조하십시오.

레시피 제약 조건 및 제한

레시피를 생성하기 전에 다음 제약 조건을 검토합니다.

제약 조건 Limit 참고
레시피당 구성 요소 20(기본값) 빌드 및 테스트 구성 요소를 모두 포함합니다. 증가를 요청할 수 있습니다 AWS Support.
최대 레시피 크기 25KB 파라미터 값을 포함한 모든 구성 요소 구성의 누적 크기입니다.
출력 이미지당 제품 코드 9 기본 이미지 및 AWS Marketplace 구성 요소에서 결합됩니다.
구성 요소 고유성 레시피당 1개 동일한 구성 요소(버전에 관계없이)는 한 번만 나타날 수 있습니다.
버전 노드 최대값 1,073,741,823 노드당(주요, 마이너 또는 패치).
레시피 이름 변경할 수 없음 이름은 생성 후 수정됩니다. 다른 이름의 새 레시피를 생성합니다.

구성 요소는 다음 호환성 요구 사항도 충족해야 합니다.

  • 구성 요소는 레시피의 플랫폼(Linux, Windows 또는 macOS)과 일치해야 합니다.

  • OS 버전 메타데이터를 사용할 수 있는 경우 구성 요소는 상위 이미지의 OS 버전을 지원해야 합니다.

  • DEPRECATED 또는 DISABLED 상태의 구성 요소는 새 레시피에 추가할 수 없습니다.

  • CIS 강화 구성 요소에는 CIS에서 게시한 상위 이미지가 필요합니다.

리소스 정리

예상치 못한 요금이 부과되지 않도록 하려면 이 가이드의 예제에서 만든 리소스와 파이프라인을 정리하세요. Image Builder에서 리소스 삭제에 대한 자세한 내용은 오래되거나 사용되지 않는 Image Builder 리소스 삭제(을)를 참조하세요.