기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
작업 간 컴퓨팅 공유
기본적으로 워크플로의 작업은 플릿의 개별 인스턴스에서 실행됩니다. 이 동작은 입력 상태를 격리하고 예측할 수 있는 액션을 제공합니다. 기본 동작을 사용하려면 작업 간에 파일 및 변수와 같은 컨텍스트를 공유하도록 명시적으로 구성해야 합니다.
컴퓨팅 공유는 동일한 인스턴스의 워크플로우 내에서 모든 작업을 실행할 수 있는 기능입니다. 컴퓨팅 공유를 사용하면 인스턴스를 프로비저닝하는 데 소요되는 시간이 줄어들어 워크플로 런타임이 빨라질 수 있습니다. 또한 추가 워크플로를 구성하지 않고도 작업 간에 파일 (아티팩트) 을 공유할 수 있습니다.
컴퓨팅 공유를 사용하여 워크플로를 실행하면 기본 또는 지정된 플릿의 인스턴스가 해당 워크플로의 모든 작업 기간 동안 예약됩니다. 워크플로 실행이 완료되면 인스턴스 예약이 해제됩니다.
공유 컴퓨팅에서 여러 작업 실행
워크플로 YAML 수준에서 정의의 Compute
속성을 사용하여 작업의 플릿 및 컴퓨팅 공유 속성을 모두 지정할 수 있습니다. 에서 시각적 편집기를 사용하여 컴퓨팅 속성을 구성할 수도 CodeCatalyst 있습니다. 플릿을 지정하려면 기존 플릿의 이름을 설정하고 컴퓨팅 유형을 로 EC2설정한 다음 컴퓨팅 공유를 켜십시오.
참고
컴퓨팅 공유는 컴퓨팅 유형이 로 EC2설정된 경우에만 지원되며 Windows Server 2022 운영 체제에서는 지원되지 않습니다. 컴퓨팅 플릿, 컴퓨팅 유형 및 속성에 대한 자세한 내용은 을 참조하십시오컴퓨팅 및 런타임 이미지 구성.
참고
프리 티어를 사용 중이고 워크플로 YAML 정의에서 Linux.x86-64.XLarge
또는 Linux.x86-64.2XLarge
플릿을 수동으로 지정하는 경우에도 작업은 기본 플릿 (Linux.x86-64.Large
) 에서 계속 실행됩니다. 컴퓨팅 가용성 및 요금에 대한 자세한 내용은 티어 옵션 표를
컴퓨팅 공유를 켜면 워크플로 소스가 들어 있는 폴더가 작업 전체에 자동으로 복사됩니다. 워크플로 정의 (YAML파일) 전체에서 출력 아티팩트를 구성하고 이를 입력 아티팩트로 참조할 필요가 없습니다. 워크플로 작성자는 컴퓨팅 공유를 사용하지 않는 것과 마찬가지로 입력과 출력을 사용하여 환경 변수를 연결해야 합니다. 워크플로 소스 외부의 작업 간에 폴더를 공유하려면 파일 캐싱을 고려해 보세요. 자세한 내용은 작업 간 아티팩트 및 파일 공유 및 워크플로우 실행 간 파일 캐싱 단원을 참조하세요.
워크플로 정의 파일이 있는 소스 저장소는 레이블로 식별됩니다. WorkflowSource
컴퓨팅 공유를 사용하는 동안 워크플로 원본은 이를 참조하는 첫 번째 작업에서 다운로드되며, 실행 중인 워크플로의 후속 작업에 자동으로 제공됩니다. 파일 추가, 수정 또는 제거와 같은 작업을 통해 워크플로 소스가 포함된 폴더를 변경한 내용은 워크플로의 후속 작업에서도 확인할 수 있습니다. 컴퓨팅 공유를 사용하지 않는 것처럼 모든 워크플로 작업에서 워크플로 소스 폴더에 있는 파일을 참조할 수 있습니다. 자세한 내용은 소스 리포지토리 파일 참조 단원을 참조하십시오.
참고
컴퓨팅 공유 워크플로는 엄격한 작업 순서를 지정해야 하므로 병렬 작업을 설정할 수 없습니다. 시퀀스의 모든 작업에서 출력 아티팩트를 구성할 수 있지만 입력 아티팩트는 지원되지 않습니다.
컴퓨팅 공유 고려 사항
컴퓨팅 공유로 워크플로를 실행하여 워크플로 실행을 가속화하고 동일한 인스턴스를 사용하는 워크플로의 작업 간에 컨텍스트를 공유할 수 있습니다. 다음 사항을 고려하여 컴퓨팅 공유를 사용하는 것이 시나리오에 적합한지 결정하십시오.
컴퓨팅 공유 | 컴퓨팅 공유 없음 | |
---|---|---|
컴퓨팅 유형 |
아마존 EC2 |
아마존EC2, AWS 람다 |
인스턴스 프로비저닝 |
작업은 동일한 인스턴스에서 실행됩니다. |
작업은 별도의 인스턴스에서 실행됩니다. |
운영 체제 |
Amazon Linux 2 |
아마존 리눅스 2, 윈도우 서버 2022 (빌드 액션 전용) |
참조 파일 |
|
|
워크플루 구조 |
액션은 순차적으로만 실행할 수 있습니다. |
작업은 병렬로 실행될 수 있습니다. |
워크플로우 작업 전반의 데이터 액세스 |
캐시된 워크플로 소스 액세스 () |
공유 아티팩트의 출력에 액세스 (추가 구성 필요) |
컴퓨팅 공유 켜기
워크플로우에 컴퓨팅 공유를 켜려면 다음 지침을 따르십시오.
예시
예: 아마존 S3 퍼블리시
다음 워크플로 예제는 Amazon Amazon S3 Publish 작업을 두 가지 방법, 즉 입력 아티팩트를 사용한 다음 컴퓨팅 공유를 사용하는 방법을 보여줍니다. 컴퓨팅 공유를 사용하면 캐시된 객체에 액세스할 수 있으므로 입력 아티팩트가 필요하지 않습니다. WorkflowSource
또한 Build 작업의 출력 아티팩트는 더 이상 필요하지 않습니다. S3 Publish 작업은 명시적 DependsOn
속성을 사용하여 순차적 작업을 유지하도록 구성되어 있습니다. S3 Publish 작업을 실행하려면 빌드 작업이 성공적으로 실행되어야 합니다.
컴퓨팅 공유를 사용하지 않는 경우 입력 아티팩트를 사용하고 출력을 후속 작업과 공유해야 합니다.
Name: S3PublishUsingInputArtifact SchemaVersion: "1.0" Actions: Build: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ArtifactToPublish Files: [output.zip] Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ./build.sh # Build script that generates output.zip PublishToS3: Identifier: aws/s3-publish@v1 Inputs: Artifacts: - ArtifactToPublish Environment: Connections: - Role: codecatalyst-deployment-role Name: dev-deployment-role Name: dev-connection Configuration: SourcePath: output.zip DestinationBucketName: amzn-s3-demo-bucket
-
로
SharedInstance
설정하여TRUE
컴퓨팅 공유를 사용하는 경우 단일 워크플로 소스를 지정하여 동일한 인스턴스에서 여러 작업을 실행하고 아티팩트를 공유할 수 있습니다. 입력 아티팩트는 필수가 아니며 지정할 수도 없습니다.Name: S3PublishUsingComputeSharing SchemaVersion: "1.0" Compute: Type: EC2 Fleet: dev-fleet SharedInstance: TRUE Actions: Build: Identifier: aws/build@v1 Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ./build.sh # Build script that generates output.zip PublishToS3: Identifier: aws/s3-publish@v1 DependsOn: - Build Environment: Connections: - Role: codecatalyst-deployment-role Name: dev-deployment-role Name: dev-connection Configuration: SourcePath: output.zip DestinationBucketName: amzn-s3-demo-bucket