View a markdown version of this page

Image Builder의 이미지 파이프라인 워크플로 구성 - EC2 Image Builder

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

Image Builder의 이미지 파이프라인 워크플로 구성

이미지 워크플로를 사용하면 파이프라인이 실행하는 워크플로를 사용자 지정하여 필요에 따라 이미지를 빌드, 테스트 및 배포할 수 있습니다. 정의한 워크플로는 Image Builder 워크플로 프레임워크의 컨텍스트 내에서 실행됩니다. 워크플로 프레임워크를 구성하는 단계에 대한 자세한 내용은 Image Builder 이미지의 빌드, 테스트 및 배포 워크플로 관리 섹션을 참조하세요.

빌드 워크플로

빌드 워크플로는 워크플로 프레임워크의 Build 단계에서 실행됩니다. 파이프라인에는 하나의 빌드 워크플로만 지정할 수 있습니다. 또는 빌드를 완전히 건너뛰고 테스트 전용 파이프라인을 구성할 수도 있습니다.

테스트 워크플로

테스트 워크플로는 워크플로 프레임워크의 Test 단계에서 실행됩니다. 파이프라인에 테스트 워크플로를 최대 10개까지 추가할 수 있으며, 이는 빌드 및 배포 워크플로도 계산합니다. 테스트 워크플로는 테스트 그룹을 정의하는 방법에 따라 병렬로 실행하거나 한 번에 하나씩 실행할 수 있습니다. 파이프라인 빌드만 하려는 경우 테스트를 완전히 건너뛸 수도 있습니다.

배포 워크플로

배포 워크플로는 워크플로 프레임워크의 Distribution 단계에서 실행됩니다. 배포 워크플로는 선택 사항입니다. 지정하지 않은 경우에도 Image Builder는 파이프라인 또는 이미지에 연결하는 배포 구성을 실행하여 AMI를 배포합니다. 다른 배포 설정으로 배포 구성을 재정의하거나 배포 프로세스에 대한 가시성을 높이려면 배포 워크플로를 지정합니다. 파이프라인에 대해 하나의 배포 워크플로를 지정할 수 있습니다. 컨테이너 이미지를 빌드하고 배포 워크플로를 지정하지 않으면 Image Builder가 Amazon 관리형 컨테이너 배포 워크플로를 추가합니다.

테스트 워크플로를 위한 테스트 그룹 정의

테스트 그룹 내에서 테스트 워크플로를 정의합니다. 파이프라인에 대해 여러 테스트 워크플로를 실행할 수 있습니다. 결합된 한도는 빌드 및 배포 워크플로를 포함하는 총 10개의 워크플로입니다. 테스트 워크플로를 특정 순서로 실행할지 아니면 동시에 최대한 많이 실행할지 결정합니다. 테스트 그룹을 어떻게 정의하느냐에 따라 실행 방식이 달라집니다. 다음 시나리오는 테스트 워크플로를 정의할 수 있는 여러 가지 방법을 보여줍니다.

참고

parallelGrouponFailure 설정은 테스트 워크플로에만 적용됩니다. Image Builder는를 사용하여 빌드 또는 배포 워크플로에서 이를 거부합니다InvalidParameterCombinationException.

테스트 그룹 실행 방법

Image Builder는 테스트 그룹에서 테스트 워크플로를 실행합니다. 한 번에 하나씩 그룹을 실행합니다. 단일 그룹 내의 테스트 워크플로는 동시에(병렬로) 실행됩니다. Image Builder는 동시에 최대 5개의 테스트 워크플로를 실행합니다. 그룹에 5개 이상이 있는 경우 Image Builder는 각 워크플로가 완료되면 다음 테스트 워크플로를 시작합니다. 그룹에 속하지 않는 테스트 워크플로는 자체적으로 실행됩니다.

테스트 그룹을 정의하는 방법은 콘솔을 사용하는지 아니면 AWS CLI 및 API를 사용하는지에 따라 달라집니다. 사용하는 방법과 일치하는 탭을 선택합니다.

AWS Management Console

콘솔에서 파이프라인을 생성하거나 편집할 때 이미지 생성 프로세스의 테스트 워크플로 섹션에서 테스트 워크플로를 정의합니다. 테스트를 실행하려면 옵션을 선택하여 테스트 워크플로를 선택합니다. 테스트 없이 이미지를 빌드하려면 테스트 워크플로를 건너뛰는 옵션을 선택합니다.

콘솔은 테스트 워크플로를 테스트 그룹으로 구성합니다. 새 파이프라인은 하나의 테스트 그룹으로 시작됩니다. 테스트 구성을 빌드하려면 다음을 수행합니다.

  • 그룹에 테스트 워크플로 추가 - 그룹에 테스트 워크플로를 추가하고 자체 워크플로(내 소유) 또는 AWS 관리형 워크플로(Amazon에서 관리)에서 워크플로를 선택합니다. 워크플로에서 파라미터를 정의하면 값을 입력할 수 있도록 콘솔에 파라미터가 표시됩니다. 그룹은 동시에 실행되는 최대 5개의 테스트 워크플로를 보유할 수 있습니다.

  • 테스트 그룹 추가 - 다른 테스트 그룹을 추가하여 다른 테스트 세트를 실행합니다. 최대 10개의 테스트 그룹을 추가할 수 있습니다. 그룹의 이름을 바꾸려면 이름 편집을 선택합니다. 그룹 이름은 최대 128자까지 가능하며 문자, 숫자, 하이픈(-) 및 밑줄()을 포함할 수 있습니다_.

Image Builder는 마법사에 나타나는 순서대로 테스트 그룹을 한 번에 하나씩 실행합니다. 그룹 내의 테스트 워크플로는 동시에 실행됩니다. 그룹은 최대 5개의 테스트 워크플로를 포함할 수 있습니다. 테스트를 한 번에 하나씩 실행하려면 각 테스트 워크플로를 자체 그룹에 넣습니다.

참고

테스트 워크플로 및 그룹은 추가하거나 제거할 수 있지만 재정렬할 수는 없습니다. 테스트 그룹을 생성하기 전에 테스트 그룹의 순서를 계획합니다.

AWS CLI

AWS CLI 또는 Image Builder API를 사용하는 경우 테스트 그룹을 직접 정의하지 않습니다. 대신 workflows 목록의 각 테스트 워크플로에 parallelGroup 속성을 설정합니다. 한 그룹에서 동일한 parallelGroup 값을 가진 워크플로를 테스트하고 동시에 실행합니다. parallelGroup 값이 없는 테스트 워크플로는 자체적으로 실행됩니다. 테스트 워크플로에서 parallelGroup 값을 설정하지 않으면 Image Builder는 한 번에 하나씩 실행합니다.

AWS CLI 및 API는 그룹의 테스트 워크플로 수를 제한하지 않습니다. 유일한 제한은 10개를 초과할 수 없는 총 워크플로 수(빌드 및 배포 워크플로 포함)입니다. 콘솔은 그룹을 5개의 테스트 워크플로로 제한합니다.

Image Builder는 항상 빌드 워크플로를 먼저 실행한 다음 워크플로를 테스트한 다음 배포 워크플로를 실행합니다. 이 순서는 나열 방법에 관계없이 적용됩니다.

테스트 단계 내에서 Image Builder는 다음과 같이 테스트 워크플로를 주문합니다.

  • 각 그룹이 workflows 목록에 처음 나타나는 위치를 기준으로 그룹을 정렬합니다. parallelGroup 값을 기준으로 정렬하지 않습니다.

  • 나열된 위치에 그룹이 없는 각 워크플로를 유지합니다.

  • 해당 그룹이 처음 나타나는 위치에서 그룹의 워크플로를 함께 실행합니다.

예제

이 순서로 5개의 테스트 워크플로를 나열하고 그 중 일부에 parallelGroup 값을 설정한다고 가정해 보겠습니다.

  • 테스트 워크플로 A - 그룹 없음

  • 테스트 워크플로 B – parallelGroup: tests-1

  • 테스트 워크플로 C - 그룹 없음

  • 테스트 워크플로 D – parallelGroup: tests-1

  • 테스트 워크플로 E – parallelGroup: tests-2

Image Builder는 다음 순서로 실행합니다.

  1. 워크플로 A를 자체적으로 테스트합니다.

  2. 동시에 워크플로 B를 테스트하고 워크플로 D를 테스트합니다. 테스트 워크플로 B에 처음 나타나는 tests-1 그룹을 공유합니다.

  3. 워크플로 C를 자체적으로 테스트합니다.

  4. tests-2 그룹에서 워크플로 E를 단독으로 테스트합니다.

테스트 워크플로 D는 테스트 워크플로 C를 나열한 경우에도 그룹을 공유하므로 테스트 워크플로 B와 함께 실행됩니다. 라는 그룹은 이전에 tests-1 실행됩니다.가 목록에서 먼저 tests-1 나타나기 tests-2 때문입니다. 그룹 순서는 parallelGroup 값이 아니라 목록의 순서를 따릅니다.

시나리오 1: 한 번에 하나의 테스트 워크플로 실행

모든 테스트 워크플로를 한 번에 하나씩 실행하려면 최대 총 10개의 워크플로 제한(구축 및 배포 워크플로 포함)까지 각 테스트 워크플로에 대해 별도의 테스트 그룹을 구성합니다. Image Builder는 테스트 그룹을 한 번에 하나씩 실행합니다. 이는 테스트 워크플로를 특정 순서로 한 번에 하나씩 실행하게 하는 한 가지 방법입니다.

시나리오 2: 여러 테스트 워크플로를 동시에 실행

순서가 중요하지 않고 최대한 많은 테스트 워크플로를 동시에 실행하려는 경우 단일 테스트 그룹을 구성하고 여기에 최대 개수의 테스트 워크플로를 넣을 수 있습니다. Image Builder는 동시에 최대 5개의 테스트 워크플로를 시작하고 다른 워크플로가 완료되면 추가 테스트 워크플로를 시작합니다. 테스트 워크플로를 최대한 빨리 실행하는 것이 목표라면 이 방법으로 달성할 수 있습니다.

시나리오 3: 믹스 앤 매치

동시에 실행할 수 있는 테스트 워크플로와 한 번에 하나씩 실행해야 하는 테스트 워크플로가 혼합된 시나리오의 경우 이 목표를 달성하도록 테스트 그룹을 구성할 수 있습니다. 테스트 그룹을 구성하는 방법에서 유일한 한도는 파이프라인에서 실행할 수 있는 테스트 워크플로의 최대 수입니다.

콘솔에서 Image Builder 파이프라인의 워크플로 파라미터 설정

워크플로 파라미터는 빌드, 테스트 및 배포 워크플로에서 동일한 방식으로 작동합니다. 파이프라인을 생성하거나 업데이트할 때 포함하려는 빌드, 테스트 및 배포 워크플로를 선택합니다. 선택한 워크플로의 워크플로 문서에서 파라미터를 정의한 경우 Image Builder가 파라미터 패널에 해당 파라미터를 표시합니다. 파라미터가 정의되지 않은 워크플로의 경우 패널이 숨겨집니다.

각 파라미터에는 워크플로 문서에서 정의한 다음 속성이 표시됩니다.

  • 이름(편집 불가)-파라미터 이름입니다.

  • 유형(편집 불가) – 파라미터 값의 데이터 유형입니다.

  • – 파라미터의 값입니다. 파이프라인에 맞게 파라미터 값을 편집하여 설정할 수 있습니다.

Image Builder가 워크플로 작업을 실행하는 데 사용하는 IAM 서비스 역할 지정

사용자 지정 이미지 워크플로를 파이프라인에 연결하거나 로깅 구성을 설정할 때 실행 역할도 지정해야 합니다. 이는 Image Builder가 워크플로 작업을 실행하기 위해 수임하는 IAM 역할입니다. 역할은 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 Management Console

에서 파이프라인을 생성하거나 업데이트하면 이미지 파이프라인 AWS Management Console생성 마법사에 파이프라인이 실행되는 워크플로를 선택하는 워크플로 단계가 포함됩니다. 사용자 지정 이미지 워크플로를 연결하려면 해당 단계에서 다음을 수행합니다.

  1. 빌드 워크플로에서 파이프라인을 실행할 빌드 워크플로를 선택합니다.

  2. 테스트 워크플로의 경우 하나 이상의 테스트 워크플로를 추가하고 테스트 그룹으로 구성하여 실행 순서를 제어합니다. 자세한 내용은 테스트 워크플로를 위한 테스트 그룹 정의 단원을 참조하십시오.

  3. 배포 워크플로에서 연결된 배포 구성을 재정의하거나 배포 프로세스에 대한 가시성을 높이려면 배포 워크플로를 선택합니다. 이는 선택 사항입니다.

  4. 실행 역할에서 Image Builder가 워크플로 작업을 실행하기 위해 수임하는 IAM 역할을 선택합니다. 사용자 지정 이미지 워크플로를 연결할 때 실행 역할이 필요합니다. 자세한 내용은 Image Builder가 워크플로 작업을 실행하는 데 사용하는 IAM 서비스 역할 지정 단원을 참조하십시오.

  5. 선택한 워크플로가 파라미터를 정의하는 경우 파라미터 패널에서 해당 값을 설정합니다. 자세한 내용은 콘솔에서 Image Builder 파이프라인의 워크플로 파라미터 설정 단원을 참조하십시오.

전체 이미지 파이프라인 생성 마법사에 대한 step-by-step 연습은 섹션을 참조하세요AMI 이미지 파이프라인 생성 및 업데이트.

AWS CLI

파이프라인을 생성할 때 사용자 지정 이미지 워크플로를 연결하려면 create-image-pipeline 명령을 사용합니다. --execution-role 파라미터를 사용하여 실행 역할을 지정하고 --workflows 파라미터를 사용하여 빌드, 테스트 및 배포 워크플로를 나열합니다. 다음 예제에서는 하나의 빌드 워크플로, 하나의 테스트 워크플로 및 하나의 배포 워크플로로 파이프라인을 생성합니다.

aws imagebuilder create-image-pipeline \ --name example-pipeline \ --image-recipe-arn arn:aws:imagebuilder:us-west-2:111122223333:image-recipe/example/1.0.0 \ --infrastructure-configuration-arn arn:aws:imagebuilder:us-west-2:111122223333:infrastructure-configuration/example \ --execution-role arn:aws:iam::111122223333:role/ImageBuilderWorkflowExecutionRole \ --workflows '[ {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/build/example-build/1.0.0"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/test/example-test/1.0.0","parallelGroup":"group-1","onFailure":"CONTINUE"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/distribution/example-distribute/1.0.0"} ]'