- RollingUpdate로 CodeCommit 업데이트 시 ECS 서비스 업데이트 하기2024년 12월 24일
- wngnl05
- 작성자
- 2024.12.24.:47
Codecommit 특정 브런치에 업로드 이벤트가 발생하면
CodePipeline이 감지하고 Codedeploy, Codebuild 실행해서
ECS의 서비스를 업데이트 해주도록 구축해보겠습니다.
우선 ECS에서 클러스터를 생성하고 서비스를 ALB와 연결해서 배포해주세요.
이제 Codecommit을 생성하고 Instance에서 "git clone"으로 접속해줍니다.
2023.09.30 - [Aws] - Codecommit에 Push 하는 방법
Codecommit에서 브런치를 하나 생성하고 Dockerfile이랑 buildspec.yml파일을 작성해줍니다.
Dockerfile은 사용자의 앱에 맞게 작성하고
version: 0.2 phases: pre_build: commands: - <ECR 푸시 인증> - ECR_URI=<ECR URI> - IMAGE_TAG=$(date -d +9Hours "+%Y-%m-%d.%H.%M.%S") build: commands: - docker build -t my_image . post_build: commands: - docker tag my_image:latest $ECR_URI:$IMAGE_TAG - docker push $ECR_URI:$IMAGE_TAG - printf '[{"name":"<ECS 서비스 컨테이너 이름>","imageUri":"%s"}]' $ECR_URI:$IMAGE_TAG > imagedefinitions.json artifacts: files: imagedefinitions.json
buildspec.yml은 내용을 수정하고 저장해줍니다.
codecommit에 업로드 해주고
Aws Console로 이동해서 Codedeploy를 ECS로 생성해줍니다.
Codebuild는 소스 공급자를 Codecommit을 선택하고 브런치는 위에서 생성한 걸로 선택해줍니다.
CodePipeline으로 이동해서
소스 공급자 : Codecommit // 선택한 브런치로 업로드가 될시 pipeline을 실행합니다.
Amazon CloudWatch Events(권장)를 선택하고
빌드 : 위에서 만든 빌드를 선택해줍니다.
배포 : ECS를 선택하고 cluster, service를 선택하고 "이미지 정의 파일"은 imagedefinitions.json로
적고 생성해줍니다.
imagedefinitions.json
이제 Codecommit에서 특정 브런치로 업로드 하면 Pipeline을 통해 Codebuild를 실행하고
Codebuild에서 새로운 ECR이미지를 만들고새로 만든 ECR이미지로 ECS의 Servcice - 컨테이너 이미지를 수정해줍니다.
'Aws' 카테고리의 다른 글
RDS SecretManger 생성하기 (0) 2024.12.24 Blue&Green을 이용해서 CodeCommit 업데이트 시 ECS의 서비스 업데이트 하기 (0) 2024.12.24 Codebuild에서 CodeCommit ID를 태그로 ECR에 업로드 (0) 2024.12.24 S3에서 이벤트 발생시 람다를 이용해서 CloudFront 무효화 하기 (0) 2024.12.24 Kinesis Stream에 레코드 전송 (0) 2024.12.24 다음글이전글이전 글이 없습니다.댓글