Aws

CodeBuild ID로 ECR 업데이트 및 ECS 서비스 업데이트 하기

wngnl05 2024. 12. 27. 15:13

appspec.yml : CodeDeploy에서 애플리케이션 배포를 정의하고 제어하는 설정 파일

buildspec.yml : CodeBuild에서 실행할 명령어를 작성한 파일

taskdef.json : ECS의 작업정의

 

ECS Service를 배포할때 Blue&Green으로 설정해주세요.

CMD-SHELL, curl --fail http://localhost:8080/health || exit 1

Download File

wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/ECS/appspec.yaml
wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/ECS/taskdef.json
curl -o buildspec.yaml https://raw.githubusercontent.com/wngnl-dev/AWS/main/ECS/buildspec/BuildID_buildspec.yaml

 

taskdef.json은 ECS 콘솔에서 직접 "테스크 정의"를 생성하고 JSON코드를 복사해서 붙여넣어주세요.

 

CodeBuild 설정

CodeBuild를 생성할때 꼭!! 도커 이미지를 빌드하거나 빌드의 권한을 승격하려면 이 플래그를 활성화합니다. 를 선택해주세요

 

CodeDeploy 설정

배포 그룹 > 원래 개정 종료 를 0일 0시간 0분으로 변경해주세요

배포 그룹 > 고급 > 롤백 에서 롤백 비활성화를 클릭해주세요.

그리고 배포에 실패하는 경우 롤백, 경보 임계값이 충족되는 경우 롤백을 선택해주세요.

 

CodePipeline 설정

배포 스테이즈 : Amazon ECS (Blue/Green)

- taskdef.json

- appspec.yaml

 

- CodePipeline Error

Pipeline에서 "Tags can  not be empty"라는 오류가 발생하면

taskdef.json 아래에 있는 "tags" : [] 를 지워주세요.