워크플로 문서에 지원되는 단계 작업 - EC2 Image Builder

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

워크플로 문서에 지원되는 단계 작업

이 섹션에는 Image Builder에서 지원하는 단계 작업에 대한 세부 정보가 포함되어 있습니다.

이 섹션에서 사용되는 용어
AMI

Amazon Machine Image

ARN

Amazon 리소스 이름

ApplyImageConfigurations

이 단계 작업은 라이선스 구성, 시작 템플릿 구성, S3 내보내기 구성, EC2 Fast Launch 구성 및 Systems Manager 파라미터 구성과 같은 다양한 구성 및 통합을 분산 AMIs에 적용합니다. 구성은 소스 계정의 분산 이미지에만 적용됩니다. 단, 교차 계정을 적용할 수 있는 SSM 파라미터 구성은 예외입니다.

기본 제한 시간: 360분

최대 제한 시간: 720분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
리전. 이미지 리전입니다. 문자열
licenseConfigurationArns 이미지의 라이선스 구성 ARN입니다. Array 아니요
launchTemplateConfigurations Array 아니요
launchTemplateConfigurations:launchTemplateId 이미지에 적용할 시작 템플릿 ID입니다. 문자열 launchTemplateConfigurations가 지정된 경우 예
launchTemplateConfigurations:accountId 이미지에 적용할 시작 템플릿 계정 IDs. 문자열 No
launchTemplateConfigurations:setDefaultVersion 이미지에 대한 시작 템플릿 기본 버전 설정입니다. 불린(Boolean) 아니요
s3ExportConfiguration Array 아니요
s3ExportConfiguration:roleName 이미지의 S3 내보내기 구성 역할 이름입니다. 문자열 s3ExportConfiguration가 지정된 경우 예
s3ExportConfiguration:diskImageFormat 이미지의 S3 내보내기 구성 디스크 이미지 형식입니다. 문자열 s3ExportConfiguration가 지정된 경우 예 허용된 값 - VMDK|RAW|VHD
s3ExportConfiguration:s3Bucket 이미지의 S3 내보내기 구성 버킷 이름입니다. 문자열 s3ExportConfiguration가 지정된 경우 예
s3ExportConfiguration:s3Prefix 이미지의 S3 내보내기 구성 버킷 접두사입니다. 문자열 No
fastLaunchConfigurations 이미지에 대한 EC2 Fast Launch 구성입니다. Array 아니요
fastLaunchConfigurations:enabled 이미지에 대해 EC2 Fast Launch가 활성화/비활성화되었습니다. 불린(Boolean) fastLaunchConfigurations가 지정된 경우 예
fastLaunchConfigurations:snapshotConfiguration 이미지에 대해 EC2 Fast Launch가 활성화/비활성화되었습니다. 아니요
fastLaunchConfigurations:snapshotConfiguration:targetResourceCount 이미지에 대한 EC2 Fast Launch 대상 리소스 수입니다. Integer 아니요
fastLaunchConfigurations:maxParallelLaunches 이미지에 대한 EC2 Fast Launch 최대 병렬 시작입니다. Integer 아니요
fastLaunchConfigurations:launchTemplate 아니요
fastLaunchConfigurations:launchTemplate:launchTemplateId 이미지의 EC2 Fast Launch 시작 템플릿 ID입니다. 문자열 No
fastLaunchConfigurations:launchTemplate:launchTemplateName 이미지의 EC2 Fast Launch 시작 템플릿 이름입니다. 문자열 No
fastLaunchConfigurations:launchTemplate:launchTemplateVersion 이미지에 대한 EC2 Fast Launch 시작 템플릿 버전입니다. 문자열 No
ssmParameterConfigurations 이미지에 대한 SSM 파라미터 구성입니다. 아니요
ssmParameterConfigurations:amiAccountId 이미지의 SSM 파라미터 AMI 계정 ID입니다. 문자열 No
ssmParameterConfigurations:parameterName 이미지의 SSM 파라미터 이름입니다. 문자열 ssmParameterConfigurations가 지정된 경우 예
ssmParameterConfigurations:dataType 이미지의 SSM 파라미터 데이터 유형입니다. 문자열 No 허용된 값 - text|aws:ec2:image)

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
configuredImages 구성된 이미지 목록입니다. Array
configuredImages:accountId 분산 이미지의 대상 계정 ID입니다. 문자열
configuredImages:name AMI의 이름입니다. 문자열
configuredImages:amiId 분산 이미지의 AMI ID입니다. 문자열
configuredImages:dateStarted 배포가 시작된 UTC 시간입니다. 문자열
configuredImages:dateStopped 배포가 완료된 UTC 시간입니다. 문자열
configuredImages:step 배포가 중지된 단계입니다. Completed|AssociateLicensesRunning|UpdateLaunchTemplateRunning|PutSsmParametersRunning|UpdateFastLaunchConfiguration|ExportAmiQueued|ExportAmiRunning
configuredImages:region 분산 이미지의 톤 AWS 문자열
configuredImages:status 배포 상태입니다. 완료됨|실패함|취소됨|TimedOut
configuredImages:errorMessage 오류 메시지가 있는 경우 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ApplyImageConfigurations action: ApplyImageConfigurations onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.ApplyImageConfigurationsStep.configuredImages

BootstrapInstanceForContainer

이 단계 작업은 서비스 스크립트를 실행하여 컨테이너 워크플로를 실행하기 위한 최소 요구 사항으로 인스턴스를 부트스트랩합니다. Image Builder는 Systems Manager API의 sendCommand를 사용하여 이 스크립트를 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.

참고

부트스트랩 스크립트는 Image Builder가 Docker 컨테이너를 성공적으로 빌드하기 위한 사전 조건인 AWS CLI 및 Docker 패키지를 설치합니다. 이 단계 작업을 포함하지 않으면 이미지 빌드가 실패할 수 있습니다.

기본 제한 시간: 60분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 부트스트랩할 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 부트스트랩 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ContainerBootstrapStep action: BootstrapInstanceForContainer onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.ContainerBootstrapStep.status

CollectImageMetadata

이 단계 작업은 빌드 워크플로에만 유효합니다.

EC2 Image Builder는 시작한 EC2 인스턴스에서 AWS Systems Manager (Systems Manager) Agent를 실행하여 이미지를 빌드 및 테스트합니다. Image Builder는 Systems Manager Inventory를 사용하여 빌드 단계에서 사용된 인스턴스에 대한 추가 정보를 수집합니다. 이 정보에는 운영 체제(OS)이름 및 버전 뿐만 아니라 운영 체제에서 보고한 패키지 및 해당 버전 목록이 포함됩니다.

참고

이 단계 작업은 AMI를 생성하는 이미지에만 적용됩니다.

기본 제한 시간: 30분

롤백: Image Builder는 이 단계에서 생성된 모든 Systems Manager 리소스를 롤백합니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 메타데이터 설정을 적용할 빌드 인스턴스입니다. 문자열 이 워크플로의 빌드 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
osVersion 빌드 인스턴스에서 수집된 운영 체제의 이름과 버전입니다. 문자열
associationId 인벤토리 수집에 사용하는 Systems Manager 연결 ID입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: CollectMetadataStep action: CollectImageMetadata onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

워크플로 문서의 단계 작업 출력을 사용합니다.

$.stepOutputs.CollectMetadataStep.osVersion

CollectImageScanFindings

계정에서 Amazon Inspector를 활성화하고 파이프라인에서 이미지 스캔을 활성화한 경우, 이 단계 작업은 테스트 인스턴스에 대해 Amazon Inspector에서 보고한 이미지 스캔 결과를 수집합니다. 빌드 워크플로에는 이 단계 작업을 사용할 수 없습니다.

기본 제한 시간: 120분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 스캔을 실행한 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 검색 결과를 수집하기 위해 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: CollectFindingsStep action: CollectImageScanFindings onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.CollectFindingsStep.status

CreateImage

이 단계 작업은 Amazon EC2 CreateImage API를 이용하여 실행 중인 인스턴스에서 이미지를 생성합니다. 생성 프로세스 중에 단계 작업은 리소스가 올바른 상태에 도달했는지 확인하기 위해 필요한 만큼 대기한 후 작업을 계속합니다.

기본 제한 시간: 720분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 새 이미지를 만들 때 사용할 인스턴스입니다. 문자열 제공된 인스턴스 ID의 인스턴스는 이 단계가 시작될 때 running 상태여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
imageId 생성한 이미지의 AMI ID입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: CreateImageFromInstance action: CreateImage onFailure: Abort inputs: instanceId.$: "i-1234567890abcdef0"

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.CreateImageFromInstance.imageId

DistributeImage

이 단계 작업은 AMI를 지정된 리전 및 계정에 배포합니다. CreateImage 또는 CreateImagePipeline APIs에 대한 요청 또는 워크플로에 제공된 사용자 지정 배포 설정에 제공된 배포 구성을 기반으로 대상 리전 및 계정에 AMI의 복사본을 생성하여 배포 구성의 설정을 재정의합니다.

기본 제한 시간: 360분

최대 제한 시간: 720분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
리전. 이미지를 배포할 리전 목록입니다. 문자열 최소 길이는 1이고, 최대 길이 1024.
name 배포 구성의 이름입니다. 문자열 No
설명 배포 구성의 배포입니다. 문자열 No
targetAccountIds 이미지를 배포할 계정 IDs. Array 아니요
amiTags 배포 구성의 태그입니다. 아니요
kmsKeyId 분산 이미지에 적용할 KMS 키입니다. 문자열 No

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
distributedImages 분산 이미지 목록 Array
distributedImages:region 분산 이미지의 Tne AWS 리전입니다. 문자열
distributedImages:name AMI의 이름입니다. 문자열
distributedImages:amiId 분산 이미지의 AMI ID입니다. 문자열
distributedImages:accountId 분산 이미지의 대상 계정 ID입니다. 문자열
distributedImages:dateStarted 배포가 시작된 UTC 시간입니다. 문자열
distributedImages:dateStopped 배포가 완료된 UTC 시간입니다. 문자열
distributedImages:status 배포 상태입니다. 완료됨|실패함|취소됨|TimedOut
distributedImages:step 배포가 중지된 단계입니다. 완료됨|CopyAmiRunning
distributedImages:errorMessage 오류 메시지가 있는 경우 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: DistributeImage action: DistributeImage onFailure: Abort inputs: distributions: - region.$: "$.parameters.SourceRegion" description: "AMI distribution to source region" amiTags: DistributionTest: "SourceRegion" WorkflowStep: "DistributeToSourceRegion" BuildDate: "{{imagebuilder:buildDate:yyyyMMHHss}}" BuildVersion: "{{imagebuilder:buildVersion}}"

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.DistributeImageStep.distributedImages

ExecuteComponents

이 단계 동작은 빌드 중인 현재 이미지의 레시피에 지정된 구성 요소를 실행합니다. 빌드 워크플로는 빌드 인스턴스에서 빌드 구성 요소를 실행합니다. 테스트 워크플로는 테스트 인스턴스에서만 테스트 구성 요소를 실행합니다.

Image Builder는 Systems Manager API의 sendCommand를 사용하여 구성 요소를 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.

기본 제한 시간: 720분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 구성 요소를 실행해야 하는 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 구성 요소를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ExecComponentsStep action: ExecuteComponents onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

워크플로 문서의 단계 작업 출력을 사용합니다.

$.stepOutputs.ExecComponentsStep.status

ExecuteStateMachine

이 단계 작업은 Image Builder 워크플로에서 AWS Step Functions 상태 시스템 실행을 시작합니다. Image Builder는 Step Functions StartExecution API를 사용하여 상태 시스템을 시작하고 완료될 때까지 기다립니다. 이는 복잡한 워크플로, 규정 준수 검증 또는 인증 프로세스를 이미지 빌드 파이프라인에 통합하는 데 유용합니다.

자세한 내용은 AWS Step Functions 개발자 안내서Step Functions의 상태 시스템에 대해 알아보기를 참조하세요.

기본 제한 시간: 6시간

최대 제한 시간: 24시간

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
stateMachineArn 실행할 Step Functions 상태 시스템의 ARN입니다. 문자열 유효한 상태 시스템 ARN이어야 합니다.
입력 상태 시스템에 제공할 JSON 입력 데이터입니다. 문자열 No {} 유효한 JSON 문자열이어야 하며 최대 길이는 16KiB입니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
executionArn 상태 시스템 실행의 ARN입니다. 문자열

IAM 권한 필요

이 단계 작업을 사용하려면 사용자 지정 실행 역할에 다음 권한이 있어야 합니다.

작업 허용
  • states:StartExecution

  • states:DescribeExecution

리소스 지정
  • arn:aws:states:us-west-2:111122223333:stateMachine:state-machine-name

  • arn:aws:states:us-west-2:111122223333:execution:state-machine-name:*

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ValidateImageCompliance action: ExecuteStateMachine timeoutSeconds: 3600 onFailure: Abort inputs: stateMachineArn: arn:aws:states:us-west-2:111122223333:stateMachine:ImageComplianceValidation input: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-west-2", "complianceLevel": "high", "requiredScans": ["cve", "benchmark", "configuration"] }

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.ValidateImageCompliance.executionArn

LaunchInstance

이 단계 작업은에서 인스턴스를 시작하고 다음 단계로 넘어가기 전에 Systems Manager 에이전트가 인스턴스에서 실행될 때까지 AWS 계정 기다립니다. 시작 작업에는 레시피의 설정과 이미지와 관련된 인프라 구성 리소스가 사용됩니다. 예를 들어, 시작할 인스턴스 유형은 인프라 구성에서 가져옵니다. 출력은 시작한 인스턴스의 인스턴스 ID입니다.

waitFor 입력은 단계 완료 요구 사항을 충족하는 조건을 구성합니다.

기본 제한 시간: 60분

롤백: 빌드 인스턴스의 경우 롤백은 인프라 구성 리소스에서 구성한 작업을 수행합니다. 기본적으로 이미지 생성에 실패하면 빌드 인스턴스가 종료됩니다. 하지만 인프라 구성에는 문제 해결을 위해 빌드 인스턴스를 유지하는 설정이 있습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
imageIdOverride 인스턴스를 시작하는 데 사용할 이미지 문자열 No

빌드 단계: 이미지 레시피 기본 이미지

테스트 단계: 빌드 단계에서 AMI 출력

유효한 AMI ID여야 합니다.
instanceTypesOverride Image Builder는 성공적으로 시작되는 인스턴스 유형을 찾을 때까지 목록의 각 인스턴스 유형을 시도합니다. 문자열 목록 아니요 인프라 구성에 지정된 인스턴스 유형 유효한 인스턴스 유형이어야 합니다.
waitFor 워크플로 단계를 완료하고 다음 단계로 넘어가기 전에 기다릴 조건입니다. 문자열 Image Builder는 ssmAgent(을)를 지원합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
instanceId 시작한 인스턴스의 인스턴스 ID입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: LaunchStep action: LaunchInstance onFailure: Abort inputs: waitFor: ssmAgent

워크플로 문서의 단계 작업 출력을 사용합니다.

$.stepOutputs.LaunchStep.instanceId

ModifyImageAttributes

이 단계 작업은 시작 권한 및 기타 AMIs 속성과 같은 분산 AMI의 속성을 수정합니다. 대상 리전 및 계정에 배포된 AMIs에서 작동합니다.

기본 제한 시간: 120분

최대 제한 시간: 180분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
리전. 이미지의 리전입니다. 문자열
launchPermission 아니요
launchPermission:userIds 이미지의 시작 권한에서 수정할 사용자 IDs입니다. 문자열 No
launchPermission:userGroups 이미지에 대한 시작 권한에서 수정할 사용자 그룹입니다. 문자열 No
launchPermission:organizationArns 이미지에 대한 시작 권한에서 수정할 AWS 조직 ARNs입니다. 문자열 No
launchPermission:organizationalUnitArns 이미지에 대한 시작 권한에서 수정할 AWS 조직 단위 ARNs입니다. 문자열 No

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
modifiedImages 수정된 이미지 목록 Array
modifiedImages:accountId 분산 이미지의 대상 계정 ID입니다. 문자열
modifiedImages:name AMI의 이름입니다. 문자열
modifiedImages:amiId 분산 이미지의 AMI ID입니다. 문자열
modifiedImages:dateStarted 배포가 시작된 UTC 시간입니다. 문자열
modifiedImages:dateStopped 배포가 완료된 UTC 시간입니다. 문자열
modifiedImages:step 배포가 중지된 단계입니다. 완료됨|ModifyAmiRunning
modifiedImages:region 이미지의 Tne AWS 리전입니다. 문자열
modifiedImages:status 배포 상태입니다. 완료됨|실패함|취소됨|TimedOut
modifiedImages:errorMessage 오류 메시지가 있는 경우 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ModifyImageAttributes action: ModifyImageAttributes onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.ModifyImageAttributesStep.modifiedImages

RegisterImage

이 단계 작업은 Amazon EC2 RegisterImage API를 사용하여 새 Amazon Machine Image(AMI)를 등록합니다. RegisterImage 이를 통해 기존 스냅샷 또는 스냅샷 세트에서 AMI를 생성하여 다양한 이미지 속성을 지정할 수 있습니다.

기본 제한 시간: 720분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
architecture AMI의 아키텍처입니다. 문자열 No 유효한 값: i386, x86_64, arm64, x86_64_mac, arm64_mac
blockDeviceMapping AMI에 대한 블록 디바이스 매핑 항목입니다. Array 아니요
bootMode AMI의 부팅 모드입니다. 문자열 No 유효한 값: legacy-bios, uefi, uefi-preferred
설명 AMI에 대한 설명입니다. 문자열 No
enaSupport ENA를 사용한 향상된 네트워킹 활성화 여부. 불린(Boolean) 아니요
imageLocation AMI 매니페스트의 위치입니다. 문자열 No S3-backed AMIs에 필요
imdsSupport IMDSv2 지원 수준입니다. 문자열 No 유효한 값: v2.0
includeSnapshotTags 블록 디바이스 매핑에 정의된 첫 번째 스냅샷의 태그를 포함할지 여부입니다. 불린(Boolean) 아니요 FALSE

true로 설정하면 태그가 다음과 같이 포함됩니다.

  • 가 포함된 blockDeviceMapping 목록SnapshotId의 첫 번째 EBS 볼륨에 있는의 태그SnapshotId는 AMI 등록 태그와 병합됩니다.

  • AMI 등록 태그는 동일한 키를 가진 스냅샷 태그보다 우선합니다.

  • AWS 예약된 태그(로 시작하는 키가 있는 태그aws:)는 자동으로 제외됩니다.

  • 를 사용하여 여러 EBS 볼륨SnapshotId이 정의된 경우 SnapshotId가 포함된 목록의 첫 번째 EBS 볼륨에 있는 태그만 포함됩니다.

kernelId 사용할 커널의 ID입니다. 문자열 No
ramdiskId 사용할 RAM 디스크의 ID입니다. 문자열 No
rootDeviceName 루트 디바이스의 디바이스 이름입니다. 문자열 No 예: /dev/sda1
sriovNetSupport Intel 82599 VF 인터페이스를 사용하여 네트워킹을 개선했습니다. 문자열 No
tpmSupport TPM 버전 지원. 문자열 No 유효한 값: v2.0
uefiData Base64-encoded UEFI 데이터입니다. 문자열 No
virtualizationType 가상화 유형입니다. 문자열 No 유효한 값: hvm, 반가상화

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
imageId 등록된 이미지의 AMI ID입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: RegisterNewImage action: RegisterImage onFailure: Abort inputs: architecture: "x86_64" bootMode: "uefi" blockDeviceMapping: - DeviceName: "/dev/sda1" Ebs: SnapshotId: "snap-1234567890abcdef0" VolumeSize: 100 VolumeType: "gp3" rootDeviceName: "/dev/sda1" virtualizationType: "hvm"

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.RegisterNewImage.imageId

다른 단계의 SnapshotId와 생성된 AMI에 포함된 스냅샷 태그가 있는 예제

- name: CreateSnapshot action: RunCommand onFailure: Abort inputs: instanceId: "i-1234567890abcdef0" documentName: "AWS-RunShellScript" parameters: commands: - "aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description 'Snapshot for AMI' --query 'SnapshotId' --output text" - name: RegisterImageFromSnapshot action: RegisterImage onFailure: Abort inputs: architecture: "x86_64" bootMode: "uefi" blockDeviceMapping: - DeviceName: "/dev/sda1" Ebs: SnapshotId.$: "$.stepOutputs.CreateSnapshot.output[0]" VolumeSize: 100 VolumeType: "gp3" includeSnapshotTags: true rootDeviceName: "/dev/sda1" virtualizationType: "hvm"

RunCommand

이 단계 동작은 워크플로의 명령 문서를 실행합니다. Image Builder는 Systems Manager API의 sendCommand를 사용하여 대신 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.

기본 제한 시간: 12시간

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 명령 문서를 실행할 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.
documentName 실행할 Systems Manager 명령 문서의 이름입니다. 문자열
parameters 명령 문서에 필요한 파라미터의 키 값 페어의 목록입니다. dictionary<string, list<string>> 조건
documentVersion 실행할 명령 문서 버전입니다. 문자열 No $DEFAULT

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 명령 문서를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열 목록

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: RunCommandDoc action: RunCommand onFailure: Abort inputs: documentName: SampleDocument parameters: osPlatform: - "linux" instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.RunCommandDoc.status

RunSysPrep

이 단계 작업은 스냅샷을 위해 빌드 인스턴스가 종료되기 전에 Systems Manager API의 sendCommand를 사용하여 Windows 인스턴스용 AWSEC2-RunSysprep 문서를 실행합니다. 이러한 작업은 AWS 이미지 강화 및 정리 모범 사례를 따릅니다.

기본 제한 시간: 60분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId AWSEC2-RunSysprep 문서를 실행할 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 AWSEC2-RunSysprep 문서를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: RunSysprep action: RunSysPrep onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.RunSysprep.status

SanitizeInstance

이 단계 작업은 스냅샷을 위해 빌드 인스턴스를 종료하기 전에 Linux 인스턴스용 권장 삭제 스크립트를 실행합니다. 삭제 스크립트는 최종 이미지가 보안 모범 사례를 따르는지 확인하고 스냅샷으로 전달해서는 안 되는 빌드 아티팩트 또는 설정을 제거하는 데 도움이 됩니다. 스크립트에 대한 자세한 내용은 빌드 후 정리 필요 섹션을 참조하세요. 이 단계 작업은 컨테이너 이미지에 적용되지 않습니다.

Image Builder는 Systems Manager API의 sendCommand를 사용하여 이 스크립트를 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.

기본 제한 시간: 60분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 삭제할 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 삭제 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: SanitizeStep action: SanitizeInstance onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.SanitizeStep.status

TerminateInstance

이 단계 작업은 입력으로 전달된 인스턴스 ID를 사용하여 인스턴스를 종료합니다.

기본 제한 시간: 30분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 종료할 인스턴스의 ID입니다. 문자열

출력: 이 단계 작업에 대한 출력이 없습니다.

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: TerminateInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: i-1234567890abcdef0

WaitForAction

이 단계 작업은 실행 중인 워크플로를 일시 중지하고 Image Builder SendWorkflowStepAction API 작업으로부터 외부 작업을 수신할 때까지 기다립니다. 이 단계에서는 EventBridge 이벤트를 세부 정보 유형 EC2 Image Builder Workflow Step Waiting과 함께 기본 EventBridge 이벤트 버스에 게시합니다. 이 단계에서는 SNS 주제 ARN을 제공하는 경우 SNS 알림을 보내거나 Lambda 함수 이름을 제공하는 경우 Lambda 함수를 비동기적으로 호출할 수도 있습니다.

기본 제한 시간: 3일

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
snsTopicArn 워크플로 단계가 보류 중일 때 알림을 보내는 선택적 SNS 주제 ARN입니다. 문자열 No
lambdaFunctionName 워크플로 단계가 보류 중일 때 비동기적으로 호출하는 Lambda 함수의 선택적 이름 또는 ARN입니다. 문자열 No
payload SNS의 메시지로 사용되는 JSON 문자열과 Lambda의 페이로드입니다. 제공된 경우 사용자 지정 페이로드는 각각 SNS 및 Lambda에 사용되는 기본 메시지/페이로드로 래핑됩니다. 제공되지 않은 경우는 기본 메시지/페이로드를 생성합니다. 문자열 No 유효한 JSON 문자열이어야 하며 최대 16KiB여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
작업 SendWorkflowStepAction API 작업이 반환하는 작업입니다. 문자열(RESUME 또는 STOP)
reason 작업이 반환된 이유입니다. 문자열

예제

SNS 알림을 사용하여 워크플로 문서에서 단계 작업을 지정합니다.

- name: SendEventAndWait action: WaitForAction onFailure: Abort inputs: snsTopicArn: arn:aws:sns:us-west-2:111122223333:ExampleTopic

Lambda 함수 호출을 사용하여 워크플로 문서에서 단계 작업을 지정합니다.

- name: SendEventAndWaitWithLambda action: WaitForAction onFailure: Abort inputs: lambdaFunctionName: ExampleFunction payload: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-west-2" }

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.SendEventAndWait.reason

WaitForSSMAgent

이 단계 작업은 예상 무응답 기간이 지난 후에서 AWS Systems Manager EC2 인스턴스를 관리할 수 있을 때까지 기다립니다. 시스템 재부팅, OS 업그레이드 또는 SSM에서 인스턴스를 일시적으로 연결 해제하는 플랫폼별 작업과 같이 알려진 인스턴스 중단이 있는 워크플로에 특히 유용합니다. Image Builder는 SSM 연결을 다시 얻거나 시간 초과될 때까지 인스턴스를 모니터링합니다.

기본 제한 시간: 60분

최대 제한 시간: 180분

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId SSM 연결을 모니터링할 인스턴스의 ID입니다. 문자열 유효한 EC2 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
Status SSM 에이전트의 연결 상태입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: WaitForInstanceAfterReboot action: WaitForSSMAgent onFailure: Abort timeoutInSeconds: 900 # 15 minutes inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.WaitForInstanceAfterReboot.Status