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