
Cloud9에서 CodeCommit 리포지토리 동기화 까지 알아봤다.
Cloud9, CodeCommit, CodeBuild를 활용한 S3 정적 웹사이트 구현 전에 CodeBuild에 대해 자세히 파악해 이해하기 위해 CodeBuild란 무엇인지 적어보려 한다.
💻 AWS CodeBuild?
- AWS CodeBuild 는 소프트웨어 개발에 필요한 소스코드를 컴파일하는 단계에서 부터 테스트 후 소프트웨어 배포까지의 단계를 지원하는 완전 관리형 지속적 통합(Continuous Integration) 서비스 이다.
- AWS CodeBuild는 빌드를 수행할 볼륨에 따라 인프라가 자동으로 확장 및 축소를 지원해 여러 빌드를 동시에 처리할 수 있기 때문에 빌드를 위해 대기하지 않고 빠르고 효율적으로 빌드 작업을 수행 할 수 있다.
- AWS CodeBuild는 AWS KMS(Key Management Service)를 이용해 빌드 아티팩트가 암호화되며 AWS IAM(Identity and Access Management)을 통해 권한을 관리 할 수 있다.
1. 코드에 대한 빌드와 테스트
AWS CodeBuild 는 빌드 작업을 수행하기 위해 사전에 구성된 빌드환경에서 작업을 수행한다. 이를 위해 소스코드의 위치와 빌드를 위한 설정을 선택해야하고 AWS CodeBuild는 코드를 빌드할 것이며 Amazon S3 버킷에 저장하거나 아티팩트 저장소에 업로드 한다. 런타임와 도구를 패키징하여 자신만의 빌드 환경을 구성할 수 있다.
2. 구성 설정
AWS CodeBuild는 단위테스트, 코드패키지 및 Build-To-Package 설치와 같은 명령을 지정할 수 있다. 빌드사양파일(build spec.yml) YAML로 구성하여 각 단계에서 수행할 명령어를 정의 할 수 있으며 수행 단계별로 실행하도록 구성할 수 있다.
개발 요구에 가장 적합한 컴퓨팅 유형을 선택할 수 있고 빌드에 필요한 사양을 지정할 수 있다. 또한 CodeCommit,Amazon S3,GitHub와의 연결을 통해 빌드를 시작할수 있으며 AWS CodePipeline과 연결하여 커밋이 발생할 때마다 자동으로 빌드를 수행 할 수 있다.
3. 지속적인 통합과 지속적인 배포 워크플로우
AWS CodeBuild는 AWS를 활용하여 지속적인 통합과 지속적인 배포를 구현 할 수 있는 기반을 제공한다.
이를 통해 개발자는 더욱 자주 소스를 배포할 수 있으며 소스코드의 컴파일 단계부터 테스트 후 배포 단계까지를 지속적으로 지원하는 완전관리형 지속적 통합 서비스 이다.
4. 빌드 프로세스에 대한 모니터링
AWS CodeBuild 는 AWS Management Console, SDK, AWS CLI 및 API 에서 빌드에 대한 상세 내역을 확인 할 수 있으며 Build ARN, Build Project, 리포지토리, 시작 및 종료시간, 빌드 상태등의 빌드 정보를 손쉽게 확인 할 수 있다.
Build Spec
- Build Spec은 AWS CodeBuild가
빌드를 실행하는데 사용하는 YAML 형식의 빌드 명령 및 관련 설정의 모음이다.- 소스코드의 일부로 빌드사양을 포함할 수 있으며 빌드 프로젝트를 생성할때 빌드사양을 정의할 수도 있다.
빌드 프로젝트에 대해하나의 빌드 사양만 지정할 수 있다.
빌드사양은 YAML 형식의 파일로 다음과 같이 구성된다.

위와 같이 설정해줄 수 있는데 각각에 대해 조금 설명해보자면
등이 있다.