

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

# 에서 EB CLI 사용 AWS CodeBuild
<a name="eb-cli-codebuild"></a>

[AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/)는 소스 코드를 컴파일하고 단위 테스트를 실행하며 배포 준비가 완료된 결과물을 생성합니다. CodeBuild를 EB CLI와 함께 사용하여 소스 코드를 통한 애플리케이션 빌드를 자동화할 수 있습니다. 이후의 환경 생성과 각 배포는 빌드 단계로 시작하며, 그 후에는 결과로 얻은 애플리케이션을 배포합니다.

**참고**  
일부 리전에서는 CodeBuild를 제공하지 않습니다. Elastic Beanstalk와 CodeBuild 간의 통합은 이러한 리전에서 작동하지 않습니다.  
각 리전에서 제공되는 AWS 서비스에 대한 자세한 내용은 [리전 표를](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) 참조하세요.

## 애플리케이션 생성
<a name="eb-cli-codebuild-using"></a>

**CodeBuild를 사용하는 Elastic Beanstalk 애플리케이션을 만들려면**

1. CodeBuild 빌드 사양 파일인 [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)을 애플리케이션 폴더에 포함합니다.

1. Elastic Beanstalk에 고유한 옵션으로 `eb_codebuild_settings` 항목을 파일에 추가합니다.

1. 폴더에서 [**eb init**](eb3-init.md)을 실행합니다.
**참고**  
CodeBuild와 EB CLI를 함께 사용할 경우에는 **애플리케이션 이름에 마침표(`.`) 또는 공백(` `) 문자를 사용하지 마세요.

Elastic Beanstalk는 [CodeBuild 빌드 사양 파일 형식](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)을 확장하여 다음 추가 설정을 포함합니다.

```
eb_codebuild_settings:
  CodeBuildServiceRole: role-name
  ComputeType: size
  Image: image
  Timeout: minutes
```

`CodeBuildServiceRole`  
CodeBuild가 사용자를 대신하여 종속 서비스와 상호 작용하는 데 사용할 수 있는 AWS Identity and Access Management (IAM) AWS 서비스 역할의 ARN 또는 이름입니다. 이 값은 필수입니다. 이를 생략할 경우 후속 **eb create** 또는 **eb deploy** 명령이 실패합니다.  
CodeBuild에 대한 서비스 역할 생성에 대해 자세히 알아보려면 *AWS CodeBuild 사용 설명서*의 [CodeBuild 서비스 역할 생성](https://docs.aws.amazon.com/codebuild/latest/userguide/setting-up.html#setting-up-service-role)을 참조하세요.  
또한 CodeBuild 자체에서 작업을 수행할 권한도 필요합니다. Elastic Beanstalk **AdministratorAccess-AWSElasticBeanstalk** 관리형 사용자 정책에 필요한 모든 CodeBuild 작업 권한이 포함되어 있습니다. 관리형 정책을 사용하지 않는 경우 반드시 사용자 정책에서 다음 권한을 허용합니다.  

```
  "codebuild:CreateProject",
  "codebuild:DeleteProject",
  "codebuild:BatchGetBuilds",
  "codebuild:StartBuild"
```
자세한 내용은 [Elastic Beanstalk 사용자 정책 관리](AWSHowTo.iam.managed-policies.md)을 참조하세요.

`ComputeType`  
CodeBuild 빌드 환경에서 Docker 컨테이너가 사용하는 리소스의 양입니다. 유효한 값은 BUILD\$1GENERAL1\$1SMALL, BUILD\$1GENERAL1\$1MEDIUM, BUILD\$1GENERAL1\$1LARGE입니다.

`Image`  
CodeBuild가 빌드 환경에 대해 사용하는 Docker Hub 또는 Amazon ECR 이미지의 이름입니다. 이 도커 이미지에는 코드 빌드에 필요한 실행 시간 라이브러리와 도구가 전부 들어 있어야 하며, 애플리케이션의 대상 플랫폼과 일치해야 합니다. CodeBuild는 Elastic Beanstalk에서 사용하도록 특별히 마련된 이미지 세트를 관리하고 유지합니다. 이들 중 하나를 사용하는 것이 좋습니다. 자세한 내용은 *AWS CodeBuild 사용 설명서*의 [CodeBuild에서 제공하는 도커 이미지](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html)를 참조하세요.  
`Image` 값은 선택 사항입니다. 이를 생략할 경우 **eb init** 명령은 대상 플랫폼에 가장 잘 맞는 이미지를 선택하려고 시도합니다. 또한 대화형 모드에서 **eb init**을 실행했는데 이미지를 선택하지 못할 경우, 이미지를 하나 선택하라는 메시지가 표시됩니다. 초기화가 성공적으로 끝나는 시점에는 **eb init**이 선택된 이미지를 `buildspec.yml` 파일에 작성합니다.

`Timeout`  
제한 시간이 지나기 전에 CodeBuild 빌드를 실행하는 기간(분)입니다. 이 값은 선택 사항입니다. 유효한 값과 기본값에 대한 자세한 내용은 [CodeBuild에서 빌드 프로젝트 생성](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project.html)을 참조하십시오.  
이 제한 시간은 CodeBuild 실행이 지속되는 최대 시간을 제어하고 EB CLI 또한 이를 애플리케이션 버전 생성의 첫 번째 단계의 일부로서 준수합니다. 이는 [**eb create**](eb3-create.md) 또는 [**eb deploy**](eb3-deploy.md) 명령의 `--timeout` 옵션으로 지정 가능한 값과 다릅니다. 후자의 값은 환경 생성이나 업데이트에 대한 EB CLI의 최대 대기 시간을 제어합니다.

## 애플리케이션 코드 빌드 및 배포
<a name="eb-cli-codebuild-using"></a>

애플리케이션 코드 배포가 필요할 때마다 EB CLI는 CodeBuild를 사용하여 빌드를 실행하고 그에 따른 빌드 아티팩트를 환경으로 배포합니다. 이는 [**eb create**](eb3-create.md) 명령을 사용하여 애플리케이션에 Elastic Beanstalk 환경을 생성할 때와 그 이후에 [**eb deploy**](eb3-deploy.md) 명령을 사용하여 코드 변경 사항을 환경에 배포할 때마다 수행됩니다.

CodeBuild 단계가 실패할 경우 환경 생성이나 배포가 시작되지 않습니다.