TroubleShooting & Study/Infra

[ci/cd] develop서버와 release서버 분리

DH_0518 2024. 1. 4. 18:22

현재 상황

  • ec2에 배포서버 1개, 배포db 1개, redis 1개, jenkins 1개 + etc = 총 6개 정도의 컨테이너가 동작중
  • ci/cd 과정
    1. local에서 개발 진행
    2. 개발 사항을 PR, 이후 develop으로 merge
    3. develop이 업데이트되면 jenkins에서 webhook을 통해 업데이트 감지
    4. jenkins에서 깃허브의 develop으로 ec2 도커에 image build & deploy
  • 문제점
    • local에서 테스트를 통과하여도 ec2 환경에서는 장애가 발생할 수 있음
    • 장애가 발생하면 배포 서버가 죽기 때문에, 유저의 원활한 서비스 이용이 불가능함
    • develop을 수정할 때마다 배포가 되기 때문에 release를 따로 운용하지를 못함

 

해결 방안

  • Develop서버와 Release서버를 분리하자

  • 장점
    • jenkins를 ec2에서는 사용하지 않기 때문에 메모리 부하가 굉장히 줄어듦
    • 배포 환경에서 미리 테스트를 해볼 수 있기에, 배포시 장애가 생길 위험성이 줄어듦
  • 어려운점
    • 예산 문제로 ec2서버를 t3.medium으로 사용하기 위해서 develop서버는 local에서 돌리는 방법을 찾아야 함
    • 도커 허브를 사용하는 스크립트를 공부해봐야함

 

 

 

다음글 : https://kdh0518.tistory.com/entry/GitHub-Actions-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%84%9C%EB%B2%84-cicd-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-feat-Docker-Hub

 

[GitHub Actions] 스프링 서버 ci/cd 구축하기 (feat. Docker Hub)

이번 글은 다음 링크의 연장선이라 볼 수 있다 https://kdh0518.tistory.com/entry/cicd-develop%EC%84%9C%EB%B2%84%EC%99%80-release%EC%84%9C%EB%B2%84-%EB%B6%84%EB%A6%AC [ci/cd] develop서버와 release서버 분리 현재 상황 ec2에 배포

kdh0518.tistory.com