AWS CodeBuild
사용 설명서 (API 버전 2016-10-06)

CodeBuild에서 빌드 프로젝트 설정 변경

AWS CodeBuild 콘솔, AWS CLI 또는 AWS SDK를 사용하여 빌드 프로젝트의 설정을 변경할 수 있습니다.

빌드 프로젝트 설정 변경(콘솔)

  1. Open the AWS CodeBuild console at https://console.aws.amazon.com/codesuite/codebuild/home.

  2. 탐색 창에서 [Build projects]를 선택합니다.

  3. 다음 중 하나를 수행하십시오.

    • 변경하려는 빌드 프로젝트의 링크를 선택한 다음 Edit project(프로젝트 편집)를 선택합니다.

    • 변경하려는 빌드 프로젝트 옆에 있는 라디오 버튼을 선택하고 세부 정보 보기를 선택한 후 빌드 세부 정보를 선택합니다.

  4. 프로젝트의 설명을 변경하려면 Project configuration(프로젝트 구성)에서 편집을 선택한 후 설명을 입력합니다.

    Update configuration(구성 업데이트)을 선택합니다.

    이 절차에서 참조된 설정에 대한 자세한 정보는 빌드 프로젝트 만들기(콘솔) 단원을 참조하십시오.

  5. 소스 코드 위치에 대한 정보를 변경하려면 소스에서 편집을 선택합니다. 다음 표를 사용하여 소스 공급자에 알맞은 유형을 선택한 후 업데이트 소스를 선택합니다.

    참고

    CodeBuild에서는 Bitbucket이 지원되지 않습니다.

    소스 공급자 Amazon S3 CodeCommit Bitbucket GitHub GitHub Enterprise

    버킷의 경우 소스 코드가 포함된 입력 버킷의 이름을 선택합니다.

    X

    S3 객체 키 또는 S3 폴더의 경우 소스 코드가 포함된 ZIP 파일의 이름 또는 폴더 경로를 입력합니다. S3 버킷의 모든 항목을 다운로드하려면 슬래시(/)를 입력합니다.

    X

    Connect using OAuth(OAuth를 사용하여 연결) 또는 Connect with a Bitbucket app password(Bitbucket 앱 암호를 사용하여 연결)를 선택하고 지침에 따라 Bitbucket에 연결 또는 다시 연결합니다.

    X

    Connect using OAuth(OAuth를 사용하여 연결) 또는 Connect with a GitHub personal access token(GitHub 개인용 액세스 토큰을 사용하여 연결)을 선택하고 지침에 따라 GitHub에 연결 또는 다시 연결하고 AWS CodeBuild에 대한 액세스 권한을 부여합니다.

    X

    개인용 액세스 토큰의 경우, GitHub Enterprise 샘플 단원의 개인용 액세스 토큰을 클립보드에 복사하는 방법을 참조하십시오. 토큰을 텍스트 필드에 붙여넣고, 토큰 저장을 선택합니다.

    참고

    개인용 액세스 토큰은 한 번만 입력하고 저장하면 됩니다. 그러면 CodeBuild에서 이후 모든 프로젝트에 이 토큰을 사용합니다.

    X

    리포지토리에서 사용할 리포지토리를 선택합니다.

    X

    Reference type(참조 유형)의 경우 브랜치, Git 태그 또는 커밋 ID를 선택하여 소스 코드 버전을 지정합니다. 자세한 내용은 CodeBuild를 사용한 소스 버전 샘플 단원을 참조하십시오.

    X

    리포지토리의 경우 퍼블릭 리포지토리를 사용할지 아니면 계정의 리포지토리를 사용할지를 선택합니다.

    X X

    리포지토리 URL은 퍼블릭 리포지토리를 사용할 때만 이용하십시오. URL에는 소스 공급자의 이름이 포함되어야 합니다. 예를 들어, Bitbucket URL에는 bitbucket.org가 포함되어야 합니다.

    X X

    소스 공급자가 Amazon S3라면 소스 버전에 입력 파일의 빌드를 나타내는 객체의 버전 ID를 입력합니다. 소스 공급자가 GitHub 또는 GitHub Enterprise인 경우 풀 요청, 브랜치, 커밋 ID, 태그 또는 참조 및 커밋 ID를 입력합니다. 소스 공급자가 Bitbucket라면 브랜치, 커밋 ID, 태그 또는 레퍼런스 및 커밋 ID를 입력합니다. 자세한 내용은 CodeBuild를 사용한 소스 버전 샘플 단원을 참조하십시오.

    X X X X

    Git clone 깊이를 선택하면 이력이 지정된 커밋 수로 잘린 부분 복제가 생성됩니다. 전체 복제가 필요할 경우 전체를 선택합니다.

    X X X X

    리포지토리에 Git 하위 모듈을 포함하려면 Use Git submodules(Git 하위 모듈 사용)를 선택합니다.

    X X X X

    빌드 시작 및 완료 상태가 소스 공급자에게 보고되도록 하려면 Report build statuses to source provider when your builds start and finish(빌드가 시작되고 완료될 때 소스 공급자에게 빌드 상태 보고)를 선택합니다.

    참고

    Webhook에 의해 트리거된 빌드의 상태는 항상 소스 공급자에게 보고됩니다.

    X X X

    코드 변경이 이 리포지토리로 푸시될 때마다 CodeBuild에서 소스 코드를 빌드하게 하려면 코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드를 선택합니다. Webhook는 Bitbucket, GitHub 또는 GitHub Enterprise 리포지토리에서만 허용됩니다.

    X X X

    코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드를 선택한 경우 이벤트 유형에서 빌드를 트리거할 이벤트를 선택합니다. 정규식을 사용하여 필터를 생성합니다. 필터를 지정하지 않으면 모든 업데이트, 풀 요청 생성 및 모든 푸시 이벤트가 빌드를 트리거합니다. 자세한 내용은 GitHub Webhook 이벤트 필터링 Bitbucket Webhook 이벤트 필터링 단원을 참조하십시오.

    X X X

    GitHub에서 코드 변경 때문에 빌드가 트리거될 때마다 보안 키를 교체하고 싶다면 Webhook을 선택하고 Webhook 보안 키 교체를 선택합니다.

    X X

    GitHub Enterprise 프로젝트 리포지토리에 연결되어 있는 동안 SSL 경고를 무시하려면 Insecure SSL(보안되지 않은 SSL)을 선택합니다.

    X

    CodeBuild가 이 프로젝트에 사용하는 서비스 역할을 수정할 수 있는지 여부를 변경하려면 AWS CodeBuild to modify this service role so it can be used with this build project(AWS CodeBuild가 이 서비스 역할을 이 빌드 프로젝트에 사용하도록 수정할 수 있게 허용)를 선택하거나 선택 취소합니다. 선택 취소할 경우 CodeBuild 권한이 연결된 서비스 역할을 사용해야 합니다. 자세한 내용은 IAM 그룹 또는 IAM 사용자에게 CodeBuild 액세스 권한 추가CodeBuild 서비스 역할 만들기 단원을 참조하십시오.

  6. 빌드 환경에 대한 정보를 변경하려면 환경에서 편집을 선택합니다. 빌드 환경 유형에 맞게 적절히 변경합니다(예: 환경 이미지, 운영 체제, 런타임, 런타임 버전, 사용자 지정 이미지, 다른 위치, Amazon ECR 리포지토리, Amazon ECR 이미지 등).

  7. 이 빌드 프로젝트를 사용하여 도커 이미지를 빌드하려고 계획하지만 지정된 빌드 환경이 Docker 지원을 통해 CodeBuild에서 제공되지 않는 경우 권한이 있음을 선택합니다. 그렇지 않으면 Docker 데몬과 상호 작용을 시도하는 모든 연결된 빌드가 실패합니다. 또한 빌드가 필요할 때마다 상호 작용할 수 있도록 Docker 데몬을 시작해야 합니다. 다음 빌드 명령을 실행하여 빌드 사양의 install 단계에서 Docker 데몬을 초기화하면 됩니다. (지정된 빌드 환경 이미지가 Docker 지원을 통해 CodeBuild에서 제공하지 않은 경우 다음 빌드 명령을 실행하지 마십시오.)

    - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay& - timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"
  8. CodeBuild 서비스 역할에 대한 정보를 변경하려면 서비스 역할에서 New service role(새 서비스 역할), Existing service role(기존 서비스 역할) 또는 역할 이름의 값을 변경합니다.

    참고

    콘솔을 사용하여 빌드 프로젝트를 생성하거나 업데이트하는 경우, 이와 동시에 CodeBuild 서비스 역할을 만들 수 있습니다. 기본적으로 역할은 해당 빌드 프로젝트에서만 작동합니다. 콘솔을 사용하여 이 서비스 역할을 다른 빌드 프로젝트와 연결하는 경우 다른 빌드 프로젝트에서 작동하도록 역할이 업데이트됩니다. 하나의 서비스 역할은 최대 10개의 빌드 프로젝트에서 작동할 수 있습니다.

  9. 빌드 제한 시간에 대한 정보를 변경하려면 Additional configuration(추가 구성)제한 시간에서 시간의 값을 변경합니다. [hours] 및 [minutes]가 비어 있는 경우 기본값은 60분입니다.

  10. VPC에 대한 정보를 변경하려면 Additional configuration(추가 구성)에서 VPC, 서브넷보안 그룹의 값을 변경합니다.

  11. 빌드를 실행하는 데 사용될 메모리 및 vCPU 양을 변경하려면 Additional configuration(추가 구성)에서 컴퓨팅의 값을 변경합니다.

  12. 빌드에서 사용할 환경 변수에 대한 정보를 변경하려면 Additional configuration(추가 구성)환경 변수에서 이름, 유형의 값을 변경합니다. 환경 변수 추가를 사용하여 환경 변수를 추가합니다. 더 이상 사용하지 않을 환경 변수 옆에 있는 제거를 선택합니다.

    다른 사용자는 CodeBuild 콘솔 및 AWS CLI를 사용하여 환경 변수를 확인할 수 있습니다. 환경 변수의 가시성에 대한 문제가 없다면 [Name] 및 [Value] 필드를 설정한 다음 [Type]을 [Plaintext]로 설정합니다.

    AWS 액세스 키 ID, AWS 보안 액세스 키 또는 암호와 같은 중요한 값을 가진 환경 변수는 Amazon EC2 Systems Manager 파라미터 스토어 또는 AWS Secrets Manager에 파라미터로 저장하는 것이 좋습니다.

    Amazon EC2 Systems Manager 파라미터 스토어를 사용하는 경우 유형에서 파라미터를 선택합니다. 이름에 CodeBuild가 참조할 식별자를 입력합니다. 에 Amazon EC2 Systems Manager 파라미터 스토어에 저장되는 파라미터의 이름을 입력합니다. 예를 들어 /CodeBuild/dockerLoginPassword라는 이름의 파라미터를 사용하여 유형에서 파라미터를 선택합니다. 이름LOGIN_PASSWORD를 입력합니다. [Value]에 /CodeBuild/dockerLoginPassword를 입력합니다.

    중요

    Amazon EC2 Systems Manager 파라미터 스토어를 사용하는 경우 /CodeBuild/로 시작되는 파라미터 이름(예: /CodeBuild/dockerLoginPassword)으로 파라미터를 저장하는 것이 좋습니다. CodeBuild 콘솔을 사용하여 Amazon EC2 Systems Manager에서 파라미터를 만들 수 있습니다. 파라미터 생성을 선택하고 대화 상자에 표시되는 지시에 따릅니다. 대화 상자의 KMS 키에 해당 계정의 AWS KMS 키에 대한 ARN을 지정할 수 있습니다. Amazon EC2 Systems Manager는 이 키를 사용하여 저장 시 파라미터의 값을 암호화하고 검색 시 암호를 해독합니다. CodeBuild 콘솔을 사용하여 파라미터를 만드는 경우 콘솔은 /CodeBuild/라는 이름의 파라미터가 저장될 때 이를 시작합니다. 자세한 정보는 Amazon EC2 Systems Manager 사용 설명서Systems Manager 파라미터 스토어Systems Manager 파라미터 스토어 콘솔 연습을 참조하십시오.

    빌드 프로젝트가 Amazon EC2 Systems Manager 파라미터 스토어에 저장된 파라미터를 참조하는 경우 해당 빌드 프로젝트의 서비스 역할은 ssm:GetParameters 작업을 허용해야 합니다. 앞에서 New service role(새 서비스 역할)을 선택한 경우에는 CodeBuild는 빌드 프로젝트의 기본 서비스 역할에 이 작업을 포함합니다. Existing service role(기존 서비스 역할)을 선택한 경우에는 이 작업을 서비스 역할에 별도로 포함해야 합니다.

    빌드 프로젝트가 /CodeBuild/로 시작되지 않는 파라미터 이름으로 Amazon EC2 Systems Manager 파라미터 스토어에 저장된 파라미터를 참조하는 경우 New service role(새 서비스 역할)을 선택하면 /CodeBuild/로 시작하지 않는 파라미터 이름에 액세스할 수 있도록 해당 서비스 역할을 업데이트해야 합니다. 이는 서비스 역할이 /CodeBuild/로 시작하는 파라미터 이름에만 액세스할 수 있기 때문입니다.

    New service role(새 서비스 역할)을 선택하면 Amazon EC2 Systems Manager 파라미터 스토어에 있는 /CodeBuild/ 네임스페이스의 모든 파라미터를 해독할 권한이 서비스 역할에 포함됩니다.

    사용자가 설정한 환경 변수는 기존 환경 변수를 대체합니다. 예를 들어 Docker 이미지에 값이 my_valueMY_VAR이라는 환경 변수가 이미 포함되어 있는데, 사용자가 MY_VAR 환경 변수의 값을 other_value로 설정하면, my_valueother_value로 바뀝니다. 마찬가지로, Docker 이미지에 값이 /usr/local/sbin:/usr/local/binPATH라는 환경 변수가 이미 포함되어 있는데, 사용자가 PATH 환경 변수의 값을 $PATH:/usr/share/ant/bin으로 설정하면, /usr/local/sbin:/usr/local/bin$PATH:/usr/share/ant/bin 리터럴 값으로 바뀝니다.

    CODEBUILD_로 시작하는 이름으로 환경 변수를 설정하지 마십시오. 이 접두사는 내부 전용으로 예약되어 있습니다.

    여러 위치에서 동일한 이름의 환경 변수가 정의되는 경우, 다음과 같이 값이 결정됩니다.

    • 시작 빌드 작업 호출의 값이 가장 높은 우선 순위를 갖습니다.

    • 빌드 프로젝트 정의의 값이 다음 우선 순위를 갖습니다.

    • 빌드 사양 선언의 값이 가장 낮은 우선 순위를 갖습니다.

    Secrets Manager를 사용하는 경우 유형에서 Secrets Manager를 선택합니다. 이름에 CodeBuild가 참조할 식별자를 입력합니다. secret-id:json-key:version-stage:version-id 패턴을 사용하여 reference-key를 입력합니다. 자세한 정보는 Buildspec 파일의 Secrets Manager 참조 키 단원을 참조하십시오.

    중요

    Secrets Manager를 사용하는 경우 이름이 /CodeBuild/로 시작하는 암호를 저장하는 것이 좋습니다(예: /CodeBuild/dockerLoginPassword). 자세한 내용은 AWS Secrets Manager 사용 설명서AWS Secrets Manager란 무엇입니까?를 참조하십시오.

    빌드 프로젝트가 Secrets Manager에 저장된 암호를 참조하는 경우 해당 빌드 프로젝트의 서비스 역할은 secretsmanager:GetSecretValue 작업을 허용해야 합니다. 앞에서 New service role(새 서비스 역할)을 선택한 경우에는 CodeBuild는 빌드 프로젝트의 기본 서비스 역할에 이 작업을 포함합니다. Existing service role(기존 서비스 역할)을 선택한 경우에는 이 작업을 서비스 역할에 별도로 포함해야 합니다.

    빌드 프로젝트가 /CodeBuild/로 시작되지 않는 암호 이름으로 Secrets Manager에 저장된 암호를 참조하는 경우 New service role(새 서비스 역할)을 선택하면 /CodeBuild/로 시작하지 않는 암호 이름에 액세스할 수 있도록 해당 서비스 역할을 업데이트해야 합니다. 이는 서비스 역할이 /CodeBuild/로 시작하는 암호 이름에만 액세스할 수 있기 때문입니다.

    New service role(새 서비스 역할)을 선택하면 Secrets Manager에 있는 /CodeBuild/ 네임스페이스의 모든 암호를 해독할 권한이 생성된 서비스 역할에 포함됩니다.

  13. 이 빌드 프로젝트의 태그에 대한 정보를 변경하려면 Additional configuration(추가 구성)태그에서 이름의 값을 변경합니다. [Add row]를 사용하여 태그를 추가합니다. 최대 50개의 태그를 추가할 수 있습니다. 더 이상 사용하지 않으려는 태그 옆의 삭제(X) 아이콘을 선택합니다.

  14. Update environment(환경 업데이트)를 선택합니다.

  15. 프로젝트의 빌드 사양을 변경하려면 Buildspec에서 편집을 선택합니다.

    • 이전에 소스 코드에 buildspec.yml 파일이 포함되지 않았지만 지금은 포함된 경우 Use a buildspec file(빌드 사양 파일 사용)을 선택합니다.

    • 이전에 소스 코드에 buildspec.yml 파일이 포함되었지만 지금은 포함되지 않은 경우 빌드 명령 삽입을 선택하고 빌드 명령에 명령을 입력합니다.

  16. Update buildspec(buildspec 업데이트)을 선택합니다.

  17. 빌드 출력 결과물 위치 및 이름에 대한 정보를 변경하려면 결과물에서 편집을 선택한 후 유형, 이름, 경로, 네임스페이스 유형 또는 버킷 이름의 값을 변경합니다.

  18. AWS KMS CMK(고객 관리형 키)에 대한 정보를 변경하려면 추가 구성에서 암호화 키의 값을 변경합니다.

    중요

    암호화 키를 비워 놓으면 CodeBuild는 AWS 계정의 Amazon S3에 대한 AWS 관리형 CMK를 대신 사용합니다.

  19. 캐시에 대한 정보를 변경하려면 추가 구성을 확장합니다. 캐시 유형에서 다음 중 하나를 수행합니다.

    • 이전에 캐시를 선택했지만 지금은 캐시를 사용하지 않으려면 No cache(캐시 없음)를 선택합니다.

    • 이전에 No cache(캐시 없음)를 선택했지만 지금은 캐시를 사용하려면 Amazon S3을 선택하고 다음을 수행합니다.

      • 캐시 버킷에서 캐시가 저장된 Amazon S3 버킷의 이름을 선택합니다.

      • (선택 사항) Cache path prefix(캐시 경로 접두사)에 Amazon S3 경로 접두사를 입력합니다. Cache path prefix(캐시 경로 접두사) 값은 디렉터리 이름과 비슷합니다. 이 값을 버킷의 동일한 디렉터리에 캐시를 저장하는 데 사용합니다.

        중요

        경로 접두사 끝에 슬래시(/)를 추가하지 마십시오.

    캐시를 사용하면 빌드 환경의 재사용 가능한 특정 부분이 캐시에 저장되고 빌드 전반에서 사용되기 때문에 상당한 빌드 시간을 절약할 수 있습니다. 빌드 사양 파일에 캐시를 지정하는 것에 대한 자세한 정보는 빌드 사양 구문 단원을 참조하십시오.

  20. 로그 설정을 변경하려면 로그에서 CloudWatch 로그 및 S3 logs(S3 로그)를 선택하거나 선택 취소합니다.

    CloudWatch 로그를 활성화한 경우 다음을 수행합니다.

    • 그룹 이름에 Amazon CloudWatch Logs 그룹의 이름을 입력합니다.

    • 스트림 이름에 Amazon CloudWatch Logs 스트림 이름을 입력합니다.

    S3 로그를 활성화한 경우 다음을 수행합니다.

    • 버킷에서 로그에 대한 S3 버킷 이름을 선택합니다.

    • 경로 접두사에 로그의 접두사를 입력합니다.

    • S3 로그를 암호화하지 않으려면 Remove S3 log encryption(S3 로그 암호화 제거)을 선택합니다.

  21. 빌드 출력 결과물이 저장되는 방식에 대한 정보를 변경하려면 Additional configuration(추가 구성)에서 결과물 패키지의 값을 변경합니다.

  22. 빌드 결과물의 암호화 여부를 변경하려면 결과물 암호화 비활성화를 선택합니다.

  23. Update artifacts(결과물 업데이트)를 선택합니다.

빌드 프로젝트 설정 변경(AWS CLI)

AWS CLI와 AWS CodeBuild를 함께 사용하는 방법에 대한 내용은 명령줄 레퍼런스 단원을 참조하십시오.

  1. 다음과 같이 update-project 명령을 실행합니다.

    aws codebuild update-project --generate-cli-skeleton

    JSON 형식 데이터가 출력에 표시됩니다. AWS CLI가 설치된 로컬 컴퓨터 또는 인스턴스의 위치에 있는 파일(예: update-project.json)에 데이터를 복사합니다. 그런 다음 복사된 데이터를 빌드 프로젝트 만들기(AWS CLI) 섹션에 설명된 대로 수정하고 결과를 저장합니다.

    참고

    JSON 형식 데이터에서 빌드 프로젝트의 이름을 제공해야 합니다. 다른 모든 설정은 선택 사항입니다. 빌드 프로젝트 이름은 변경할 수 없지만, 다른 모든 설정은 변경할 수 있습니다.

  2. 방금 저장한 파일이 들어 있는 디렉터리로 전환한 다음, update-project 명령을 다시 실행합니다.

    aws codebuild update-project --cli-input-json file://update-project.json
  3. 이 명령이 제대로 실행되면 빌드 프로젝트 만들기(AWS CLI) 섹션에 설명된 것과 유사한 데이터가 출력에 표시됩니다.

빌드 프로젝트 설정 변경(AWS SDK)

AWS CodeBuild를 AWS SDK와 함께 사용하는 방법에 대한 자세한 정보는 AWS SDK 및 도구 참조 단원을 참조하십시오.