Closed song960530 closed 2 years ago
참고 사이트
CI 서버 설치 / EC2 기본 AMI 생성 / S3 생성 / IAM 정책 생성 / EC2 ASG 생성 까지 진행하였음
무중단 배포
사용 기술
GItHub, Jenkins, S3, CodeDeploy, Load Balancer, EC2 Auto Scaling Group
배포 과정
수정이 완료된 파일을 GitHub의 특정 브랜치로 Push하면 설정된 URL로 Post payload를 보내 CI 빌드를 트리거합니다
Jenkins에서 Test와 Build를 실행합니다
Jenkins의 Plugin을 통하여 Build된 결과물을 압축하여 지정한 S3 버킷에 업로드합니다
Jenkins의 Plugin을 통하여 지정된 배포 그룹을 실행합니다
Code Deploy가 대상 서버의 트래픽을 차단하고, 대상 서버의 agent로 배포 파일을 내려받습니다
이후 배포파일 압축을 풀고 AppSpec.yml에 명세된 내용에따라 배포 절차가 진행됩니다
배포가 완료된 후 LB의 Target Group에 설정해둔 Health check를 통해 애플리케이션의 정상 동작을 확인한 이후 트래픽을 다시 허용합니다
동일 Auto Scaling Group에 속한 EC2에 5~6번 과정이 반복적으로 동작하여 전체적인 배포를 완료합니다
참고 사이트