Chapter3 AWS CodeBuild
Last updated
Last updated
AWS CodeBuild는 소스 코드를 컴파일하고 테스트를 실행하며 배포할 준비가 된 소프트웨어 패키지를 생성하는 완전 관리형 지속적 통합 서비스입니다. 사전 패키지된 빌드 환경으로 빠르게 시작하거나 고유한 빌드 도구를 사용하는 사용자 지정 빌드 환경을 만들 수 있습니다.
이 실습에서는 애플리케이션 코드를 Java WAR(웹 애플리케이션 아카이브) 파일에 패키징하도록 CodeBuild 프로젝트를 설정합니다.
먼저 CodeBuild의 출력, 즉 WAR 파일을 저장하는 데 사용할 S3 버킷을 생성해야 합니다!
AWS 콘솔에 S3 서비스를 검색합니다.
버킷 만들기를 클릭 하고 버킷에 고유한 이름(예: unicorn-build-artifacts-12345 )을 지정 합니다.
리전은 앞서 만든 CodeCommit, Cloud9 과 같은 리전을 설정합니다.
다른 모든 옵션은 기본값으로 두고 버킷 만들기를 클릭 합니다.
AWS 콘솔에 CodeBuild 서비스를 검색합니다.
빌드 프로젝트에서 빌드 프로젝트 생성을 선택 합니다.
프로젝트 이름을 unicorn-web-build로 지정합니다. 추가 구성에 키는 team, 값은 devops로 태그를 추가합니다.
소스에서 AWS CodeCommit을 소스 공급자로 선택하고 unicorn-web-project를 리포지토리로 선택합니다. 브랜치는 main을 선택하고 커밋 ID는 그대로 둡니다.
* Amazon S3, GitHub, Bitbucket을 공급자로 사용할 수 있습니다. 특정 Git 태그 또는 분기 이름 대신 커밋 ID를 참조할 수도 있습니다.
5. 환경에서 관리형 이미지를 사용하도록 선택하고 다음을 선택합니다.
운영 체제 = Amazon Linux 2
런타임 = Standard
이미지 = aws/codebuild/amazonlinux2-x86_64-standard:3.0
이미지 버전 = 이 런타임 버전의 최신 이미지를 사용합니다.
환경 유형 = Linux
새 서비스 역할을 생성하도록 선택 하고 역할 이름을 기본값으로 둡니다.
6. Buildspec은 기본 옵션을 사용합니다. (buildspec 파일 사용)
7. 아티팩트에서 Amazon S3를 선택하고 이전에 생성한 버킷 이름을 선택합니다. 이름을 unicorn-web-build.zip으로 설정합니다. 아티팩트 패키징이 Zip으로 설정되도록 하고 다른 옵션을 기본값으로 두십시오.
8. CloudWatch 로그를 활성화합니다. 그룹 이름을 unicorn-build-logs로 설정 하고 스트림 이름을 webapp으로 설정 합니다. 이를 통해 CloudWatch Logs에서 빌드 출력을 추적할 수 있습니다.
9. 빌드 프로젝트 생성을 클릭 합니다.
이제 빌드 프로젝트 설정이 완료되었으며 애플리케이션을 빌드하는 방법에 대한 지침을 제공해야 합니다. 이를 위해 코드 저장소의 루트에 buildspec.yml(YAML) 파일을 생성합니다.
Cloud9 IDE에 다시 로그인합니다.
Cloud9 IDE 좌측에 ~/environment/unicorn-web-project/ 폴더에서 우클릭 후 New File을 클릭합니다. 파일의 이름을 buildspec.yml으로 지정합니다. (이름은 정확해야 합니다!)
3. 아래 내용을 복사해서 buildspec.yml에 넣습니다. --domain-owner 계정은 자신의 계정 ID로 바꿔야 합니다.
(계정 ID는 AWS CodeArtifact 수동 설정 1번 내용 참고)
4. buildspec.yml 파일을 저장합니다. 그런 다음 커밋하고 CodeCommit에 푸시합니다.
5. CodeCommit 리포지토리에 새로 생성된 파일을 볼 수 있습니다.
빌드 단계에서 CodeArtifact를 사용하고 있으므로 이전에 자동 생성된 IAM 역할에 CodeArtifact를 사용할 권한이 있는지 확인하기 위해 약간의 변경이 필요합니다. 이를 위해 이전 실습에서 생성된 IAM 정책을 사용합니다.
AWS 콘솔에서 IAM 을 검색 하고 왼쪽 메뉴에서 역할을 선택 합니다.
codebuild-unicorn-web-build-service-role을 검색하여 자동 생성된 역할을 찾고 클릭합니다.
권한 추가 버튼을 클릭 하고 드롭다운 메뉴에서 정책 연결을 선택합니다.
codeartifact-unicorn-consumer-policy를 검색 하고 항목을 선택한 다음 정책 연결을 클릭합니다.
이제 CodeBuild를 사용하여 첫 번째 빌드를 실행할 모든 것이 준비되었습니다!
AWS 콘솔에서 CodeBuild 서비스를 검색합니다.
unicorn-web-build 프로젝트를 선택하고 빌드 시작을 클릭합니다.
로그를 모니터링하고 빌드 상태가 완료될 때까지 기다립니다. (5분 이내)
4. 마지막으로 아티팩트 S3 버킷으로 이동하여 unicorn-web-project.zip이라는 zip 안에 패키지된 WAR 파일이 있는지 확인합니다.
이제 코드와 아티팩트 리포지토리와 애플리케이션을 컴파일하는 솔루션이 있습니다. 현재 수동으로 트리거된 빌드이며 나중에는 자동으로 트리거되도록 설정할 수 있습니다.
다음으로 AWS CodeDeploy를 사용하여 패키지된 WAR 파일을 호스팅하고 배포하는 방법을 살펴보겠습니다.