song960530 / foryou-family

0 stars 0 forks source link

Jenkins, S3, CodeDeploy, LB, ASG를 통한 무중단 배포 #98

Closed song960530 closed 2 years ago

song960530 commented 2 years ago

무중단 배포

사용 기술


무중단배포Flow


배포 과정

  1. 수정이 완료된 파일을 GitHub의 특정 브랜치로 Push하면 설정된 URL로 Post payload를 보내 CI 빌드를 트리거합니다

    GitHub Webhook 설정



  1. Jenkins에서 Test와 Build를 실행합니다

    test build



  1. Jenkins의 Plugin을 통하여 Build된 결과물을 압축하여 지정한 S3 버킷에 업로드합니다

    s3 upload log s3 bucket



  1. Jenkins의 Plugin을 통하여 지정된 배포 그룹을 실행합니다

    jenkins deploymentgroup 설정 배포그룹



  1. Code Deploy가 대상 서버의 트래픽을 차단하고, 대상 서버의 agent로 배포 파일을 내려받습니다
    이후 배포파일 압축을 풀고 AppSpec.yml에 명세된 내용에따라 배포 절차가 진행됩니다


  1. 배포가 완료된 후 LB의 Target Group에 설정해둔 Health check를 통해 애플리케이션의 정상 동작을 확인한 이후 트래픽을 다시 허용합니다


  1. 동일 Auto Scaling Group에 속한 EC2에 5~6번 과정이 반복적으로 동작하여 전체적인 배포를 완료합니다


참고 사이트

song960530 commented 2 years ago

CI 서버 설치 / EC2 기본 AMI 생성 / S3 생성 / IAM 정책 생성 / EC2 ASG 생성 까지 진행하였음