기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Image Builder 이미지의 빌드, 테스트 및 배포 워크플로 관리
이미지 워크플로는 이미지 생성 프로세스의 한 단계에서 EC2 Image Builder가 실행하는 단계 시퀀스를 정의합니다. 워크플로를 YAML 문서로 작성하고 버전 관리되고 재사용 가능한 리소스로 생성합니다. 그런 다음 Image Builder는 이미지를 빌드, 테스트 및 배포할 때 워크플로를 실행합니다.
워크플로를 사용하면 이미지 생성 프로세스를 직접 제어할 수 있습니다. 실행할 단계, 순서, 각 단계가 실패할 때 수행하는 작업, Image Builder가 실패한 단계를 롤백할지 여부를 결정합니다. Amazon 관리형 워크플로에서 시작하거나, 워크플로를 복제 및 사용자 지정하거나, 처음부터 직접 작성할 수 있습니다.
이미지 워크플로의 이점
-
이미지 워크플로를 사용하면 이미지 생성 프로세스에서의 유연성, 가시성, 제어력이 향상됩니다.
-
워크플로 문서를 정의할 때 사용자 정의된 워크플로 단계를 추가하거나 Image Builder 기본 워크플로를 사용하도록 선택할 수 있습니다.
-
Image Builder가 기본 이미지 워크플로에 포함하는 워크플로 단계를 제외할 수 있습니다.
-
빌드 프로세스를 완전히 건너뛰는 테스트 전용 워크플로를 만들 수 있습니다. 동일한 작업을 수행하여 빌드 전용 또는 배포 전용 워크플로를 생성할 수 있습니다.
참고
기존 워크플로는 수정할 수 없지만 복제하거나 새 버전을 만들 수 있습니다.
워크플로 주제
워크플로 프레임워크: 단계
Image Builder는 이미지 생성 프로세스를 세 단계로 구성합니다. 각 단계는 일치하는 유형의 워크플로를 실행합니다. 스테이지는 고정된 순서로 실행되며 이전 스테이지가 성공적으로 완료된 후에만 스테이지가 시작됩니다.
다음 표에는 각 단계의 기본 동작이 나열되어 있습니다. 각 워크플로에서 단계를 정의하므로 단계가 수행하는 작업을 사용자 지정할 수 있습니다.
|
Order |
단계 |
워크플로 유형 |
수행하는 작업(기본값) |
|---|---|---|---|
|
1 |
빌드 |
|
빌드 인스턴스를 시작하고, 빌드 구성 요소를 실행하고, 인스턴스에서 이미지(AMI 또는 컨테이너 이미지)를 생성합니다. |
|
2 |
테스트 |
|
새 이미지에서 테스트 인스턴스를 시작하고 테스트 구성 요소를 실행하며 선택적으로 이미지 스캔 결과를 수집합니다. |
|
3 |
Distribution |
|
대상 리전 및 계정에 이미지를 복사하고, 이미지 속성을 수정하고, 시작 템플릿 및 라이선스 구성과 같은 배포 후 구성을 적용합니다. |
일부 단계에 대해서만 워크플로를 실행할 수 있습니다. 예를 들어 빌드 단계를 건너뛰어 이미 존재하는 이미지를 테스트 또는 배포하거나 테스트 단계를 건너뛰어 테스트 없이 빌드 및 배포할 수 있습니다. 빌드 또는 테스트 단계를 건너뛰려면 파이프라인 또는 이미지 요청에서 해당 유형의 워크플로를 생략합니다.
참고
배포 워크플로는 선택 사항입니다. 이를 생략하면 Image Builder는 배포를 건너뛰지 않고 파이프라인 또는 이미지에 연결하는 배포 구성을 실행하여 AMI를 배포합니다. 다른 배포 설정으로 배포 구성을 재정의하거나 배포 프로세스에 대한 가시성을 높이려면 배포 워크플로를 추가합니다. 배포를 완전히 건너뛰려면 null 또는 빈 배포 구성을 제공합니다.
참고
이미지 파이프라인 또는 이미지 요청에는 최대 하나의 빌드 워크플로와 하나의 배포 워크플로가 포함될 수 있습니다. 하나 이상의 테스트 워크플로를 포함할 수도 있습니다. 총 워크플로 수는 10개를 초과할 수 없습니다. 예를 들어 빌드 워크플로 하나와 배포 워크플로 하나를 최대 8개의 테스트 워크플로와 페어링할 수 있습니다.
워크플로 실행 방법
워크플로는 YAML 문서에서 정의한 순서대로 단계를 실행합니다. 각 단계는 인스턴스 시작 또는 구성 요소 실행과 같은 작업 하나를 수행합니다.
단계 결과
각 단계는 다음 상태 중 하나로 끝납니다.
|
State |
의미 |
|---|---|
|
|
단계가 성공적으로 완료되었습니다. |
|
|
로 평가된 단계의 조건 |
|
|
단계가 성공적으로 완료되지 않았습니다. |
|
|
|
|
|
단계가 |
장애 처리
각 단계의 onFailure 속성은 단계가 실패할 때 발생하는 상황을 제어합니다.
-
Abort(기본값) - Image Builder는 단계에 실패하고 워크플로에 실패하며 추가 단계를 실행하지 않습니다. 롤백이 활성화된 경우 롤백은 실패한 단계에서 시작되고 이전 단계에서 역방향으로 작동합니다. -
Continue- Image Builder는 단계에 실패하지만 나머지 단계를 실행합니다. 롤백이 발생하지 않습니다.
롤백
onFailure: Abort 및 rollbackEnabled: true (기본값)를 사용하여 단계가 실패하면 Image Builder는 실패한 단계부터 시작하여 완료된 단계를 역순으로 롤백합니다. 모든 작업을 롤백할 수 있는 것은 아닙니다. 롤백이 없는 작업은 상태를 기록합니다NO_ROLLBACK.
Amazon EventBridge를 사용하여 워크플로 실행 모니터링
Image Builder는 워크플로가 실행될 때 Amazon EventBridge 이벤트를 내보내므로 진행 상황과 주의가 필요한 단계에 대응할 수 있습니다. 예를 들어 WaitForAction 단계는 세부 정보 유형의 이벤트를 기본 이벤트 버스EC2 Image Builder Workflow Step Waiting에 게시합니다. 이 이벤트를 Lambda 함수 또는 Amazon SNS 주제와 같은 대상으로 라우팅하여 승인 프로세스를 주도할 수 있습니다. Image Builder가 EventBridge와 작동하는 방식에 대한 자세한 내용은 섹션을 참조하세요Image Builder에서의 Amazon EventBridge 통합.
프로그래밍 방식으로 단계 수준 진행 상황을 추적하려면 , ListWorkflowExecutionsGetWorkflowExecutionListWorkflowStepExecutions, 및 GetWorkflowStepExecution API 작업을 사용합니다.
워크플로 리소스 제약 조건
워크플로 문서 및 구성은 다음 기본 한도 내에서 유지되어야 합니다.
|
제약 조건 |
기본 한도 |
참고 |
|---|---|---|
|
워크플로 문서당 단계 |
15 |
단계는 문서 순서로 실행됩니다. |
|
워크플로 문서당 출력 |
25 |
출력은 이후 워크플로에 값을 전달합니다. |
|
워크플로 문서당 파라미터 |
25 |
호출자가 설정할 수 있는 입력을 입력합니다. |
|
파라미터 값 길이 |
1,024자 |
파라미터 값당. |
|
인라인 문서 크기( |
16,000바이트 |
더 큰 문서에는 |
|
이미지 또는 파이프라인당 워크플로 |
10 |
최대 1개의 빌드와 1개의 배포, 테스트 워크플로, 총 10개의 조합. |
워크플로 리소스는 변경할 수 없습니다. 워크플로를 변경하려면 새 버전을 생성하거나 복제합니다. Image Builder는 모든 버전을 유지하므로 각 이미지를 생성한 워크플로를 추적할 수 있습니다.
서비스 액세스
이미지 워크플로를 실행하려면 Image Builder에 워크플로 작업을 수행할 권한이 있어야 합니다. Image Builder가 사용자를 대신하여 수임하는 실행 역할을 사용하여이 권한을 부여합니다. 다음과 같이 실행 역할을 할당합니다.
중요
AWSServiceRoleForImageBuilder 서비스 연결 역할을 실행 역할로 전달하지 않는 것이 좋습니다. 대신 사용자 지정 IAM 역할을 생성하고 EC2ImageBuilderExecutionPolicy AWS 관리형 정책을 연결합니다. 이 정책은 Image Builder가 AWS 서비스 사용자를 대신하여 호출해야 하는 것과 동일한 권한을 부여합니다. 사용자 지정 역할을 사용하면 Image Builder가 사용하는 권한을 완전히 제어할 수 있습니다. 또한 Image Builder가 사용자를 대신하여 수행하는 작업에 대해 서비스 제어 정책(SCPs) 및 리소스 제어 정책(RCPs)을 유효하게 유지합니다.
-
콘솔 - 파이프라인 마법사 3단계 이미지 생성 프로세스 정의의 서비스 액세스 패널의 IAM 역할 목록에서 사용자 지정 역할을 선택합니다.
-
Image Builder API - CreateImage 작업 요청에서 사용자 지정 역할을
executionRole파라미터 값으로 지정합니다.
사용자 지정 실행 역할을 생성하려면 AWS Identity and Access Management 사용 설명서의 AWS 서비스에 권한을 위임할 역할 생성을 참조하세요.
이미지에 관리형 워크플로 사용
AWS 는 관리형 워크플로를 생성하고 유지 관리합니다. 이미지 파이프라인에서 관리형 워크플로를 사용하거나 일회성 이미지 생성을 위해 사용할 관리형 워크플로의 Amazon 리소스 이름(ARN)을 선택할 수 있습니다. Amazon은 패치 및 기타 업데이트가 적용된 최신 버전을 제공합니다. 관리형 워크플로 목록을 가져오려면 섹션을 참조이미지 워크플로 나열하고 Owner = Amazon(콘솔)을 필터링합니다.
빌드 속도 및 검증 요구 사항에 따라 관리형 워크플로를 선택할 수 있습니다. 다음은 관리형 워크플로 유형의 예입니다.
- 표준 관리형 워크플로(기본값)
-
표준 관리형 워크플로에는 전체 EC2 상태 확인을 통해 이미지를 빌드, 테스트 및 검증하기 위한 포괄적인 단계가 포함되어 있습니다.
다음은 표준 관리형 워크플로입니다.
-
build-image - 기본 Amazon 관리형 AMI 빌드 워크플로입니다.
-
test-image - 기본 Amazon 관리형 AMI 테스트 워크플로입니다.
-
build-container – 기본 Amazon 관리형 컨테이너 빌드 워크플로입니다.
-
test-container – 기본 Amazon 관리형 컨테이너 테스트 워크플로입니다.
-
- Express 관리형 워크플로
-
Express 관리형 워크플로에는 필수 단계만 포함되고 이미지 생성 시간이 단축됩니다.
다음은 Express 관리형 워크플로입니다.
-
express-build-image - 빌드 시간을 단축하는 Express Amazon 관리형 AMI 빌드 워크플로입니다. 전체 EC2 상태 확인 대신 인스턴스 실행 상태만 대기하고 이미지 메타데이터 수집을 건너뜁니다.
-
express-build-container – 빌드 시간을 단축하는 Express Amazon 관리형 컨테이너 빌드 워크플로입니다. 전체 EC2 상태 확인 대신 인스턴스 실행 상태만 기다립니다.
-
express-test-image - 테스트 시간을 단축하는 Express Amazon 관리형 AMI 테스트 워크플로입니다. 전체 EC2 상태 확인 대신 인스턴스 실행 상태만 대기하고 보안 스캔 결과 수집을 건너뜁니다.
-