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

CodePipeline을 CodeBuild와 함께 사용하여 코드 테스트 및 빌드 실행

AWS CodePipeline을 사용하여 릴리스 프로세스를 자동화하면 CodeBuild를 사용하여 코드를 테스트하고 빌드를 실행할 수 있습니다.

다음 표에 이를 수행하는 데 사용할 수 있는 작업 및 방법이 있습니다. AWS SDK를 사용하여 이러한 작업을 수행하는 방법은 이 단원에서 다루지 않습니다.

작업 사용할 수 있는 방법 이 주제에 설명된 방법
CodeBuild를 사용하여 빌드를 자동화하는 CodePipeline을 사용하여 CD(Continuous Delivery) 생성
  • CodePipeline 콘솔

  • AWS CLI

  • AWS SDK

  • CodePipeline 콘솔 사용하기

  • AWS CLI 사용

  • 이 주제의 정보를 응용하여 AWS SDK를 사용할 수 있습니다. 자세한 정보는 Amazon Web Services 도구SDK 섹션에 있는 프로그래밍 언어별 파이프라인 작업 생성 설명서를 참조하거나 AWS CodePipeline API ReferenceCreatePipeline을 참조하십시오.

CodeBuild를 사용한 테스트 및 빌드 자동화를 CodePipeline의 기존 파이프라인에 추가
  • CodePipeline 콘솔

  • AWS CLI

  • AWS SDK

사전 조건

  1. 빌드 계획 섹션의 질문에 답하십시오.

  2. AWS 루트 계정이나 관리자 IAM 사용자 대신 IAM 사용자를 사용하여 CodePipeline에 액세스하고 있는 경우 AWSCodePipelineFullAccess라는 관리형 정책을 사용자(또는 사용자가 속한 IAM 그룹)에 연결합니다. (AWS 루트 계정을 사용하는 것은 권장되지 않습니다.) 이렇게 하면 사용자가 CodePipeline에서 파이프라인을 생성할 수 있습니다. 자세한 정보는 IAM 사용 설명서관리형 정책 연결을 참조하십시오.

    참고

    정책을 사용자에게 연결하는 IAM 엔터티(또는 사용자가 속한 IAM 그룹)에는 정책을 연결하는 IAM 권한이 있어야 합니다. 자세한 정보는 IAM 사용 설명서IAM 사용자, 그룹 및 자격 증명을 관리할 수 있는 권한 위임 단원을 참조하십시오.

  3. AWS 계정에 CodePipeline 서비스 역할이 아직 없으면 하나 생성합니다. 이 서비스 역할은 CodePipeline가 사용자를 대신하여 AWS CodeBuild 같은 다른 AWS 서비스와 상호 작용하도록 해줍니다. 예를 들어 AWS CLI를 사용하여 CodePipeline 서비스 역할을 만들려면 IAM create-role 명령을 실행합니다.

    대상 Linux, macOS, or Unix:

    aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Principal":{"Service":"codepipeline.amazonaws.com"},"Action":"sts:AssumeRole"}}'

    Windows의 경우:

    aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"codepipeline.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}}"

    참고

    이 CodePipeline 서비스 역할을 생성하는 IAM 엔터티에는 서비스 역할을 생성하는 IAM의 권한이 있어야 합니다.

  4. CodePipeline 사용 설명서기본 CodePipeline 서비스 역할 정책 검토에 설명된 대로 CodePipeline 서비스 역할을 생성하거나 기존 서비스 역할을 지정한 후에는 해당 서비스 역할에 기본 CodePipeline 서비스 역할 정책을 추가해야 합니다(아직 역할 정책의 일부가 아닌 경우).

    참고

    이 CodePipeline 서비스 역할 정책을 추가하는 IAM 엔터티에는 서비스 역할 정책을 서비스 역할에 추가하는 IAM의 권한이 있어야 합니다.

  5. 소스 코드를 생성하여 CodeCommit, Amazon S3 또는 GitHub 같은 CodeBuild 및 CodePipeline가 지원하는 리포지토리 유형에 업로드합니다(CodePipeline은 현재 Bitbucket을 지원하지 않음). 소스 코드에 빌드 사양 파일을 포함해야 하지만, 이 주제의 후반부에서 빌드 프로젝트를 정의할 때 빌드 사양 파일을 선언할 수 있습니다. 자세한 정보는 빌드 사양 참조 단원을 참조하십시오.

    중요

    파이프라인을 사용하여 빌드 소스 코드를 배포하려는 경우, 사용할 배포 시스템과 빌드 출력 결과물이 호환 가능해야 합니다.

CodeBuild를 사용하는 파이프라인 생성(CodePipeline 콘솔)

다음 절차를 사용하면 CodeBuild를 사용하여 소스 코드를 빌드 및 배포하는 파이프라인을 생성할 수 있습니다.

소스 코드를 테스트만 하는 파이프라인을 생성하려면

CodePipeline에서 파이프라인 생성 마법사를 사용하여 CodeBuild를 사용하는 파이프라인을 만들려면

  1. https://console.aws.amazon.com/codesuite/codepipeline/home에서 CodePipeline 콘솔을 엽니다.

    다음을 사용하여 AWS Management Console에 이미 로그인되어 있어야 합니다.

    • 사용자의 AWS 루트 계정. 이는 권장하지 않습니다. 자세한 정보는 IAM 사용 설명서계정 루트 사용자 단원을 참조하십시오.

    • AWS 계정의 관리자 IAM 사용자. 자세한 정보는 IAM 사용 설명서첫 번째 IAM 관리자 및 그룹 만들기 단원을 참조하십시오.

    • 최소한 다음 작업 세트를 사용할 수 있는 권한이 있는 AWS 계정의 IAM 사용자.

      codepipeline:* iam:ListRoles iam:PassRole s3:CreateBucket s3:GetBucketPolicy s3:GetObject s3:ListAllMyBuckets s3:ListBucket s3:PutBucketPolicy codecommit:ListBranches codecommit:ListRepositories codedeploy:GetApplication codedeploy:GetDeploymentGroup codedeploy:ListApplications codedeploy:ListDeploymentGroups elasticbeanstalk:DescribeApplications elasticbeanstalk:DescribeEnvironments lambda:GetFunctionConfiguration lambda:ListFunctions opsworks:DescribeStacks opsworks:DescribeApps opsworks:DescribeLayers
  2. AWS 리전 선택기에서 빌드 프로젝트 AWS 리소스가 위치하는 리전을 선택합니다. CodeBuild를 지원하는 리전이어야 합니다. 자세한 정보는 CodeBuild의 "리전 및 엔드포인트" 주제에 있는 Amazon Web Services General Reference 단원을 참조하십시오.

  3. 파이프라인을 생성합니다. CodePipeline 정보 페이지가 나타나면 파이프라인 생성을 선택합니다. 파이프라인 페이지가 나타나면 파이프라인 생성을 선택합니다.

  4. 1단계: 파이프라인 설정 선택 페이지의 파이프라인 이름에 파이프라인 이름을 입력합니다(예: CodeBuildDemoPipeline). 다른 이름을 선택하는 경우 이 절차 전체에서 해당 이름을 사용해야 합니다.

  5. 역할 이름에서, 다음 중 하나를 수행합니다.

    New service role(새 서비스 역할)을 선택하고 역할 이름에 새 서비스 역할의 이름을 입력합니다.

    Existing service role(기존 서비스 역할)을 선택한 다음 이 주제의 필수 조건의 일부로 생성하거나 지정한 CodePipeline 서비스 역할을 선택합니다.

  6. Artifact store(아티팩트 스토어)에서 다음 중 하나를 수행합니다.

    • 파이프라인에 대해 선택한 리전의 파이프라인에 대해 기본값으로 지정된 Amazon S3 아티팩트 버킷과 같은 기본 아티팩트 스토어를 사용하려면 Default location(기본 위치)를 선택합니다.

    • 파이프라인과 동일한 리전에 Amazon S3 아티팩트 버킷과 같이 이미 생성한 기존 아티팩트 스토어가 있는 경우 Custom location(사용자 지정 위치)을 선택합니다.

    참고

    이는 파이프라인의 소스 코드에 대한 소스 버킷이 아닙니다. 이 파이프라인은 아티팩트 스토어입니다. Amazon S3 버킷과 같은 개별 아티팩트 스토어는 파이프라인과 동일한 리전에 있는 각 파이프라인에 필요합니다.

  7. [Next]를 선택합니다.

  8. 2단계: 소스 단계 추가 페이지의 소스 공급자에서 다음 중 하나를 수행합니다.

    • 소스 코드가 Amazon S3 버킷에 저장되어 있는 경우 Amazon S3를 선택합니다. 버킷에서 소스 코드를 포함하는 Amazon S3 버킷을 선택합니다. S3 object key(S3 객체 키)에 소스 코드를 포함하는 파일의 이름을 입력합니다(예: file-name.zip). [Next]를 선택합니다.

    • 소스 코드가 AWS CodeCommit 리포지토리에 저장되어 있는 경우 CodeCommit를 선택합니다. [Repository name]에서 소스 코드가 포함된 리포지토리의 이름을 선택합니다. [Branch name]에서, 빌드하려는 소스 코드의 버전을 나타내는 분기 이름을 선택합니다. [Next]를 선택합니다.

    • 소스 코드가 GitHub 리포지토리에 저장되어 있는 경우 [GitHub]를 선택합니다. [Connect to GitHub]를 선택했다면, GitHub로 인증하는 지침을 따르십시오. [Repository]에서 소스 코드가 포함된 리포지토리의 이름을 선택합니다. [Branch]에서, 빌드하려는 소스 코드의 버전을 나타내는 분기 이름을 선택합니다.

    [Next]를 선택합니다.

  9. 3단계: 빌드 단계 추가 페이지의 빌드 공급자에서 CodeBuild를 선택합니다.

  10. 사용할 빌드 프로젝트가 이미 있는 경우 프로젝트 이름에서 빌드 프로젝트의 이름을 선택하고 이 절차의 22단계로 건너뜁니다. 그렇지 않으면 다음 단계를 사용하여 CodeBuild에서 프로젝트를 생성합니다.

    참고

    기존 빌드 프로젝트를 선택한 경우 빌드 출력 결과물 설정이 이미 정의되어 있어야 합니다(CodePipeline가 해당 설정을 재정의할 경우에도). 자세한 정보는 빌드 프로젝트 만들기(콘솔) 또는 빌드 프로젝트 설정 변경(콘솔) 단원을 참조하십시오.

    중요

    AWS CodeBuild 프로젝트에서 Webhook을 활성화하고 CodePipeline에서 프로젝트를 빌드 단계로 사용하는 경우, 각 커밋에 대해 두 개의 동일한 빌드가 생성됩니다. Webhook과 CodePipeline을 통해 각각 한 개씩의 빌드가 트리거됩니다. 결제는 빌드 단위로 진행되기 때문에 두 빌드에 대해 요금이 청구됩니다. 따라서 CodePipeline을 사용하는 경우 CodeBuild에서 Webhook을 비활성화하는 것이 좋습니다. CodeBuild 콘솔에서 Webhook 상자를 해제합니다. 자세한 정보는 빌드 프로젝트 설정 변경(콘솔) 단원을 참조하십시오.

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

  12. CodeBuild 정보 페이지가 나타나면 빌드 프로젝트 생성을 선택합니다. 그렇지 않을 경우, 탐색 창에서 빌드를 확장한 후 빌드 프로젝트를 선택하고 빌드 프로젝트 생성을 선택합니다.

  13. 프로젝트 이름에 이 빌드 프로젝트의 이름을 입력합니다. 각 AWS 계정에서 빌드 프로젝트 이름은 고유해야 합니다.

  14. (선택 사항) 설명을 입력합니다.

  15. 환경에서 다음 중 하나를 수행합니다.

    • 가 관리하는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 CodeBuild에서 관리형 이미지를 선택합니다. 운영 체제, 런타임런타임 버전 드롭다운 목록에서 선택합니다. 자세한 정보는 CodeBuild가 제공하는 Docker 이미지 단원을 참조하십시오.

    • AWS 계정의 Amazon ECR 리포지토리에 있는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 사용자 정의 이미지를 선택합니다. 환경 유형에서 환경 유형을 선택한 후 Amazon ECR을 선택합니다. Amazon ECR 리포지토리Amazon ECR 이미지 드롭다운 목록을 사용하여 Amazon ECR 리포지토리 및 해당 리포지토리의 도커 이미지를 선택합니다.

    • Docker Hub에서 공개적으로 사용할 수 있는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 다른 위치를 선택합니다. 다른 위치에 도커 이미지 ID를 docker repository/docker-image-name 형식으로 입력합니다.

    이 빌드 프로젝트를 사용하여 도커 이미지를 빌드하려는 경우 및 선택한 빌드 환경 이미지가 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"
  16. 서비스 역할에서 다음 중 하나를 수행합니다.

    • CodeBuild 서비스 역할이 없는 경우 New service role(새 서비스 역할)을 선택합니다. 역할 이름에서 기본 이름을 그대로 사용하거나 원하는 이름을 입력합니다.

    • CodeBuild 서비스 역할이 있는 경우 Existing service role(기존 서비스 역할)을 선택합니다. 역할 이름에서 서비스 역할을 선택합니다.

    참고

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

  17. Additional configuration(추가 구성)을 확장합니다.

    60분(기본값) 이외의 빌드 제한 시간을 지정하려면 시간 상자에 5~480분(8시간) 사이의 제한 시간을 설정합니다.

    [Compute]에서 사용 가능한 옵션 중 하나를 선택합니다.

    [Environment variables]에서 [Name] 및 [Value]를 사용하여 빌드 환경에서 사용할 선택적 환경 변수를 지정합니다. 환경 변수를 추가하려면 환경 변수 추가를 선택합니다.

    중요

    중요한 값(특히 AWS 액세스 키 ID 및 보안 액세스 키)을 환경 변수에 저장하지 마십시오. 환경 변수는 CodeBuild 콘솔 및 AWS CLI를 사용하여 일반 텍스트로 표시할 수 있습니다.

    중요한 값을 저장하고 검색하려면 빌드 명령에 AWS CLI를 사용하여 Amazon EC2 Systems Manager 파라미터 스토어와 상호 작용하는 것이 좋습니다. AWS CLI는 CodeBuild가 제공하는 모든 빌드 환경에 이미 설치되어 구성되어 있습니다. 자세한 정보는 Amazon EC2 Systems Manager 사용 설명서Systems Manager 파라미터 스토어Systems Manager 파라미터 스토어 CLI 연습을 참조하십시오.

  18. Buildspec에서 다음 중 하나를 수행합니다.

    • 소스 코드에 빌드 사양 파일이 있는 경우 빌드 사양 파일 사용 을 선택합니다.

    • 소스 코드에 빌드 사양 파일이 포함되어 있지 않은 경우 [Insert build commands]를 선택합니다. 빌드 명령에 빌드 환경의 빌드 단계 중에 실행하려는 명령을 입력합니다. 명령이 여러 개인 경우 각 명령을 && Linux 기반 빌드 환경의 경우 또는 ; Windows 기반 빌드 환경의 경우로 구분합니다. 출력 파일에 CodePipeline로 보내려는 빌드 환경의 빌드 출력 파일에 대한 경로를 입력합니다. 파일이 여러 개인 경우 각 파일 경로를 쉼표로 구분합니다.

  19. 빌드 프로젝트 생성을 선택합니다.

  20. CodePipeline 콘솔로 돌아갑니다.

  21. 4단계: 배포 추가 단계 페이지에서 다음 중 하나를 수행합니다.

    • 빌드 출력 결과물을 배포하지 않으려면 건너뛰기를 선택한 다음 메시지가 표시되면 이 선택을 확인합니다.

    • 빌드 출력 결과물을 배포하려는 경우 Deploy provider(공급자 배포)에서 배포 공급자를 선택한 다음, 해당 메시지가 표시되면 설정을 지정합니다.

    [Next]를 선택합니다.

  22. 검토 페이지에서 선택을 검토한 다음 파이프라인 생성을 선택합니다.

  23. 파이프라인이 성공적으로 실행되면 빌드 출력 결과물을 가져올 수 있습니다. CodePipeline 콘솔에 파이프라인이 표시되면, 빌드 작업에서 도구 설명을 선택합니다. [Output artifact]의 값을 적어 놓습니다(예: MyAppBuild).

    참고

    CodeBuild 콘솔의 빌드 세부 정보 페이지에 있는 빌드 결과물 링크를 선택하여 빌드 출력 결과물을 가져올 수도 있습니다. 이 페이지로 이동하려면 이 절차의 나머지 단계를 건너뛰고 빌드 세부 정보 보기(콘솔) 단원을 참조하십시오.

  24. Open the Amazon S3 console at https://console.aws.amazon.com/s3/.

  25. 버킷 목록에서 파이프라인이 사용하는 버킷을 엽니다. 버킷 이름이 codepipeline-region-ID-random-number 형식으로 표시되어야 합니다. AWS CLI를 사용하여 CodePipeline get-pipeline 명령을 실행하면 버킷 이름을 볼 수 있습니다. 여기서 my-pipeline-name은 파이프라인의 표시 이름입니다.

    aws codepipeline get-pipeline --name my-pipeline-name

    출력을 보면 pipeline 객체에 artifactStore 객체가 포함되어 있습니다. 이 객체에는 버킷 이름과 함께 location 값이 들어 있습니다.

  26. 파이프라인의 이름과 일치하는 폴더를 열고(파이프라인의 이름 길이에 따라 폴더 이름이 잘릴 수 있음) 이 절차의 24단계에서 적어 둔 출력 아티팩트 값과 일치하는 폴더를 엽니다.

  27. 파일 내용을 추출합니다. 해당 폴더에 파일이 여러 개 있으면 가장 최근의 [Last Modified] 타임스탬프가 있는 파일의 내용을 추출합니다. (사용자 시스템의 ZIP 유틸리티로 작업할 수 있도록 파일에 .zip 확장명을 부여해야 할 수 있습니다.) 파일의 추출 내용에 빌드 출력 결과물이 있습니다.

  28. CodePipeline에 빌드 출력 결과물을 배포하도록 지시했다면 배포 공급자의 지침을 따라 배포 대상에 빌드 출력 결과물을 가져옵니다.

CodeBuild를 사용하는 파이프라인 생성(AWS CLI)

다음 절차를 사용하면 CodeBuild를 사용하여 소스 코드를 빌드하는 파이프라인을 생성할 수 있습니다.

AWS CLI를 사용하여, 빌드된 소스 코드를 배포하거나 소스 코드를 테스트만 하는 파이프라인을 생성하려면, AWS CodePipeline User Guide파이프라인 편집(AWS CLI)CodePipeline 파이프라인 구조 참조 단원에 있는 지침을 응용하면 됩니다.

  1. CodeBuild에서 빌드 프로젝트를 생성하거나 지정합니다. 자세한 정보는 빌드 프로젝트 생성 단원을 참조하십시오.

    중요

    빌드 프로젝트에서 빌드 출력 결과물 설정을 정의해야 합니다(CodePipeline가 해당 설정을 재정의할 경우에도). 자세한 정보는 빌드 프로젝트 만들기(AWS CLI)에서 artifacts 설명을 참조하십시오.

  2. 이 주제에서 설명한 IAM 엔터티 중 하나에 해당하는 AWS 액세스 키 및 AWS 보안 액세스 키를 사용하여 AWS CLI가 구성되어 있어야 합니다. 자세한 정보는 AWS Command Line Interface 사용 설명서AWS Command Line Interface 설정을 참조하십시오.

  3. 파이프라인의 구조를 나타내는 JSON 형식 파일을 생성합니다. 파일 이름을 create-pipeline.json이나 이와 비슷하게 지정합니다. 예를 들어, 다음 JSON 형식 구조는 CodeBuild를 사용하는 빌드 작업 및 Amazon S3 입력 버킷을 참조하는 소스 작업으로 파이프라인을 생성합니다.

    { "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "my-input-bucket-name", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "default" } ], "configuration": { "ProjectName": "my-build-project-name" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "AWS-CodePipeline-internal-bucket-name" }, "name": "my-pipeline-name", "version": 1 } }

    다음 JSON 형식 데이터에서:

    • roleArn의 값은 사전 요구사항의 일부로 생성했거나 지정한 CodePipeline 서비스 역할의 ARN과 일치해야 합니다.

    • configurationS3BucketS3ObjectKey 값은 소스 코드가 Amazon S3 버킷에 저장되어 있다고 가정합니다. 다른 소스 코드 리포지토리 유형의 설정에 대해서는 CodePipeline 사용 설명서CodePipeline 파이프라인 구조 참조를 참조하십시오.

    • ProjectName 값은 이 절차의 앞부분에서 생성한 CodeBuild 빌드 프로젝트의 이름입니다.

    • location의 값은 이 파이프라인에서 사용하는 Amazon S3 버킷의 이름입니다. 자세한 정보는 CodePipeline 사용 설명서CodePipeline의 아티팩트 스토어로 사용할 Amazon S3 버킷에 대한 정책 생성 단원을 참조하십시오.

    • name의 값은 이 파이프라인의 이름입니다. 모든 파이프라인 이름은 계정에서 고유해야 합니다.

    이 데이터는 소스 작업 및 빌드 작업만 설명하지만 테스팅, 빌드 출력 결과물 배포, AWS Lambda 함수 호출 등과 관련된 작업을 추가할 수도 있습니다. 자세한 정보는 CodePipeline 사용 설명서CodePipeline 파이프라인 구조 참조를 참조하십시오.

  4. JSON 파일이 들어 있는 폴더로 전환한 다음, 파일 이름을 지정하여 CodePipeline create-pipeline 명령을 실행합니다.

    aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json

    참고

    CodeBuild를 지원하는 AWS 리전에서 파이프라인을 생성해야 합니다. 자세한 정보는 CodeBuild의 "리전 및 엔드포인트" 주제에 있는 Amazon Web Services General Reference 단원을 참조하십시오.

    JSON 형식 데이터가 출력에 표시되며, CodePipeline가 파이프라인을 생성합니다.

  5. 파이프라인 상태에 대한 자세한 내용을 보려면 파이프라인의 이름을 지정하여 CodePipeline get-pipeline-state 명령을 실행하십시오.

    aws codepipeline get-pipeline-state --name my-pipeline-name

    출력에서 빌드가 성공했음을 알리는 정보를 찾아봅니다. 줄임표(...)는 간결하게 나타내기 위해 생략한 데이터를 나타내는 데 사용되었습니다.

    { ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }

    이 명령을 너무 일찍 실행하면, 빌드 작업에 대한 정보가 하나도 표시되지 않을 수 있습니다. 파이프라인에서 빌드 작업 실행을 마칠 때까지 이 명령을 여러 번 실행해야 할 수 있습니다.

  6. 빌드가 성공하면, 다음 지침을 따라 빌드 출력 결과물을 가져옵니다. https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

    참고

    CodeBuild 콘솔의 관련 빌드 세부 정보 페이지에 있는 빌드 결과물 링크를 선택하여 빌드 출력 결과물을 가져올 수도 있습니다. 이 페이지로 이동하려면 이 절차의 나머지 단계를 건너뛰고 빌드 세부 정보 보기(콘솔) 단원을 참조하십시오.

  7. 버킷 목록에서 파이프라인이 사용하는 버킷을 엽니다. 버킷 이름이 codepipeline-region-ID-random-number 형식으로 표시되어야 합니다. 버킷 이름은 create-pipeline.json 파일에서 찾아보거나 CodePipeline get-pipeline 명령을 실행하여 확인할 수 있습니다.

    aws codepipeline get-pipeline --name my-pipeline-name

    출력을 보면 pipeline 객체에 artifactStore 객체가 포함되어 있습니다. 이 객체에는 버킷 이름과 함께 location 값이 들어 있습니다.

  8. 파이프라인 이름과 일치하는 폴더를 엽니다(예: my-pipeline-name).

  9. 해당 폴더에서 default라는 폴더를 엽니다.

  10. 파일 내용을 추출합니다. 해당 폴더에 파일이 여러 개 있으면 가장 최근의 [Last Modified] 타임스탬프가 있는 파일의 내용을 추출합니다. (사용자 시스템의 ZIP 유틸리티로 작업할 수 있도록 파일에 .zip 확장명을 부여해야 할 수 있습니다.) 파일의 추출 내용에 빌드 출력 결과물이 있습니다.

CodeBuild 빌드 작업을 파이프라인에 추가(CodePipeline 콘솔)

  1. https://console.aws.amazon.com/codesuite/codepipeline/home에서 CodePipeline 콘솔을 엽니다.

    다음을 사용하여 AWS Management Console에 이미 로그인되어 있어야 합니다.

    • 사용자의 AWS 루트 계정. 이는 권장하지 않습니다. 자세한 정보는 IAM 사용 설명서계정 루트 사용자 단원을 참조하십시오.

    • AWS 계정의 관리자 IAM 사용자. 자세한 정보는 IAM 사용 설명서첫 번째 IAM 관리자 및 그룹 만들기 단원을 참조하십시오.

    • 최소한 다음 작업 세트를 수행할 수 있는 권한이 있는 AWS 계정의 IAM 사용자.

      codepipeline:* iam:ListRoles iam:PassRole s3:CreateBucket s3:GetBucketPolicy s3:GetObject s3:ListAllMyBuckets s3:ListBucket s3:PutBucketPolicy codecommit:ListBranches codecommit:ListRepositories codedeploy:GetApplication codedeploy:GetDeploymentGroup codedeploy:ListApplications codedeploy:ListDeploymentGroups elasticbeanstalk:DescribeApplications elasticbeanstalk:DescribeEnvironments lambda:GetFunctionConfiguration lambda:ListFunctions opsworks:DescribeStacks opsworks:DescribeApps opsworks:DescribeLayers
  2. AWS 리전 선택기에서 파이프라인이 위치하는 리전을 선택합니다. CodeBuild를 지원하는 리전이어야 합니다. 자세한 정보는 CodeBuild의 "리전 및 엔드포인트" 주제에 있는 Amazon Web Services General Reference 단원을 참조하십시오.

  3. 파이프라인 페이지에서 파이프라인의 이름을 선택합니다.

  4. 파이프라인 세부 정보 페이지의 소스 작업에서 도구 설명을 선택합니다. 출력 아티팩트의 값을 적어 놓습니다(예: MyApp).

    참고

    이 절차에서는 소스베타 단계 사이의 빌드 단계 내에 빌드 작업을 추가하는 방법을 보여줍니다. 빌드 작업을 다른 위치에 추가하려면 빌드 작업을 추가하려는 위치 바로 전 작업에 대한 도구 설명을 선택하고 출력 아티팩트 값을 적어 놓습니다.

  5. [Edit]를 선택합니다.

  6. 소스 단계와 베타 단계 사이에서 Add stage(단계 추가)를 선택합니다.

    참고

    이 절차에서는 파이프라인에 빌드 단계를 추가하는 방법을 보여줍니다. 빌드 작업을 기존 단계에 추가하려면 단계에서 Edit stage(단계 편집)를 선택한 다음 이 절차의 8단계로 이동합니다.

    이 절차에서는 소스베타 단계 사이에서 빌드 단계를 추가하는 방법을 보여줍니다. 다른 위치에 빌드 단계를 추가하려면 원하는 위치에서 Add stage(단계 추가)를 선택합니다.

  7. Stage name(단계 이름)에 빌드 단계 이름을 입력합니다(예: Build). 다른 이름을 선택하는 경우 이 절차 전체에서 해당 이름을 사용합니다.

  8. 선택한 단계 내부에서 작업 추가를 선택합니다.

    참고

    이 절차에서는 빌드 단계 내에 빌드 작업을 추가하는 방법을 보여줍니다. 다른 위치에 빌드 작업을 추가하려면 원하는 위치에서 작업 추가를 선택합니다. 먼저, 빌드 작업을 추가하려는 기존 단계에서 Edit stage(단계 편집)을 선택해야 할 수 있습니다.

  9. 작업 편집에서 작업 이름에 작업 이름을 입력합니다(예: CodeBuild). 다른 이름을 선택하는 경우 이 절차 전체에서 해당 이름을 사용합니다.

  10. Action provider(작업 공급자)에서 CodeBuild를 선택합니다.

  11. CodeBuild에 빌드 프로젝트가 이미 있는 경우 프로젝트 이름에서 빌드 프로젝트의 이름을 선택한 후 이 절차의 22단계로 건너뜁니다.

    참고

    기존 빌드 프로젝트를 선택한 경우 빌드 출력 결과물 설정이 이미 정의되어 있어야 합니다(CodePipeline가 해당 설정을 재정의할 경우에도). 자세한 정보는 빌드 프로젝트 만들기(콘솔) 또는 빌드 프로젝트 설정 변경(콘솔)아티팩트 설명을 참조하십시오.

    중요

    CodeBuild 프로젝트에서 Webhook을 활성화하고 CodePipeline에서 프로젝트를 빌드 단계로 사용하는 경우, 각 커밋에 대해 두 개의 동일한 빌드가 생성됩니다. Webhook과 CodePipeline을 통해 각각 한 개씩의 빌드가 트리거됩니다. 결제는 빌드 단위로 진행되기 때문에 두 빌드에 대해 요금이 청구됩니다. 따라서 CodePipeline을 사용하는 경우 CodeBuild에서 Webhook을 비활성화하는 것이 좋습니다. CodeBuild 콘솔에서 Webhook 상자를 해제합니다. 자세한 정보는 빌드 프로젝트 설정 변경(콘솔) 단원을 참조하십시오.

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

  13. CodeBuild 정보 페이지가 나타나면 빌드 프로젝트 생성을 선택합니다. 그렇지 않을 경우, 탐색 창에서 빌드를 확장한 후 빌드 프로젝트를 선택하고 빌드 프로젝트 생성을 선택합니다.

  14. 프로젝트 이름에 이 빌드 프로젝트의 이름을 입력합니다. 각 AWS 계정에서 빌드 프로젝트 이름은 고유해야 합니다.

  15. (선택 사항) 설명을 입력합니다.

  16. 환경에서 다음 중 하나를 수행합니다.

    • 가 관리하는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 CodeBuild에서 관리형 이미지를 선택합니다. 운영 체제, 런타임런타임 버전 드롭다운 목록에서 선택합니다. 자세한 정보는 CodeBuild가 제공하는 Docker 이미지 단원을 참조하십시오.

    • AWS 계정의 Amazon ECR 리포지토리에 있는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 사용자 정의 이미지를 선택합니다. 환경 유형에서 환경 유형을 선택한 후 Amazon ECR을 선택합니다. Amazon ECR 리포지토리Amazon ECR 이미지 드롭다운 목록을 사용하여 Amazon ECR 리포지토리 및 해당 리포지토리의 도커 이미지를 선택합니다.

    • Docker Hub에서 공개적으로 사용할 수 있는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 다른 위치를 선택합니다. 다른 위치에 도커 이미지 ID를 docker repository/docker-image-name 형식으로 입력합니다.

    이 빌드 프로젝트를 사용하여 도커 이미지를 빌드하려는 경우 및 선택한 빌드 환경 이미지가 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"
  17. 서비스 역할에서 다음 중 하나를 수행합니다.

    • CodeBuild 서비스 역할이 없는 경우 New service role(새 서비스 역할)을 선택합니다. 역할 이름에서 기본 이름을 그대로 사용하거나 원하는 이름을 입력합니다.

    • CodeBuild 서비스 역할이 있는 경우 Existing service role(기존 서비스 역할)을 선택합니다. 역할 이름에서 서비스 역할을 선택합니다.

    참고

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

  18. Additional configuration(추가 구성)을 확장합니다.

    60분(기본값) 이외의 빌드 제한 시간을 지정하려면 시간 상자에 5~480분(8시간) 사이의 제한 시간을 설정합니다.

    [Compute]에서 사용 가능한 옵션 중 하나를 선택합니다.

    [Environment variables]에서 [Name] 및 [Value]를 사용하여 빌드 환경에서 사용할 선택적 환경 변수를 지정합니다. 환경 변수를 추가하려면 환경 변수 추가를 선택합니다.

    중요

    중요한 값(특히 AWS 액세스 키 ID 및 보안 액세스 키)을 환경 변수에 저장하지 마십시오. 환경 변수는 CodeBuild 콘솔 및 AWS CLI를 사용하여 일반 텍스트로 표시할 수 있습니다.

    중요한 값을 저장하고 검색하려면 빌드 명령에 AWS CLI를 사용하여 Amazon EC2 Systems Manager 파라미터 스토어와 상호 작용하는 것이 좋습니다. AWS CLI는 CodeBuild가 제공하는 모든 빌드 환경에 이미 설치되어 구성되어 있습니다. 자세한 정보는 Amazon EC2 Systems Manager 사용 설명서Systems Manager 파라미터 스토어Systems Manager 파라미터 스토어 CLI 연습을 참조하십시오.

  19. Buildspec에서 다음 중 하나를 수행합니다.

    • 소스 코드에 빌드 사양 파일이 있는 경우 빌드 사양 파일 사용 을 선택합니다.

    • 소스 코드에 빌드 사양 파일이 포함되어 있지 않은 경우 [Insert build commands]를 선택합니다. 빌드 명령에 빌드 환경의 빌드 단계 중에 실행하려는 명령을 입력합니다. 명령이 여러 개인 경우 각 명령을 && Linux 기반 빌드 환경의 경우 또는 ; Windows 기반 빌드 환경의 경우로 구분합니다. 출력 파일에 CodePipeline로 보내려는 빌드 환경의 빌드 출력 파일에 대한 경로를 입력합니다. 파일이 여러 개인 경우 각 파일 경로를 쉼표로 구분합니다.

  20. 빌드 프로젝트 생성을 선택합니다.

  21. CodePipeline 콘솔로 돌아갑니다.

  22. 입력 아티팩트에서 이 절차의 4단계에서 적어 둔 출력 아티팩트를 선택합니다.

  23. 출력 아티팩트에 출력 아티팩트의 이름을 입력합니다(예: MyAppBuild).

  24. [Add action]을 선택합니다.

  25. 저장을 선택한 후 저장을 선택하여 파이프라인 변경 사항을 저장합니다.

  26. [Release change]를 선택합니다.

  27. 파이프라인이 성공적으로 실행되면 빌드 출력 결과물을 가져올 수 있습니다. CodePipeline 콘솔에 파이프라인이 표시되면, 빌드 작업에서 도구 설명을 선택합니다. [Output artifact]의 값을 적어 놓습니다(예: MyAppBuild).

    참고

    CodeBuild 콘솔의 빌드 세부 정보 페이지에 있는 빌드 결과물 링크를 선택하여 빌드 출력 결과물을 가져올 수도 있습니다. 이 페이지로 이동하려면 빌드 세부 정보 보기(콘솔) 단원을 참조하고 이 절차의 31단계로 이동하십시오.

  28. Open the Amazon S3 console at https://console.aws.amazon.com/s3/.

  29. 버킷 목록에서 파이프라인이 사용하는 버킷을 엽니다. 버킷 이름이 codepipeline-region-ID-random-number 형식으로 표시되어야 합니다. AWS CLI를 사용하여 CodePipeline get-pipeline 명령을 실행하면 버킷 이름을 확인할 수 있습니다.

    aws codepipeline get-pipeline --name my-pipeline-name

    출력을 보면 pipeline 객체에 artifactStore 객체가 포함되어 있습니다. 이 객체에는 버킷 이름과 함께 location 값이 들어 있습니다.

  30. 파이프라인의 이름과 일치하는 폴더를 열고(파이프라인의 이름 길이에 따라 폴더 이름이 잘릴 수 있음) 이 절차의 28단계에서 적어 둔 출력 아티팩트 값과 일치하는 폴더를 엽니다.

  31. 파일 내용을 추출합니다. 해당 폴더에 파일이 여러 개 있으면 가장 최근의 [Last Modified] 타임스탬프가 있는 파일의 내용을 추출합니다. (사용자 시스템의 ZIP 유틸리티로 작업할 수 있도록 파일에 .zip 확장명을 부여해야 할 수 있습니다.) 파일의 추출 내용에 빌드 출력 결과물이 있습니다.

  32. CodePipeline에 빌드 출력 결과물을 배포하도록 지시했다면 배포 공급자의 지침을 따라 배포 대상에 빌드 출력 결과물을 가져옵니다.

CodeBuild 테스트 작업을 파이프라인에 추가(CodePipeline 콘솔)

  1. https://console.aws.amazon.com/codesuite/codepipeline/home에서 CodePipeline 콘솔을 엽니다.

    다음을 사용하여 AWS Management Console에 이미 로그인되어 있어야 합니다.

    • 사용자의 AWS 루트 계정. 이는 권장하지 않습니다. 자세한 정보는 IAM 사용 설명서계정 루트 사용자 단원을 참조하십시오.

    • AWS 계정의 관리자 IAM 사용자. 자세한 정보는 IAM 사용 설명서첫 번째 IAM 관리자 및 그룹 만들기 단원을 참조하십시오.

    • 최소한 다음 작업 세트를 수행할 수 있는 권한이 있는 AWS 계정의 IAM 사용자.

      codepipeline:* iam:ListRoles iam:PassRole s3:CreateBucket s3:GetBucketPolicy s3:GetObject s3:ListAllMyBuckets s3:ListBucket s3:PutBucketPolicy codecommit:ListBranches codecommit:ListRepositories codedeploy:GetApplication codedeploy:GetDeploymentGroup codedeploy:ListApplications codedeploy:ListDeploymentGroups elasticbeanstalk:DescribeApplications elasticbeanstalk:DescribeEnvironments lambda:GetFunctionConfiguration lambda:ListFunctions opsworks:DescribeStacks opsworks:DescribeApps opsworks:DescribeLayers
  2. AWS 리전 선택기에서 파이프라인이 위치하는 리전을 선택합니다. CodeBuild를 지원하는 리전이어야 합니다. 자세한 정보는 CodeBuild의 "리전 및 엔드포인트" 주제에 있는 Amazon Web Services General Reference 단원을 참조하십시오.

  3. 파이프라인 페이지에서 파이프라인의 이름을 선택합니다.

  4. 파이프라인 세부 정보 페이지의 소스 작업에서 도구 설명을 선택합니다. [Output artifact]의 값을 적어 놓습니다(예: MyApp).

    참고

    이 절차에서는 소스베타 단계 사이의 테스트 단계 내에 테스트 작업을 추가하는 방법을 보여줍니다. 테스트 작업을 다른 위치에 추가하려면 빌드 작업을 추가하려는 위치 바로 전 작업에 마우스 포인터를 놓고 [Output artifact] 값을 적어 놓습니다.

  5. [Edit]를 선택합니다.

  6. 소스 단계 바로 다음에 있는 Add stage(단계 추가)를 선택합니다.

    참고

    이 절차에서는 파이프라인에 테스트 단계를 추가하는 방법을 보여줍니다. 테스트 작업을 기존 단계에 추가하려면 단계에서 Edit stage(단계 편집)를 선택한 다음 이 절차의 8단계로 이동합니다.

    또한 이 절차에서는 소스 단계 바로 다음에 테스트 단계를 추가하는 방법을 보여줍니다. 다른 위치에 테스트 단계를 추가하려면 원하는 위치에서 Add stage(단계 추가)를 선택합니다.

  7. 단계 이름에 테스트 단계 이름을 입력합니다(예: Test). 다른 이름을 선택하는 경우 이 절차 전체에서 해당 이름을 사용합니다.

  8. 선택한 단계에서 작업 추가를 선택합니다.

    참고

    이 절차에서는 테스트 단계 내에 테스트 작업을 추가하는 방법을 보여줍니다. 다른 위치에 테스트 작업을 추가하려면 원하는 위치에서 작업 추가를 선택합니다. 먼저, 테스트 작업을 추가하려는 기존 단계에서 편집을 선택해야 할 수 있습니다.

  9. 작업 편집에서 작업 이름에 작업 이름을 입력합니다(예: Test). 다른 이름을 선택하는 경우 이 절차 전체에서 해당 이름을 사용합니다.

  10. Action provider(작업 공급자)테스트에서 CodeBuild를 선택합니다.

  11. CodeBuild에 빌드 프로젝트가 이미 있는 경우 프로젝트 이름에서 빌드 프로젝트의 이름을 선택한 후 이 절차의 22단계로 건너뜁니다.

    중요

    CodeBuild 프로젝트에서 Webhook을 활성화하고 CodePipeline에서 프로젝트를 빌드 단계로 사용하는 경우, 각 커밋에 대해 두 개의 동일한 빌드가 생성됩니다. Webhook과 CodePipeline을 통해 각각 한 개씩의 빌드가 트리거됩니다. 결제는 빌드 단위로 진행되기 때문에 두 빌드에 대해 요금이 청구됩니다. 따라서 CodePipeline을 사용하는 경우 CodeBuild에서 Webhook을 비활성화하는 것이 좋습니다. CodeBuild 콘솔에서 Webhook 상자를 해제합니다. 자세한 정보는 빌드 프로젝트 설정 변경(콘솔) 단원을 참조하십시오.

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

  13. CodeBuild 정보 페이지가 나타나면 빌드 프로젝트 생성을 선택합니다. 그렇지 않을 경우, 탐색 창에서 빌드를 확장한 후 빌드 프로젝트를 선택하고 빌드 프로젝트 생성을 선택합니다.

  14. 프로젝트 이름에 이 빌드 프로젝트의 이름을 입력합니다. 각 AWS 계정에서 빌드 프로젝트 이름은 고유해야 합니다.

  15. (선택 사항) 설명을 입력합니다.

  16. 환경에서 다음 중 하나를 수행합니다.

    • 가 관리하는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 CodeBuild에서 관리형 이미지를 선택합니다. 운영 체제, 런타임런타임 버전 드롭다운 목록에서 선택합니다. 자세한 정보는 CodeBuild가 제공하는 Docker 이미지 단원을 참조하십시오.

    • AWS 계정의 Amazon ECR 리포지토리에 있는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 사용자 정의 이미지를 선택합니다. 환경 유형에서 환경 유형을 선택한 후 Amazon ECR을 선택합니다. Amazon ECR 리포지토리Amazon ECR 이미지 드롭다운 목록을 사용하여 Amazon ECR 리포지토리 및 해당 리포지토리의 도커 이미지를 선택합니다.

    • Docker Hub에서 공개적으로 사용할 수 있는 도커 이미지를 기반으로 하는 빌드 환경을 사용하려면 다른 위치를 선택합니다. 다른 위치에 도커 이미지 ID를 docker repository/docker-image-name 형식으로 입력합니다.

    이 빌드 프로젝트를 사용하여 도커 이미지를 빌드하려는 경우 및 선택한 빌드 환경 이미지가 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"
  17. 서비스 역할에서 다음 중 하나를 수행합니다.

    • CodeBuild 서비스 역할이 없는 경우 New service role(새 서비스 역할)을 선택합니다. 역할 이름에서 기본 이름을 그대로 사용하거나 원하는 이름을 입력합니다.

    • CodeBuild 서비스 역할이 있는 경우 Existing service role(기존 서비스 역할)을 선택합니다. 역할 이름에서 서비스 역할을 선택합니다.

    참고

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

  18. Additional configuration(추가 구성)을 확장합니다.

    60분(기본값) 이외의 빌드 제한 시간을 지정하려면 시간 상자에 5~480분(8시간) 사이의 제한 시간을 설정합니다.

    [Compute]에서 사용 가능한 옵션 중 하나를 선택합니다.

    [Environment variables]에서 [Name] 및 [Value]를 사용하여 빌드 환경에서 사용할 선택적 환경 변수를 지정합니다. 환경 변수를 추가하려면 환경 변수 추가를 선택합니다.

    중요

    중요한 값(특히 AWS 액세스 키 ID 및 보안 액세스 키)을 환경 변수에 저장하지 마십시오. 환경 변수는 CodeBuild 콘솔 및 AWS CLI를 사용하여 일반 텍스트로 표시할 수 있습니다.

    중요한 값을 저장하고 검색하려면 빌드 명령에 AWS CLI를 사용하여 Amazon EC2 Systems Manager 파라미터 스토어와 상호 작용하는 것이 좋습니다. AWS CLI는 CodeBuild가 제공하는 모든 빌드 환경에 이미 설치되어 구성되어 있습니다. 자세한 정보는 Amazon EC2 Systems Manager 사용 설명서Systems Manager 파라미터 스토어Systems Manager 파라미터 스토어 CLI 연습을 참조하십시오.

  19. Buildspec에서 다음 중 하나를 수행합니다.

    • 소스 코드에 빌드 사양 파일이 있는 경우 빌드 사양 파일 사용 을 선택합니다.

    • 소스 코드에 빌드 사양 파일이 포함되어 있지 않은 경우 [Insert build commands]를 선택합니다. 빌드 명령에 빌드 환경의 빌드 단계 중에 실행하려는 명령을 입력합니다. 명령이 여러 개인 경우 각 명령을 && Linux 기반 빌드 환경의 경우 또는 ; Windows 기반 빌드 환경의 경우로 구분합니다. 출력 파일에 CodePipeline로 보내려는 빌드 환경의 빌드 출력 파일에 대한 경로를 입력합니다. 파일이 여러 개인 경우 각 파일 경로를 쉼표로 구분합니다.

  20. 빌드 프로젝트 생성을 선택합니다.

  21. CodePipeline 콘솔로 돌아갑니다.

  22. 입력 아티팩트에 이 절차의 4단계에서 적어 둔 출력 아티팩트 값을 입력합니다.

  23. (선택 사항) 테스트 작업에서 출력 결과물을 생성하도록 하려고 하며 이에 맞게 빌드 사양을 설정했다면, 출력 아티팩트에 출력 결과물에 지정하려는 값을 입력합니다.

  24. Save를 선택합니다.

  25. [Release change]를 선택합니다.

  26. 파이프라인이 성공적으로 실행되면 테스트 결과를 확인할 수 있습니다. 파이프라인의 테스트 단계에서 CodeBuild 하이퍼링크를 선택하여 CodeBuild 콘솔에서 관련된 빌드 프로젝트 페이지를 엽니다.

  27. 빌드 프로젝트 페이지의 빌드 기록에서 빌드 실행 하이퍼링크를 선택합니다.

  28. 빌드 실행 페이지의 빌드 로그에서 전체 로그 보기 하이퍼링크를 선택하여 Amazon CloudWatch 콘솔에서 빌드 로그를 엽니다.

  29. 빌드 로그를 스크롤하여 테스트 결과를 확인합니다.