무중단 배포 및 배포 전략

영진·2023년 1월 18일
0

AWS

목록 보기
9/17

무중단 배포, 처음 듣는 용어일 경우 많이 생소 할 것이다.
무중단 배포 말고도 중단 배포도 존재한다.
이제 어떠한 차이점이 존재하는지 알아보자


우선 해당 블로그를 인용하여 작성하였다.

https://hudi.blog/zero-downtime-deployment/
https://www.samsungsds.com/kr/insights/1256264_4627.html
https://2cloud.io/blog/zero-downtime-during-deployment


중단 배포 방식과 다운타임

이제 중단 배포 방식이 무엇인지 설명하도록 할 것이다.

우리가 기존에 서버를 운영한다고 가정하도록 할 것이다.

시간이 지남에 따라 새로운 버전의 서버가 만들어지고 그 서버를 업데이트하려고 한다.
하지만 기존 서버랑 새로운 서버는 동일한 포트를 사용해야하기 때문에, 기본 서버를
종료 시키고, 새로운 서버를 배포할 수 밖에 없다. 이것을 중단 배포라고 한다.

기존 서버가 종료되고 새로운 버전의 서버가 실행되는 사이의 걸린시간을 다운타임 이라 한다.


무중단 배포

무중단 배포는 서비스 장애와 배포의 부담을 최소화하기 위해 운영 중인 서비스를 중단하지 않고 신규 소프트웨어를 배포하는 기술이다.

무중단 배포의 핵심

로드밸런서(Load Balancer)를 통해 연결된 두 개 이상의 (서로 다른 IP, 포트를 가진) 인스턴스에 트래픽을 제어해 배포하는 것이다.

무중단 배포 조건

  • 배포 작업이 서비스에 영향을 주지 않도록 하기 위해 고객의 이용량에 따라 인스턴스는 물론 로드밸런서도 다중화를 고려해야한다.
  • 고가용성의 시스템 인프라가 구성되어 있어야 한다.

무중단 배포 방식

  • 롤링 배포
  • 블루-그린 배포
  • 카나리 배포

롤링 배포

롤링 배포에서 각 서버는 오프라인으로 전환되고 배포된 다음 다시 온라인으로 전환된다.
여기서 "서버를 오프라인으로 전환"은 로드 밸런서의 사용 가능한 서버 목록에서 서버를 제거하는 것을 의미한다.

이런식으로 진행하면 로드 밸런서는 업그레이드 기간 동안 해당 서버로의 트래픽 전송을 중지하게 된다

롤링 배포는 기존 애플리케이션의 인스턴스를 새로운 인스턴스로 점진적으로 교체하는 것이다.
지정된 시간에 인스턴스가 N+1개 실행되고, 새로운 인스턴스가 도착하면 점진적으로 제거된다.

장점

  • 필요한 리소스가 적다.
  • 세 가지 버전의 파이프라인을 준비할 수 있으므로 더 자주 배포할 수 있다.

단점

  • 배포에는 시간이 오래 걸린다. 동시에 모든 서버를 중단할 수 없기 때문에 하나씩 배포해야 한다.
  • 구버전과 신버전간의 호환성 문제가 발생할 수 있다.

블루-그린 배포

블루그린은 로드 벨런서가 있는 두 개의 동일한 환경을 갖는 것이다.
블루를 구버전, 그린을 신버전으로 지칭한다.
운영 환경에 구버전과 동일하게 신버전의 인스턴스를 구성한 후, 로드밸런서를 통해 신버전으로 모든 트래픽을 전환하는 배포방식이다.

장점

  • 배포 프로세스가 빠르다.
  • 문제 발생 시 이전 환경으로 쉽게 롤백된다.

단점

  • 시스템 자원이 두배로 든다.
  • 구버전과 같은 환경으로 신버전을 미리 준비해야한다.

카나리 배포

잠재적 문제 상황을 미리 발견하기 위한 방식이다.
신버전의 제공 범위를 늘려가면서 모니터링 및 피드백 과정을 거칠 수 있다.

배포방식

  • 이 방식은 신버전의 배포 전에 실제 운영 환경에서 미리 테스트한다는 점이 블루-그린 배포와 비슷하다.
  • 카나리 배포는 단계적인 전환 방식을 통해 부정적 영향을 최소화하고 상황에 따라 트래픽 양을 늘리거나 롤백할 수 있다.
  • 롤링 배포와 마찬가지로 신·구 두 버전이 운영되기 때문에 버전 관리가 필요하다.

장점

  • 가동 중지 시간이 없다.
  • 사용자의 피드백을 얻을 수 있다.

단점

  • 호환성문제가 발생할 수 있다. 두개의 애플리케이션 버전을 실행하기 때문이다.
profile
I'm good at cloud computing.

0개의 댓글