

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

# 수동으로 AWS CodeBuild 빌드 실행
<a name="run-build"></a>

 AWS CodeBuild 콘솔 AWS CLI, 또는 AWS SDKs를 사용하여 CodeBuild에서 빌드를 실행할 수 있습니다.

**Topics**
+ [AWS CodeBuild 에이전트를 사용하여 로컬에서 빌드 실행](use-codebuild-agent.md)
+ [빌드 실행(콘솔)](run-build-console.md)
+ [빌드 실행(AWS CLI)](run-build-cli.md)
+ [배치 빌드 실행(AWS CLI)](run-batch-build-cli.md)
+ [빌드 실행 자동 시작(AWS CLI)](run-build-cli-auto-start.md)
+ [빌드 실행 자동 중지(AWS CLI)](run-build-cli-auto-stop.md)
+ [빌드 실행(AWS SDKs)](run-build-sdks.md)

# AWS CodeBuild 에이전트를 사용하여 로컬에서 빌드 실행
<a name="use-codebuild-agent"></a>

 AWS CodeBuild 에이전트를 사용하여 로컬 시스템에서 CodeBuild 빌드를 실행할 수 있습니다. x86\$164 및 ARM 플랫폼에 사용할 수 있는 에이전트가 있습니다.

새 버전의 에이전트가 게시되는 시기를 알 수 있도록 알림을 구독할 수도 있습니다.

## 사전 조건
<a name="use-codebuild-agent.prerequisites"></a>

시작하려면 다음을 수행해야 합니다.
+ 로컬 시스템에 Git를 설치합니다.
+ 로컬 컴퓨터에 [Docker](https://www.docker.com/)를 설치하고 설정합니다.

## 빌드 이미지 설정
<a name="use-codebuild-agent.setup-image"></a>

에이전트를 처음 실행할 때 또는 이미지가 변경된 경우에만 빌드 이미지를 설정해야 합니다.

**빌드 이미지를 설정하려면**

1. 큐레이션된 Amazon Linux 2 이미지를 사용하려면 다음 명령을 사용하여 [https://gallery.ecr.aws/codebuild/amazonlinux-x86\$164-standard](https://gallery.ecr.aws/codebuild/amazonlinux-x86_64-standard) CodeBuild 퍼블릭 Amazon ECR 리포지토리에서 가져올 수 있습니다.

   ```
   $ docker pull public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0
   ```

   다른 Linux 이미지를 사용하려면 다음 단계를 수행합니다.

   1. CodeBuild 이미지 리포지토리를 복제합니다.

      ```
      $ git clone https://github.com/aws/aws-codebuild-docker-images.git
      ```

   1. image 디렉터리로 변경합니다. 이 예에서는 `aws/codebuild/standard:5.0` 이미지를 사용합니다.

      ```
      $ cd aws-codebuild-docker-images/ubuntu/standard/5.0
      ```

   1. 이미지를 빌드합니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.

      ```
      $ docker build -t aws/codebuild/standard:5.0 .
      ```

1. CodeBuild 에이전트를 다운로드합니다.

   x86\$164 버전의 에이전트를 다운로드하려면 다음 명령을 실행합니다.

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:latest
   ```

   ARM 버전의 에이전트를 다운로드하려면 다음 명령을 실행합니다.

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:aarch64
   ```

1. <a name="codebuild-agent-sha"></a>CodeBuild 에이전트는 [https://gallery.ecr.aws/codebuild/local-builds](https://gallery.ecr.aws/codebuild/local-builds)에서 사용할 수 있습니다.

   에이전트의 x86\$164 버전에 대한 보안 해시 알고리즘(SHA) 서명은 다음과 같습니다.

   ```
   sha256:ccb19bdd7af94e4dc761e4c58c267e9455c28ec68d938086b4dc1cf8fe6b0940
   ```

   에이전트의 ARM 버전에 대한 SHA 서명은 다음과 같습니다.

   ```
   sha256:7d7b5d35d2ac4e062ae7ba8c662ffed15229a52d09bd0d664a7816c439679192
   ```

   SHA를 사용하여 에이전트 버전을 확인할 수 있습니다. 에이전트의 SHA 서명을 보려면 다음 명령을 실행하고 `RepoDigests`에서 SHA를 찾습니다.

   ```
   $ docker inspect public.ecr.aws/codebuild/local-builds:latest
   ```

## CodeBuild 에이전트 실행
<a name="use-codebuild-agent.run-agent"></a>

**CodeBuild 에이전트를 실행하려면**

1. 빌드 프로젝트 소스가 들어 있는 디렉터리로 변경합니다.

1. [codebuild\$1build.sh](https://github.com/aws/aws-codebuild-docker-images/blob/master/local_builds/codebuild_build.sh) 스크립트를 다운로드합니다.

   ```
   $ curl -O  https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
   $ chmod +x codebuild_build.sh
   ```

1. `codebuild_build.sh` 스크립트를 실행하고 컨테이너 이미지와 출력 디렉터리를 지정합니다.

   x86\$164 빌드를 실행하려면 다음 명령을 실행합니다.

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory>
   ```

   ARM 빌드를 실행하려면 다음 명령을 실행합니다.

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory> -l public.ecr.aws/codebuild/local-builds:aarch64
   ```

   *<container-image>*를 컨테이너 이미지의 이름(예: `aws/codebuild/standard:5.0` 또는 `public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0`)으로 바꿉니다.

   스크립트는 빌드 이미지를 시작하고 현재 디렉터리의 프로젝트에서 빌드를 실행합니다. 빌드 프로젝트의 위치를 지정하려면 스크립트 명령에 `-s <build project directory>` 옵션을 추가합니다.

## 새 CodeBuild 에이전트 버전에 대한 알림 받기
<a name="receive-codebuild-agent-notifications"></a>

Amazon SNS 알림을 구독하면 AWS CodeBuild 에이전트의 새 버전이 릴리스될 때 알림을 받을 수 있습니다.

**CodeBuild 에이전트 알림을 구독하려면**

1. [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)에서 Amazon SNS 콘솔을 엽니다.

1. 탐색 모음에서 아직 선택하지 않은 경우 AWS 리전을 **미국 동부(버지니아 북부)**로 변경합니다. 구독하려는 Amazon SNS 알림이이 AWS 리전에 생성되므로이 리전을 선택해야 합니다.

1. 탐색 창에서 **Subscriptions**를 선택합니다.

1. **구독 생성**을 선택합니다.

1. **구독 생성**에서 다음을 수행합니다.

   1. **주제 ARN**에 다음 Amazon 리소스 이름(ARN)을 사용합니다.

      ```
      arn:aws:sns:us-east-1:850632864840:AWS-CodeBuild-Local-Agent-Updates
      ```

   1. **프로토콜**의 경우 **이메일** 또는 **SMS**를 선택합니다.

   1. **엔드포인트**의 경우 알림을 수신할 위치(이메일 또는 SMS)를 선택합니다. 지역 번호를 포함한 이메일 주소, 우편 주소 또는 전화번호를 입력합니다.

   1. **구독 생성**을 선택합니다.

   1. 구독 사실을 확인하는 이메일을 받으려면 **이메일**을 선택합니다. 이메일의 지침에 따라 구독을 완료합니다.

      이런 알림을 더 이상 받지 않기를 원하는 경우, 다음 절차를 수행해서 구독을 해제하세요.

**CodeBuild 에이전트 알림을 구독 해제하려면**

1. [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)에서 Amazon SNS 콘솔을 엽니다.

1. 탐색 창에서 **구독**을 선택합니다.

1. 구독을 선택한 후 **작업**에서 **구독 삭제**를 선택합니다. 확인 메시지가 표시되면 [**삭제**]를 선택합니다.

# 빌드 실행(콘솔)
<a name="run-build-console"></a>

AWS CodePipeline을 사용하여 CodeBuild에서 빌드를 실행하려면 다음 단계를 건너뛰고 [CodePipeline에서 CodeBuild 사용](how-to-create-pipeline.md) 섹션의 지침을 따르세요.

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home)에서 AWS CodeBuild 콘솔을 엽니다.

1. 탐색 창에서 **프로젝트 빌드**를 선택합니다.

1. 빌드 프로젝트 목록에서 빌드 프로젝트를 선택합니다.

1. 기본 빌드 프로젝트 설정으로 빌드를 실행하거나 이 빌드의 빌드 설정만 재정의할 수 있습니다.

   1. 기본 빌드 프로젝트 설정으로 빌드를 실행하려면 **빌드 시작**을 선택합니다. 빌드가 즉시 시작됩니다.

   1. 기본 빌드 프로젝트 설정을 재정의하려면 **재정의로 빌드 시작**을 선택합니다. **빌드 시작** 페이지에서 다음을 재정의할 수 있습니다.
      + **빌드 구성**
      + **소스**:
      + **환경 변수 재정의**

      고급 재정의를 더 선택해야 하는 경우 **고급 빌드 재정의**를 선택합니다. 이 페이지에서 다음을 재정의할 수 있습니다.
      + **빌드 구성**
      + **소스**:
      + **환경**
      + **Buildspec**
      + **아티팩트**
      + **로그**:

      재정의를 선택했으면 **빌드 시작**을 선택합니다.

이 빌드에 대한 자세한 정보는 [빌드 세부 정보 보기(콘솔)](view-build-details.md#view-build-details-console) 단원을 참조하십시오.

# 빌드 실행(AWS CLI)
<a name="run-build-cli"></a>

**참고**  
CodePipeline을 사용하여 AWS CodeBuild에서 빌드를 실행하려면 다음 단계를 건너뛰고 [CodeBuild를 사용하는 파이프라인 생성(AWS CLI)](how-to-create-pipeline-cli.md) 섹션의 지침을 따르세요.  
AWS CLI와 CodeBuild를 함께 사용하는 방법에 대한 자세한 내용은 [명령줄 참조](cmd-ref.md) 섹션을 참조하세요.

1. 다음 중 한 방법으로 `start-build` 명령을 실행합니다.

   ```
   aws codebuild start-build --project-name <project-name>
   ```

   빌드 입력 결과물의 최신 버전과 빌드 프로젝트의 기존 설정을 사용하는 빌드를 실행하려면 이 방법을 사용합니다.

   ```
   aws codebuild start-build --generate-cli-skeleton
   ```

   이전 버전의 빌드 입력 결과물을 사용하여 빌드를 실행하려는 경우 또는 빌드 출력 결과물, 환경 변수, buildspec 또는 기본 빌드 제한 시간의 설정을 재정의하려는 경우 이 방법을 사용합니다.

1. **start-build** 명령을 `--project-name` 옵션과 함께 실행하는 경우 *<project-name>*을 빌드 프로젝트의 이름으로 바꾼 다음 이 절차의 6단계로 이동합니다. 빌드 프로젝트 목록을 가져오려면 [빌드 프로젝트 이름 보기](view-project-list.md) 단원을 참조하십시오.

1. **start-build** 명령을 `--idempotency-token` 옵션과 함께 실행하면 고유의 대소문자 구분 식별자인 토큰이 `start-build` 요청에 포함됩니다. 토큰은 요청 후 5분 동안 유효합니다. 동일한 토큰을 사용하여 `start-build` 요청을 반복하고 파라미터를 변경하면 CodeBuild는 파라미터 불일치 오류를 반환합니다.

1. **start-build** 명령을 `--generate-cli-skeleton` 옵션과 함께 실행하는 경우 JSON 형식 데이터가 출력에 표시됩니다. `start-build.json`가 설치된 로컬 컴퓨터 또는 인스턴스의 위치에 있는 파일(예: AWS CLI)에 데이터를 복사합니다. 복사된 데이터를 다음 형식으로 수정한 다음 결과를 저장합니다.

   ```
   {
     "projectName": "projectName",
     "sourceVersion": "sourceVersion",
     "artifactsOverride": {
       "type": "type",
       "location": "location",
       "path": "path",
       "namespaceType": "namespaceType",
       "name": "artifactsOverride-name",
       "packaging": "packaging"
     },
     "buildspecOverride": "buildspecOverride",
     "cacheOverride": {
       "location": "cacheOverride-location",
       "type": "cacheOverride-type"
     },
     "certificateOverride": "certificateOverride",
     "computeTypeOverride": "computeTypeOverride",
     "environmentTypeOverride": "environmentTypeOverride",
     "environmentVariablesOverride": {
       "name": "environmentVariablesOverride-name",
       "value": "environmentVariablesValue",
       "type": "environmentVariablesOverride-type"
     },
     "gitCloneDepthOverride": "gitCloneDepthOverride",
     "imageOverride": "imageOverride",
     "idempotencyToken": "idempotencyToken",
     "insecureSslOverride": "insecureSslOverride",
     "privilegedModeOverride": "privilegedModeOverride",
     "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride",
     "reportBuildStatusOverride": "reportBuildStatusOverride",
     "timeoutInMinutesOverride": "timeoutInMinutesOverride",
     "sourceAuthOverride": "sourceAuthOverride",
     "sourceLocationOverride": "sourceLocationOverride",
     "serviceRoleOverride": "serviceRoleOverride",
     "sourceTypeOverride": "sourceTypeOverride"
   }
   ```

   다음과 같이 자리 표시자를 바꿉니다.
   + *projectName*: 필수 문자열입니다. 이 빌드에 사용할 빌드 프로젝트의 이름입니다.
   + *sourceVersion*: 선택적 문자열입니다. 빌드할 소스 코드의 버전으로, 다음과 같습니다.
     + Amazon S3의 경우, 빌드하려는 입력 ZIP 파일의 버전에 해당하는 버전 ID입니다. *sourceVersion*을 지정하지 않은 경우 최신 버전이 사용됩니다.
     + CodeCommit의 경우, 빌드하려는 소스 코드의 버전에 해당하는 커밋 ID입니다. *sourceVersion*을 지정하지 않은 경우 기본 분기의 HEAD 커밋 ID가 사용됩니다. (*sourceVersion*의 태그 이름은 지정할 수 없지만, 태그의 커밋 ID는 지정할 수 있습니다.)
     + GitHub의 경우, 빌드하려는 소스 코드의 버전에 해당하는 커밋 ID, 풀 요청 ID, 분기 이름 또는 태그 이름입니다. 풀 요청 ID가 지정된 경우 `pr/pull-request-ID` 형식을 사용해야 합니다(예: `pr/25`). 분기 이름이 지정되어 있으면 분기의 HEAD 커밋 ID가 사용됩니다. *sourceVersion*을 지정하지 않은 경우 기본 분기의 HEAD 커밋 ID가 사용됩니다.
     + Bitbucket의 경우, 빌드하려는 소스 코드의 버전에 해당하는 커밋 ID, 분기 이름 또는 태그 이름입니다. 분기 이름이 지정되어 있으면 분기의 HEAD 커밋 ID가 사용됩니다. *sourceVersion*을 지정하지 않은 경우 기본 분기의 HEAD 커밋 ID가 사용됩니다.
   + 다음 자리 표시자는 `artifactsOverride`용입니다.
     + *type*: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 유형이 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 유형입니다.
     + *location*: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 위치가 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 위치입니다.
     + *path*: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 경로가 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 경로입니다.
     + *namespaceType*: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 유형이 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 유형입니다.
     + *name*: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 이름이 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 이름입니다.
     + *packaging*: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 패키징이 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 패키징입니다.
   + *buildspecOverride*: 선택 사항입니다. 빌드 프로젝트에서 정의된 buildspec 선언이 아닌 이 빌드에서만 사용되는 buildspec 선언입니다. 이 값이 설정된 경우 인라인 buildspec 정의, 내장된 `CODEBUILD_SRC_DIR` 환경 변수의 값에 상대적인 대체 buildspec 파일 또는 S3 버킷의 경로가 될 수 있습니다. S3 버킷은 빌드 프로젝트와 동일한 AWS 리전에 있어야 합니다. ARN을 사용하여 buildspec 파일을 지정합니다(예: `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`). 이 값을 제공하지 않거나 빈 문자열로 설정하는 경우 소스 코드에 루트 디렉터리의 `buildspec.yml` 파일이 포함되어 있어야 합니다. 자세한 내용은 [buildspec 파일 이름 및 스토리지 위치](build-spec-ref.md#build-spec-ref-name-storage) 섹션을 참조하세요.
   + 다음 자리 표시자는 `cacheOverride`용입니다.
     + *cacheOverride-location*: 선택 사항입니다. 빌드 프로젝트에서 지정된 `ProjectCache` 객체를 재정의하는 이 빌드에 대한 `ProjectCache` 객체의 위치입니다. `cacheOverride`는 선택 사항이며 `ProjectCache` 객체를 가져옵니다. `location`는 `ProjectCache` 객체에서 필수입니다.
     + *cacheOverride-type*: 선택 사항입니다. 이 빌드에 대한 `ProjectCache` 객체의 유형으로, 빌드 프로젝트에서 지정된 `ProjectCache` 객체를 재정의합니다. `cacheOverride`는 선택 사항이며 `ProjectCache` 객체를 가져옵니다. `type`는 `ProjectCache` 객체에서 필수입니다.
   + *certificateOverride*: 선택 사항입니다. 빌드 프로젝트에서 지정된 인증서를 재정의하는 이 빌드에 대한 인증서의 이름입니다.
   + *environmentTypeOverride*: 선택 사항입니다. 빌드 프로젝트에서 지정된 컨테이너를 재정의하는 이 빌드의 컨테이너 유형입니다. 현재 유효한 문자열은 `LINUX_CONTAINER`입니다.
   + 다음 자리 표시자는 `environmentVariablesOverride`용입니다.
     + *environmentVariablesOverride-name*: 선택 사항입니다. 이 빌드에서 값을 재정의하려는 빌드 프로젝트의 환경 변수 이름입니다.
     + *environmentVariablesOverride-type*: 선택 사항입니다. 이 빌드에서 값을 재정의하려는 빌드 프로젝트의 환경 변수 유형입니다.
     + *environmentVariablesValue*: 선택 사항입니다. 이 빌드에서 재정의하려는 빌드 프로젝트에 정의된 환경 변수 값입니다.
   + *gitCloneDepthOverride*: 선택 사항입니다. 이 빌드에서 값을 재정의하려는 빌드 프로젝트의 **Git clone depth** 값입니다. 소스 유형이 Amazon S3일 경우 이 값이 지원되지 않습니다.
   + *imageOverride*: 선택 사항입니다. 빌드 프로젝트에서 지정된 이미지를 재정의하는 이 빌드에 대한 이미지의 이름입니다.
   + *idempotencyToken*: 선택 사항입니다. 빌드 요청이 idempotent임을 지정하기 위해 토큰으로 제공되는 문자열입니다. 64자 이하의 모든 문자열을 선택할 수 있습니다. 토큰은 start-build 요청 후 5분 동안 유효합니다. 동일한 토큰을 사용하여 start-build 요청을 반복하고 파라미터를 변경하면 CodeBuild는 파라미터 불일치 오류를 반환합니다.
   + *insecureSslOverride*: 빌드 프로젝트에서 지정된 안전하지 않은 TLS 설정을 재정의할지 여부를 지정하는 선택적 부울입니다. 안전하지 않은 TLS 설정은 프로젝트 소스 코드에 연결하는 동안 TLS 경고를 무시할지 여부를 결정합니다. 이 설정은 빌드의 소스가 GitHub Enterprise Server인 경우에만 적용됩니다.
   + *privilegedModeOverride*: 선택적 부울입니다. true로 설정하면 빌드는 빌드 프로젝트에서 권한이 있는 모드를 재정의합니다.
   +  *queuedTimeoutInMinutesOverride*: 빌드 대기 시간이 얼마나 지나야 시간 초과로 처리되는지를 지정하는 정수(분)입니다(선택 사항). 최솟값은 5분이며, 최댓값은 480분(8시간)입니다.
   + *reportBuildStatusOverride*: 빌드의 시작 및 완료 상태를 소스 공급자에게 보낼지 여부를 지정하는 선택적 부울입니다. GitHub, GitHub Enterprise Server 또는 Bitbucket이 아닌 소스 공급자로 설정하는 경우, invalidInputException이 발생합니다.
   + *sourceAuthOverride*: 선택적 문자열입니다. 빌드 프로젝트에서 정의된 권한 부여를 재정의하는 이 빌드에 대한 권한 부여 유형입니다. 이 재정의는 빌드 프로젝트의 소스가 Bitbucket 또는 GitHub인 경우에만 적용됩니다.
   + *sourceLocationOverride*: 선택적 문자열입니다. 빌드 프로젝트에서 정의된 위치의 소스 위치를 이 빌드에 대해 재정의하는 위치입니다.
   + *serviceRoleOverride*: 선택 사항 문자열. 빌드 프로젝트에서 지정된 서비스 역할을 재정의하는 이 빌드에 대한 서비스 역할의 이름입니다.
   + *sourceTypeOverride*: 선택적 문자열입니다. 빌드 프로젝트에서 정의된 소스 입력을 재정의하는 이 빌드에 대한 소스 입력 유형입니다. 유효한 문자열은 `NO_SOURCE`, `CODECOMMIT`, `CODEPIPELINE`, `GITHUB`, `S3`, `BITBUCKET` 및 `GITHUB_ENTERPRISE`입니다.
   + *timeoutInMinutesOverride*: 선택적 숫자입니다. 빌드 프로젝트에서 정의된 빌드 제한 시간(분)이 아닌 이 빌드에서만 사용되는 빌드 제한 시간(분)입니다.

   AWS 액세스 키 ID, AWS 비밀 액세스 키 또는 암호와 같은 중요한 값을 가진 환경 변수는 Amazon EC2 Systems Manager Parameter Store 또는 에 파라미터로 저장하는 것이 좋습니다. CodeBuild는 Amazon EC2 Systems Manager Parameter Store에 저장된 파라미터 이름이 `/CodeBuild/`(예: `/CodeBuild/dockerLoginPassword`)로 시작하는 경우에만 해당 파라미터를 사용할 수 있습니다. CodeBuild 콘솔을 사용하여 Amazon EC2 Systems Manager에서 파라미터를 생성할 수 있습니다. **파라미터 생성**을 선택한 후 지침에 따릅니다. 경우에 따라 대화 상자의 **KMS 키**에 해당 계정의 AWS KMS 키에 대한 ARN을 지정할 수 있습니다. Amazon EC2 Systems Manager는 이 키를 사용하여 저장 시 파라미터의 값을 암호화하고 검색 시 암호를 해독합니다. CodeBuild 콘솔을 사용하여 파라미터를 생성하는 경우 콘솔은 `/CodeBuild/`로 파라미터를 시작합니다. 하지만 Amazon EC2 Systems Manager Parameter Store 콘솔을 사용하여 파라미터를 생성하는 경우, `/CodeBuild/`로 파라미터 이름을 시작해야 하고 **유형**을 **보안 문자열**로 설정해야 합니다. 자세한 내용은 Amazon EC2 Systems Manager 사용 설명서의 [AWS Systems Manager 파라미터 스토어](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) 및 [연습: 문자열 파라미터 생성 및 테스트(콘솔)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html)을 참조하세요.**

   빌드 프로젝트가 Amazon EC2 Systems Manager Parameter Store에 저장된 파라미터를 참조하는 경우 해당 빌드 프로젝트의 서비스 역할은 `ssm:GetParameters` 작업을 허용해야 합니다. 앞에서 **해당 계정에 새로운 서비스 역할 생성**을 선택한 경우 CodeBuild는 빌드 프로젝트의 기본 서비스 역할에 이 작업을 자동으로 포함합니다. 하지만 [**Choose an existing service role from your account**]를 선택한 경우 이 작업을 서비스 역할에 별도로 포함해야 합니다.

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

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

   여러 위치에서 동일한 이름의 환경 변수가 정의되는 경우, 다음과 같이 환경 변수 값이 결정됩니다.
   + 시작 빌드 작업 호출의 값이 가장 높은 우선 순위를 갖습니다.
   + 빌드 프로젝트 정의의 값이 다음 우선 순위를 갖습니다.
   + buildspec 파일 선언의 값이 가장 낮은 우선 순위를 갖습니다.

   이 자리 표시자의 유효한 값에 대한 자세한 정보는 [빌드 프로젝트 생성(AWS CLI)](create-project.md#create-project-cli) 단원을 참조하십시오. 빌드 프로젝트의 최신 설정 목록은 [빌드 프로젝트 세부 정보 보기](view-project-details.md) 단원을 참조하십시오.

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

   ```
   aws codebuild start-build --cli-input-json file://start-build.json
   ```

1. 이 명령이 제대로 실행되면 [빌드를 실행하려면](getting-started-overview.md#getting-started-run-build-cli) 절차에 설명된 것과 유사한 데이터가 출력에 표시됩니다.

이 빌드에 대한 자세한 정보를 보려면 출력에서 `id` 값을 적어 둔 다음 [빌드 세부 정보 보기(AWS CLI)](view-build-details.md#view-build-details-cli) 단원을 참조하십시오.

# 배치 빌드 실행(AWS CLI)
<a name="run-batch-build-cli"></a>

1. 다음 중 한 방법으로 `start-build-batch` 명령을 실행합니다.

   ```
   aws codebuild start-build-batch --project-name <project-name>
   ```

   빌드 입력 결과물의 최신 버전과 빌드 프로젝트의 기존 설정을 사용하는 빌드를 실행하려면 이 방법을 사용합니다.

   ```
   aws codebuild start-build-batch --generate-cli-skeleton > <json-file>
   ```

   이전 버전의 빌드 입력 결과물을 사용하여 빌드를 실행하려는 경우 또는 빌드 출력 결과물, 환경 변수, buildspec 또는 기본 빌드 제한 시간의 설정을 재정의하려는 경우 이 방법을 사용합니다.

1. **start-build-batch** 명령을 `--project-name` 옵션과 함께 실행하는 경우 *<project-name>*을 빌드 프로젝트의 이름으로 바꾼 다음 이 절차의 6단계로 이동합니다. 빌드 프로젝트 목록을 가져오려면 [빌드 프로젝트 이름 보기](view-project-list.md) 단원을 참조하십시오.

1. **start-build-batch** 명령을 `--idempotency-token` 옵션과 함께 실행하면 고유의 대소문자 구분 식별자 또는 토큰이 `start-build-batch` 요청에 포함됩니다. 토큰은 요청 후 5분 동안 유효합니다. 동일한 토큰을 사용하여 `start-build-batch` 요청을 반복하고 파라미터를 변경하면 CodeBuild는 파라미터 불일치 오류를 반환합니다.

1. **start-build-batch** 명령을 `--generate-cli-skeleton` 옵션과 함께 실행하는 경우 JSON 형식 데이터가 *<json-file>* 파일에 출력됩니다. 이 파일은 **start-build** 명령으로 생성된 스켈레톤과 비슷하지만 다음 객체가 추가되었습니다. 일반 객체에 대한 자세한 내용은 [빌드 실행(AWS CLI)](run-build-cli.md) 섹션을 참조하세요.

   이 파일을 수정하여 빌드 재정의를 추가하고 결과를 저장하세요.

   ```
     "buildBatchConfigOverride": {
       "combineArtifacts": combineArtifacts,
       "restrictions": {
         "computeTypesAllowed": [
           allowedComputeTypes
         ],
         "maximumBuildsAllowed": maximumBuildsAllowed
       },
       "serviceRole": "batchServiceRole",
       "timeoutInMins": batchTimeout
     }
   ```

   `buildBatchConfigOverride` 객체는 이 빌드에 대한 배치 빌드 구성 재정의를 포함하는 [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html) 구조입니다.  
*combineArtifacts*  
배치 빌드의 빌드 아티팩트를 단일 아티팩트 위치로 결합할지 여부를 지정하는 부울입니다.  
*allowedComputeTypes*  
배치 빌드에 허용되는 컴퓨팅 유형을 지정하는 문자열 배열입니다. 이러한 값은 [빌드 환경 컴퓨팅 유형](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html)를 참조하세요.  
*maximumBuildsAllowed*  
허용되는 최대 빌드 수를 지정합니다.  
*batchServiceRole*  
배치 빌드 프로젝트에 대한 서비스 역할 ARN을 지정합니다.  
*batchTimeout*  
배치 빌드를 완료해야 하는 최대 시간(분)을 지정합니다.

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

   ```
   aws codebuild start-build-batch --cli-input-json file://start-build.json
   ```

1. 성공하면 [BuildBatch](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BuildBatch.html) 객체의 JSON 표현이 콘솔 출력에 나타납니다. 이 데이터의 예는 [StartBuildBatch 응답 구문](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuildBatch.html#API_StartBuildBatch_ResponseSyntax)을 참조하세요.

# 빌드 실행 자동 시작(AWS CLI)
<a name="run-build-cli-auto-start"></a>

소스 코드가 GitHub 또는 GitHub Enterprise Server 리포지토리에 저장된 경우 코드 변경이 리포지토리로 푸시될 때마다 GitHub 웹후크를 사용하여 소스 코드를 AWS CodeBuild 다시 빌드할 수 있습니다.

다음과 같이 **create-webhook** 명령을 실행합니다.

```
aws codebuild create-webhook --project-name <project-name>
```

*<project-name>*은 다시 빌드할 소스 코드가 포함되어 있는 빌드 프로젝트의 이름입니다.

GitHub의 경우, 다음과 비슷한 정보가 결과에 나타납니다.

```
{
  "webhook": {
    "url": "<url>"
  }
}
```

*<url>*은 GitHub Webhook에 대한 URL입니다.

GitHub Enterprise Server의 경우, 다음과 비슷한 정보가 결과에 나타납니다.

![\[샘플 출력 정보.\]](http://docs.aws.amazon.com/ko_kr/codebuild/latest/userguide/images/create-webhook-ghe.png)


1. 출력에서 보안 키 및 페이로드 URL을 복사합니다. 이들 값은 GitHub Enterprise Server에 Webhook를 추가할 때 필요합니다.

1. GitHub Enterprise Server에서 CodeBuild 프로젝트가 저장된 리포지토리를 선택합니다. **설정**, **Hooks & services(후크 및 서비스)**, **Add webhook(webhook 추가)**를 차례로 선택합니다.

1. 페이로드 URL 및 보안 키를 입력하고 그 외 필드에 대해서는 기본값을 수락한 다음 [**Add webhook**]를 선택합니다.

# 빌드 실행 자동 중지(AWS CLI)
<a name="run-build-cli-auto-stop"></a>

소스 코드가 GitHub 또는 GitHub Enterprise Server 리포지토리에 저장된 경우 코드 변경이 리포지토리로 푸시될 때마다 소스 코드를 AWS CodeBuild 다시 빌드하도록 GitHub 웹후크를 설정할 수 있습니다. 자세한 내용은 [빌드 실행 자동 시작(AWS CLI)](run-build-cli-auto-start.md) 단원을 참조하십시오.

이 동작을 활성화한 경우 다음과 같이 `delete-webhook` 명령을 실행하여 해제할 수 있습니다.

```
aws codebuild delete-webhook --project-name <project-name>
```
+ *<project-name>*은 다시 빌드할 소스 코드가 포함되어 있는 빌드 프로젝트의 이름입니다.

이 명령이 제대로 실행되면 출력에 정보나 오류가 표시되지 않습니다.

**참고**  
이렇게 하면 Webhook가 CodeBuild 프로젝트에서만 삭제됩니다. Webhook를 GitHub 또는 GitHub Enterprise Server 리포지토리에서도 삭제해야 합니다.

# 빌드 실행(AWS SDKs)
<a name="run-build-sdks"></a>

CodePipeline을 사용하여 빌드를 실행하려면이 단계를 AWS CodeBuild건너뛰고 [와 AWS CodeBuild 함께 AWS CodePipeline 를 사용하여 코드를 테스트하고 빌드를 실행합니다.](how-to-create-pipeline.md) 대신의 지침을 따르세요.

CodeBuild를 AWS SDKs와 함께 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요[AWS SDKs 및 도구 참조](sdk-ref.md).