https://dev.classmethod.jp/articles/ci-cd-deployment-strategies-kr/
- 인플레이스
- [정의] 새로운 버전의 어플리케이션만 반영하는 방법
- [절차] 어플리케이션 일시 정지 -> 최신 버전으로 설치 -> 앱 실행
- [사용] EC2, 온프레미스 환경에서만 사용 가능
- 롤링 배포
- [정의] 한 번에 정해진 수 만큼씩 새로운 버전을 배포
- [방식] 구버전에서 새버전으로 트래픽을 점진적으로 전환하여, 구버전이 점차 삭제
- [장점] 서버 수의 제약이 있을 경우 유용한 방법
- [단점] 배포 중 인스턴스의 수가 감소되므로, 처리 용량을 미리 고려해야함 - [제품] Elastic Beanstalk, CodeDeploy에서 사용
- [비교] EC2, 온프레미스는 인플레이스+롤링
- [사용] Lambda, ECS에서 기본으로 사용
- 블루/그린
- [정의] 새버전을 위한 환경을 따로 구축하여 교체하는 방법
- [장점] 버전 관리 문제 방지 / 운영 환경에 영향 없이 실제 환경으로 새버전 테스트 가능
- [장점] 문제발생시 롤백이 인플레이스보다 빠름
- [단점] 시스템 자원이 2배로 필요
- [제품] Elastic Beanstalk, CodeDeploy
- 카나리
- [정의] 가동 중인 일부 서버에만 새버전을 배포하여, 일부 트래픽을 새버전 환경으로 분산하는 방법
- [장점] A/B 테스트가 가능 / 오류율 및 성능 모니터링에 유용
- [장점] 분산 후 결과에 따라 새버전 대체 or 구버전 롤백 선택 가능
- [방식] 이 방법을 사용하는 대표적인 서비스는 API Gateway, CodeDeploy도 사용
'데이터 엔지니어링 > 클라우드' 카테고리의 다른 글
[초밀착 리눅스] 1. 리눅스 기반 컨테이너 개발 환경 구축 (0) | 2022.09.19 |
---|---|
[클라우드] Service Discovery (0) | 2022.05.10 |
[클라우드] 마이크로서비스 아키텍처 (0) | 2022.05.10 |
[클라우드] 클라우드 컴퓨팅 구분 (0) | 2022.05.08 |
[클라우드] 컨테이너 기술이란 (0) | 2022.05.08 |