💡 핵심 인사이트
롤링 업데이트(Rolling Update)는 서버를 두 배로 띄우기 돈 아까울 때(블루-그린의 단점) 쓰는 가성비 좋은 무중단 배포 전략입니다.
10대의 구버전 서버 중 1대씩, 또는 2대씩 순차적으로 서버를 내리고 신버전으로 갈아 끼우면서, 마치 바퀴가 굴러가듯(Rolling) 서서히 점진적으로 전체 서버를 업데이트하는 방식입니다.
Ⅰ. 롤링 업데이트의 동작 시나리오 (야금야금 교체)
우리가 10대의 서버(V1)로 쇼핑몰을 돌리고 있다고 가정합시다. 서버를 10대 추가로 띄울 돈은 없습니다.
- 로드밸런서가 **1번 서버(V1)**로 향하는 트래픽을 차단합니다. (나머지 9대의 V1 서버가 평소보다 조금 빡세게 트래픽 100%를 감당합니다).
- 이제 한가해진 1번 서버의 V1 코드를 지우고, 신버전인 V2 코드를 깔아서 부팅합니다.
- 1번 서버(V2)가 정상이면 로드밸런서가 다시 이쪽으로 유저 트래픽을 흘려보냅니다.
- 이 작업을 **2번 서버, 3번 서버... 10번 서버까지 10번에 걸쳐 도미노처럼 차례대로 반복(Rolling)**합니다.
- 1시간 뒤, 모든 10대의 서버가 V1에서 V2로 무중단 완벽 교체 완료됩니다.
Ⅱ. 롤링 업데이트의 장점과 치명적인 단점
클라우드(AWS EC2 Auto Scaling, 쿠버네티스 Deployment)에서 가장 기본(Default)으로 제공하는 무중단 배포 전략입니다.
장점 (비용 극상)
- 서버를 추가로 10대씩 왕창 띄울 필요가 없습니다. 많아 봐야 교체 중인 1~2대 분량의 여유 리소스만 있으면 되므로, 블루-그린 배포에 비해 클라우드 서버 인프라 비용(돈)이 획기적으로 적게 듭니다.
단점 1. 세션의 단절과 호환성 지옥 (V1과 V2의 공존)
- 배포가 진행되는 1시간 동안, 세상에는 구버전(V1)과 신버전(V2) 서버가 기괴하게 섞여서 동시에 서비스됩니다.
- 고객이 A 버튼을 누를 땐 우연히 V1 서버가 걸려서 옛날 화면이 나왔는데, F5(새로고침)를 눌렀더니 V2 서버로 핑퐁 되어 갑자기 새 화면이 뜨는 '사용자 경험의 혼란'이 발생합니다.
- 특히 **DB 스키마(테이블 구조)**가 바뀌는 대규모 업데이트일 때, V1 코드와 V2 코드가 한 DB를 동시에 찌르게 되면서 에러가 폭발할 확률이 극도로 높습니다.
단점 2. 지옥의 롤백 (Rollback) 시간
- 배포를 5대째(50%) 진행했는데 신버전 코드가 엉망이라 버그가 터졌습니다!
- 블루-그린 방식은 스위치만 1초 만에 돌리면 옛날로 돌아갔지만, 롤링 배포는 롤백마저도 다시 1대씩 야금야금 옛날 코드로 갈아 엎으며 뒤로 돌아가야 합니다. 복구되는 그 수십 분 동안 서비스는 계속 피를 흘려야 합니다.
📢 섹션 요약 비유: 롤링 업데이트는 아파트 기둥 10개를 교체할 때 주민을 다 내보내지 않고, **1번 기둥 빼고 새 기둥 끼워 넣고, 2번 기둥 빼고 새 기둥 끼워 넣는 식의 '살 떨리는 점진적 리모델링 공사'**입니다. 이사 갈(블루-그린) 돈이 굳어서 좋긴 하지만, 공사 기간 내내 집이 흔들릴 수 있고 무너지기 시작하면 되돌리기도 매우 힘든 땀내 나는 배포법입니다.