- 개발자 도구›
- AWS CodeBuild›
- FAQ
AWS CodeBuild FAQ
일반
AWS CodeBuild는 무엇인가요?
AWS CodeBuild는 클라우드에서 제공되는 완전관리형의 지속적 통합 서비스입니다. CodeBuild는 소스 코드를 컴파일하고 테스트를 실행하며 배포 준비가 완료된 소프트웨어 패키지를 생성합니다. CodeBuild에서는 자체 빌드 서버를 프로비저닝, 관리 및 확장할 필요가 없습니다. CodeBuild는 자동으로 확장 및 축소되고 여러 빌드를 동시에 처리하기 때문에 빌드가 대기열에서 대기할 필요가 없습니다. CodeBuild의 사전 패키징된 빌드 환경을 사용하여 빠르게 시작하거나 사용자 지정 빌드 환경을 사용해 자체 빌드 도구를 사용할 수 있습니다. CodeBuild를 사용하면 분당 요금만 부과됩니다.
CodeBuild를 사용해야 하는 이유는 무엇인가요?
빌드 서버 소프트웨어를 직접 설정하고 패치 및 유지 관리하는 대신, CodeBuild의 완전 관리형 환경을 사용할 수 있습니다. 빌드 작업을 CodeBuild에 제출하면 모든 빌드에서 새로 생성된 후에 완료 시 삭제되는 임시 컴퓨팅 컨테이너에서 CodeBuild가 이 작업을 실행합니다. 빌드 서버 하드웨어 또는 소프트웨어를 관리할 필요가 없습니다. 또한 CodeBuild는 빌드 볼륨에 맞게 자동으로 확장됩니다. CodeBuild는 사용자가 제출한 각각의 빌드를 처리하고 별개의 빌드를 동시에 실행할 수 있습니다. 즉, 빌드는 대기열에서 대기하지 않게 됩니다.
CodeBuild의 사용 요금은 얼마인가요?
자세한 내용은 AWS CodeBuild 요금 페이지를 참조하세요.
CodeBuild를 사용하면 릴리스 프로세스를 자동으로 실행할 수 있나요?
예. CodeBuild는 AWS CodePipeline과 통합됩니다. 빌드 작업을 추가할 수 있으며, 클라우드에서 실행되는 CI(지속적 통합) 및 CD(지속적 전달) 프로세스를 설정할 수 있습니다. CodePipeline 콘솔에서 빌드를 설정하고 모니터링하는 방법은 여기서 확인하실 수 있습니다.
CodeBuild 사용
빌드 프로젝트는 무엇인가요? >>
빌드 프로젝트는 CodeBuild에서 빌드를 실행하는 방법을 정의하는 데 사용됩니다. 이 프로젝트는 소스 코드를 가져올 위치, 사용할 빌드 환경, 실행할 빌드 명령 및 빌드 출력을 저장할 위치와 같은 정보를 포함합니다. 빌드 환경은 운영 체제, 프로그래밍 언어 실행 시간 및 CodeBuild에서 빌드를 실행하는 데 사용되는 도구들을 조합하여 구성됩니다.
빌드 프로젝트는 어떻게 구성하나요?
빌드 프로젝트는 콘솔 또는 AWS CLI를 통해 구성할 수 있습니다. 소스 리포지토리 위치, 실행 시간 환경, 빌드 명령, 컨테이너가 담당하는 IAM 역할 및 빌드를 실행하는 데 필요한 컴퓨팅 클래스를 지정합니다. 혹은 buildspec.yml 파일에서 빌드 명령을 지정할 수 있습니다.
CodeBuild는 어떤 소스 리포지토리를 지원하나요?
CodeBuild에서 AWS CodeCommit, S3, GitHub, GitHub Enterprise 및 Bitbucket에 연결하여 빌드의 소스 코드를 가져올 수 있습니다.
CodeBuild는 어떤 프로그래밍 프레임워크를 지원하나요?
CodeBuild는 지원되는 버전의 Java, Ruby, Python, Go, Node.js, Android, NET Core, PHP 및 Docker에 대해 사전 구성된 환경을 제공합니다. Docker 이미지를 생성한 후 이 이미지를 Amazon EC2 Container Registry 또는 Docker Hub 레지스트리에 업로드하면 현재 환경을 사용자 지정할 수도 있습니다. 그런 다음, 빌드 프로젝트에서 이 사용자 지정 이미지를 참조할 수 있습니다.
CodeBuild는 사전에 구성된 Windows 빌드 런타임으로 어떤 것을 제공하나요?
CodeBuild는 .NET Core 2.0을 위해 사전 구성된 Windows 빌드 환경을 제공합니다. AWS는 Microsoft 소유 라이브러리를 사용할 수 있는 라이선스를 보유한 Microsoft .NET 프레임워크 고객을 위해 사전 구성된 빌드 환경을 제공하고자 합니다. 그러나 Microsoft는 현재 이러한 고객들의 요청을 해결하는 데 있어 저희와 협력하기를 원하지 않습니다. Docker 이미지를 생성하여 Amazon EC2 Container Registry 또는 Docker Hub 레지스트리에 업로드하는 등 환경을 직접 사용자 지정하여 .NET 프레임워크와 같은 다른 빌드 대상을 지원할 수 있습니다. 그런 다음, 빌드 프로젝트에서 이 사용자 지정 이미지를 참조할 수 있습니다.
빌드가 실행되면 어떻게 되나요?
CodeBuild는 빌드 프로젝트에 정의된 클래스의 임시 컴퓨팅 컨테이너를 만들어 이 컨테이너를 지정된 런타임 환경으로 로드하고 소스 코드를 다운로드하며 프로젝트에 구성된 명령을 실행하고 생성된 아티팩트를 S3 버킷에 업로드한 다음, 컴퓨팅 컨테이너를 삭제합니다. 빌드가 실행되는 동안 CodeBuild는 빌드 출력을 서비스 콘솔 및 Amazon CloudWatch에 스트리밍합니다.
첫 번째 빌드는 어떻게 설정하나요?
AWS Management Console에 로그인한 다음, 하나의 빌드 프로젝트를 생성한 후 빌드를 실행합니다. CodeBuild에 대한 소개는 단계별 자습서를 포함하는 시작하기를 참조하세요. 또한 CodeBuild Local을 사용하여 로컬에서 빌드를 테스트하고 디버깅할 수 있습니다.
CodeBuild를 Jenkins와 함께 사용해도 되나요?
예. Jenkins용 CodeBuild 플러그인을 사용하면 CodeBuild를 Jenkins 작업에 통합할 수 있습니다. 빌드 작업은 CodeBuild로 전송되기 때문에 Jenkins 작업자 노드를 프로비저닝하고 관리할 필요가 없습니다.
이전의 빌드 결과를 보려면 어떻게 해야 하나요?
이전의 빌드 결과는 콘솔, CloudWatch 또는 API를 통해 액세스할 수 있습니다. 이러한 빌드 결과들은 결과(성공 또는 실패), 빌드 기간, 출력 아티팩트 위치 및 로그 위치를 포함합니다. CodeBuild 대시보드를 사용하여 시간 경과에 따른 빌드 동작을 이해하기 위한 지표를 볼 수 있습니다. 대시 보드에는 시도된 빌드 횟수, 성공 및 실패 횟수 및 빌드 기간이 표시됩니다. 또한 CloudWatch 콘솔로 가서 보다 자세한 빌드 지표를 볼 수도 있습니다. CloudWatch로 CodeBuild를 모니터링하는 방법에 대해 자세히 알아보려면 설명서를 참조하십시오.
이전의 빌드 실패는 어떻게 디버깅할 수 있나요?
빌드 실행 중에 생성된 상세 로그를 검사하여 빌드를 디버깅하거나 CodeBuild Local을 사용하여 빌드를 로컬에서 테스트하고 디버깅할 수 있습니다.
Windows 빌드 환경의 .NET Core에 대해 build.general1.small이 지원되지 않는 이유는 무엇인가요?
Windows 빌드 환경의 .NET Core는 Windows Docker 기본 컨테이너 및 추가 라이브러리의 크기로 인해 build.general1.small 컴퓨팅 인스턴스 유형에서 사용 가능한 것보다 더 큰 메모리와 처리 성능을 필요로 합니다. 이 제한 사항으로 인해 Windows 빌드의 .NET Core에는 프리 티어가 없습니다.
AWS CodeBuild에서 이벤트에 대한 알림 또는 경고를 수신하면 어떻게 해야 하나요?
빌드 프로젝트에 영향을 주는 이벤트에 대한 알림을 생성할 수 있습니다. 알림은 Amazon SNS 알림 형식으로 수신됩니다. 각 알림에는 상태 메시지와 함께, 해당 알림이 생성되도록 한 이벤트가 발생한 리소스의 링크가 포함됩니다. 알림에는 추가 비용이 부과되지 않지만 Amazon SNS 등 알림에서 사용하는 다른 AWS 서비스에는 비용이 부과될 수 있습니다. 알림 사용을 시작하는 방법은 알림 사용 설명서를 참조하세요. 또한 AWS Chatbot을 사용하는 고객은 Slack 채널 또는 Amazon Chime 채팅방으로 알림이 전송되도록 구성할 수 있습니다. 자세한 내용은 여기를 참조하세요.
보안
CodeBuild에 의해 저장된 빌드 아티팩트를 암호화할 수 있나요?
예. AWS Key Management Service(AWS KMS)에 저장된 하나의 키를 지정하여 아티팩트를 암호화할 수 있습니다.
CodeBuild는 다른 고객에게 속한 빌드를 어떻게 격리하나요?
CodeBuild는 다른 사용자로부터 격리된 새로운 환경에서 빌드를 실행하고 완료 시 각 빌드 환경을 삭제합니다. CodeBuild는 인프라 및 실행 수준에서 보안과 분리를 제공합니다.
AWS Identity and Access Management(IAM)를 사용하면 CodeBuild에 대한 액세스를 관리할 수 있나요?
예. IAM 정책에서 리소스 수준의 권한을 통해 빌드 프로젝트에 대한 액세스를 제어할 수 있습니다.
리전
CodeBuild는 어느 리전을 지원하나요?
자세한 내용은 리전별 제품 및 서비스를 참조하세요.