기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
성능을 개선하기 위한 캐시 빌드
프로젝트가 빌드될 때 캐시를 사용하여 시간을 절약할 수 있습니다. 캐시는 빌드 환경에서 재사용할 수 있는 정보를 저장하여 여러 빌드에 사용할 수 있습니다. 빌드 프로젝트는 Amazon S3 또는 로컬의 두 캐싱 유형 중 하나를 사용할 수 있습니다. 로컬 캐시를 사용하는 경우 다음 세 캐시 모드에서 하나 이상을 선택해야 합니다. 소스 캐시, Docker 계층 캐시 및 사용자 지정 캐시.
참고
Docker 계층 캐시 모드는 Linux 환경에서만 사용할 수 있습니다. 이 모드를 선택하면 권한 있는 모드에서 빌드를 실행해야 합니다. 권한이 부여된 CodeBuild 프로젝트는 컨테이너에 모든 디바이스에 대한 액세스 권한을 부여합니다. 자세한 내용은 Docker 문서 웹 사이트의 런타임 권한 및 Linux 기능
Amazon S3 캐싱
Amazon S3 캐싱은 여러 빌드 호스트에 사용 가능한 캐시를 Amazon S3 버킷에 저장합니다. 이는 다운로드보다 빌드가 더 비용이 많이 드는 소형-중형 빌드 아티팩트에 적합한 옵션입니다. 대용량 빌드 아티팩트의 경우에는 네트워크를 통해 전송하는 데 오랜 시간이 걸릴 수 있고 따라서 빌드 성능에 영향을 미칠 수 있으므로 최선의 옵션은 아닙니다. Docker 계층을 사용하는 경우에는 최선의 옵션이 아닙니다.
로컬 캐싱
로컬 캐싱은 해당 빌드 호스트에만 사용할 수 있는 캐시를 빌드에 로컬로 저장합니다. 빌드 호스트에서 즉각적으로 캐시를 사용할 수 있으므로 중형-대형 빌드 아티팩트에 적합한 옵션입니다. 빌드가 드문 경우에는 최선의 옵션이 아닙니다. 이는 빌드 성능이 네트워크 전송 시간의 영향을 받지 않는다는 의미입니다.
로컬 캐싱을 선택할 경우 다음 캐시 모드 중 하나 이상을 선택해야 합니다.
-
소스 캐시 모드는 기본 및 보조 소스를 위해 Git 메타데이터를 캐싱합니다. 캐시가 생성되면 이후의 빌드는 커밋 사이의 변경 사항만 끌어옵니다. 이 모드는 클린 작업 디렉터리를 사용하고 소스가 대규모 Git 리포지토리인 프로젝트에 적합한 선택입니다. 이 옵션을 선택하고 프로젝트가 Git 리포지토리(AWS CodeCommit,, GitHub GitHub Enterprise Server 또는 Bitbucket)를 사용하지 않는 경우 옵션은 무시됩니다.
-
Docker 계층 캐시 모드는 기존 Docker 계층을 캐싱합니다. 이 모드는 대용량 도커 이미지를 빌드하거나 끌어오는 프로젝트에 적합한 선택입니다. 네트워크에서 대용량 도커 이미지를 끌어올 때 발생하는 성능 문제를 방지할 수 있습니다.
참고
-
Docker 계층 캐시는 Linux 환경에서만 사용할 수 있습니다.
-
프로젝트가 필요한 Docker 권한을 가지도록
privileged
플래그를 설정해야 합니다.기본적으로 빌드가 아닌VPC 경우 Docker 데몬이 활성화됩니다. VPC 빌드에 Docker 컨테이너를 사용하려면 Docker Docs 웹 사이트의 런타임 권한 및 Linux 기능을
참조하고 권한 부여 모드를 활성화합니다. 또한 Windows는 권한 모드를 지원하지 않습니다. -
Docker 계층 캐시를 사용하기 전에 보안에 미치는 영향을 고려해야 합니다.
-
-
사용자 지정 캐시 모드는 buildspec 파일에 지정한 디렉터리를 캐싱합니다. 이 모드는 다른 두 로컬 캐시 모드에 적합하지 않은 빌드 시나리오에 적합한 선택입니다. 사용자 지정 캐시를 사용할 경우
-
캐싱을 위해 디렉터리만 지정할 수 있습니다. 개별 파일은 지정할 수 없습니다.
-
Symlink를 사용하여 캐싱된 디렉터리를 참조합니다.
-
캐싱된 디렉터리는 프로젝트 소스를 다운로드하기 전에 빌드에 연결됩니다. 캐시된 항목은 이름이 같은 경우 소스 항목을 재정의합니다. 디렉터리는 buildspec 파일에서 경로를 사용하여 지정합니다. 자세한 내용은 buildspec 구문 단원을 참조하십시오.
-
소스와 캐시에서 동일한 디렉터리 이름은 사용하지 마십시오. 로컬로 캐시된 디렉터리는 소스 리포지토리에서 이름이 같은 디렉터리의 내용을 재정의하거나 삭제할 수 있습니다.
-
참고
LINUX_GPU_CONTAINER
환경 유형 및 BUILD_GENERAL1_2XLARGE
컴퓨팅 유형에서는 로컬 캐싱이 지원되지 않습니다. 자세한 내용은 빌드 환경 컴퓨팅 모드 및 유형 단원을 참조하십시오.
참고
에서 작동 CodeBuild 하도록 를 구성할 때는 로컬 캐싱이 지원되지 않습니다VPC. VPCs 와 함께 를 사용하는 방법에 대한 자세한 내용은 섹션을 CodeBuild참조하세요Amazon Virtual Private Cloud AWS CodeBuild 와 함께 사용.
로컬 캐시 지정
AWS CLI, 콘솔, SDK또는 를 사용하여 로컬 캐시를 AWS CloudFormation 지정할 수 있습니다. 로컬 캐싱에 대한 자세한 내용은 섹션을 참조하세요로컬 캐싱.
로컬 캐싱 지정(CLI)
의 --cache
파라미터를 사용하여 세 가지 로컬 캐시 유형 각각을 AWS CLI 지정할 수 있습니다.
-
소스 캐시를 지정하려면
--cache type=LOCAL,mode=[LOCAL_SOURCE_CACHE]
-
Docker 계층 캐시를 지정하려면
--cache type=LOCAL,mode=[LOCAL_DOCKER_LAYER_CACHE]
-
사용자 지정 캐시를 지정하려면
--cache type=LOCAL,mode=[LOCAL_CUSTOM_CACHE]
자세한 내용은 빌드 프로젝트 생성(AWS CLI) 단원을 참조하십시오.
로컬 캐싱 지정(콘솔)
콘솔의 결과물 섹션에서 캐시를 지정합니다. 캐시 유형은 Amazon S3 또는 로컬을 선택합니다. 로컬을 선택한 경우 세 로컬 캐시 옵션 중 하나 이상을 선택합니다.
자세한 내용은 빌드 프로젝트 만들기(콘솔) 단원을 참조하십시오.
로컬 캐싱 지정(AWS CloudFormation)
AWS CloudFormation 를 사용하여 로컬 캐시를 지정하는 경우 Cache
속성에서 에 대해 를 Type
지정합니다LOCAL
. 다음 샘플 YAML형식 AWS CloudFormation 코드는 세 가지 로컬 캐시 유형을 모두 지정합니다. 각 유형을 임의로 조합하여 지정할 수 있습니다. Docker 계층 캐시를 사용하는 경우 Environment
에서 PrivilegedMode
를 true
로 설정하고 Type
을 LINUX_CONTAINER
로 설정해야 합니다.
CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole:
<service-role>
Artifacts: Type: S3 Location:<bucket-name>
Name: myArtifact EncryptionDisabled: true OverrideArtifactName: true Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Certificate:<bucket/cert.zip>
# PrivilegedMode must be true if you specify LOCAL_DOCKER_LAYER_CACHE PrivilegedMode: true Source: Type: GITHUB Location:<github-location>
InsecureSsl: true GitCloneDepth: 1 ReportBuildStatus: false TimeoutInMinutes: 10 Cache: Type: LOCAL Modes: # You can specify one or more cache mode, - LOCAL_CUSTOM_CACHE - LOCAL_DOCKER_LAYER_CACHE - LOCAL_SOURCE_CACHE
참고
기본적으로 빌드가 아닌VPC 경우 Docker 데몬이 활성화됩니다. VPC 빌드에 Docker 컨테이너를 사용하려면 Docker Docs 웹 사이트의 런타임 권한 및 Linux 기능을
자세한 내용은 빌드 프로젝트 생성(AWS CloudFormation) 단원을 참조하십시오.