본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] AWS CodeBuild

by BTC_효범 2023. 6. 22.

안녕하세요 BTC95입니다.

오늘은 AWS CodeBuild에 대하여 알아보겠습니다.


AWS CodeBuild

AWS CodeBuild는 클라우드에서 소스 코드를 빌드하고 테스트하는 완전관리형 빌드 서비스입니다. DevOps 워크플로우에 통합되어 효율적인 소프트웨어 개발 및 배포를 지원합니다.

 

CodeBuild를 사용하면 다양한 프로그래밍 언어와 프레임워크로 작성된 소스 코드를 컴파일, 패키징, 테스트 등의 빌드 단계를 자동화할 수 있습니다. 코드를 커밋할 때마다 설정된 빌드 스크립트를 실행하여 일관된 방식으로 빌드를 수행합니다. 이를 통해 빠른 피드백과 안정적인 빌드 프로세스를 유지할 수 있습니다.


주요 기능

1) 빌드 프로젝트(Project): CodeBuild에서는 빌드를 위한 논리적인 단위인 빌드 프로젝트를 생성합니다. 각 빌드 프로젝트는 소스 코드 위치, 빌드 환경, 빌드 스크립트 등의 구성 요소를 포함합니다.

2) 빌드 환경(Environment): 빌드 프로젝트를 실행하는 데 필요한 컴퓨팅 리소스 및 소프트웨어 환경을 제공합니다. 빌드 환경은 사전 구성된 Amazon Linux, Ubuntu, Windows Server 등의 운영 체제에서 실행될 수 있으며, 필요한 소프트웨어 패키지 및 런타임 버전을 지정할 수 있습니다.

3) 빌드 스크립트(Buildspec): 빌드 스크립트 또는 buildspec은 빌드 프로젝트의 구성 파일로서, CodeBuild에게 빌드 과정을 지시합니다. buildspec 파일은 YAML 형식으로 작성되며, 소스 코드를 가져오고 컴파일, 테스트, 패키징, 배포 등의 작업을 수행하는 명령어와 단계를 정의할 수 있습니다.

4) 소스 코드 소스(Source): 다양한 소스 코드 소스를 지원합니다. AWS CodeCommit, GitHub, Bitbucket 등의 원격 저장소 또는 Amazon S3 버킷, 로컬 파일 시스템과 같은 지역 저장소에서 소스 코드를 가져올 수 있습니다.

5) 빌드 아티팩트(Artifact): 빌드가 성공적으로 완료되면, CodeBuild는 빌드 아티팩트를 생성합니다. 이 아티팩트는 빌드된 애플리케이션, 패키지, 라이브러리 등을 포함하며, S3 버킷, ECR 리포지토리 등 다른 AWS 리소스로 배포할 수 있습니다.

 

사용 사례

1) 지속적인 통합 (Continuous Integration, CI): 코드 커밋이 발생할 때마다 자동으로 소스 코드를 빌드하고 테스트할 수 있습니다. 이를 통해 여러 개발자가 동시에 작업하는 경우 코드의 일관성을 유지하고 통합 버그를 신속하게 감지할 수 있습니다.

2) 빌드 파이프라인 구축: AWS CodePipeline과 통합하여 완전한 CI/CD 파이프라인을 구축할 수 있습니다. 소스 코드를 가져와 빌드하고, 테스트하고, 패키징하여 배포 자동화를 구현할 수 있습니다.

3) 다중 환경 빌드: 다양한 운영 체제 및 런타임 환경을 지원하므로, 여러 환경에서 애플리케이션을 빌드할 수 있습니다. 예를 들어, Linux, Windows 및 macOS 환경에서 애플리케이션을 빌드하고 테스트할 수 있습니다.

4) 타사 소스 코드 호스팅: GitHub, Bitbucket, GitLab 등의 타사 소스 코드 호스팅 서비스와 통합하여 소스 코드를 가져올 수 있습니다. 이를 통해 기존에 사용 중인 소스 코드 관리 도구와 원활하게 통합할 수 있습니다.

5) 확장성과 탄력성: 빌드 작업을 병렬로 실행하고, 필요에 따라 컴퓨팅 리소스를 조정하여 확장성과 탄력성을 제공합니다. 큰 규모의 프로젝트나 동시에 여러 빌드를 처리해야 하는 경우에도 효율적으로 작업을 처리할 수 있습니다.

6) 사용자 정의 빌드 환경: 빌드 환경을 사용자 정의할 수 있는 기능을 제공합니다. 커스텀 AMI(Amazon Machine Image)를 사용하여 특정 의존성이나 환경 설정을 포함한 빌드 환경을 구성할 수 있습니다.


다음 블로그에서는 Azure에서 AWS CodeBuild와 유사한 서비스로 Azure Build Pipelines에 대하여 알아보겠습니다.

감사합니다.

댓글