쿠팡은 어떻게 클라우드로 이전했을까
2018.10.12 오후 4:38
"리스크 줄이려 클라우드·데이터센터 동시 운영하며 서비스 옮겨"
[아이뉴스24 김국배 기자] "쿠팡의 클라우드 이전 전략은 두 마리의 말을 동시에 타는 '로만 라이딩' 기술과 같았어요."

양원석 쿠팡 수석 소프트웨어 엔지니어는 지난 11일 서울 코엑스에서 열린 네이버 연례 기술 콘퍼런스 '데뷰 2018'에서 쿠팡의 클라우드 이전 경험을 이처럼 표현했다.

알려진대로 쿠팡은 지난해 8월 모든 서비스를 아마존웹서비스(AWS) 클라우드로 이전했다. 이전까지는 100여 개의 마이크로서비스를 목동과 분당 두 곳 데이터센터에서 운영했으나, 확장성이 떨어져 장애의 원인이 됐다.



그는 "쿠팡의 목표는 아마존 같은 '에브리싱 스토어'였다"며 "이를 위해 상품 등록부터 검색, 배송까지 수십배 확장이 필요했지만 데이터센터에서 확장성을 얻기란 쉽지 않았다. 서버를 추가하려면 예산신청부터 구매, 상면까지 6개월씩 걸리기도 했다"고 말했다.


또한 "많은 장애가 확장성을 따라가지 못해 발생했다"며 "대부분 '스케일 아웃(서버 확장 방법)'으로 풀 수 있는 문제였지만, (데이터센터는) 쉽게 할 수 없는 구조였다"고 덧붙였다.

결국 쿠팡은 클라우드 전환이 필요하다는 판단하에 이전을 결정했다. 확장성 확보를 비롯해 무중단 이전, 고객 만족도에 영향을 주지 않는다는 세 가지 원칙을 세웠다. 이에 맞춰 데이터센터와 클라우드를 동시에 운영하면서 서비스를 하나씩 옮겨가는 전략을 취했다. 그는 이 전략을 '로만 라이딩'에 빗댔다.

이전 과정에서 쿠팡은 '작은 변화'와 '빠른 롤백(rollback·되돌아가기)'을 핵심 키워드로 삼아 리스크를 최소화하는데 중점을 뒀다. 이전을 위해 클라우드와 데이터센터를 동시에 운영하면서 트래픽을 조절하기 위한 '다이나믹 라우팅 프로젝트', 배포의 안정성을 높이는 '카나리 테스팅' 같은 프로젝트가 준비됐다.

이와 함께 데이터베이스(DB), 마이크로서비스 이관이 이뤄졌다. DB를 먼저 옮기고 난 후 API 게이트웨이를 활용해 마이크로서비스들을 이전하기 시작했다. 마이크로서비스는 트래픽이 적고 영향도가 낮은 순으로 진행됐다. 주문 같은 서비스는 트래픽이 적어지는 새벽시간대를 주로 이용했다.

이같은 과정을 거쳐 쿠팡은 3개월만에 모든 서비스를 이전했다. 사전 프로젝트 기간까지 합쳐 약 1년이 걸렸다. 클라우드 환경으로 바뀌면서 5천대의 인스턴스(instance)에서 200개의 마이크로서비스가 운영됐다. 1년이 지난 현재 쿠팡의 마이크로서비스 숫자는 300개, 인스턴스 수는 1만 개를 넘었다. 업데이트 등을 위해 하루 평균 300회 이상의 배포가 이뤄진다.

그는 "기존 문제점인 추가·확장에 걸리는 리드타임은 더 이상 발생하지 않았고, 확장과 관련된 장애도 많이 줄었다"며 "1년 동안 서비스에서 판매하는 상품 숫자는 수십배 증가하고, 트래픽도 점점 늘어났다"고 말했다.

다만 마이크로서비스가 증가하면서 복잡도가 크게 늘자 새로운 문제들과 직면하기도 했다. 한 서비스에서 발생한 장애가 다른 서비스로 전파되고, 예상치 못한 곳에서 장애가 발생했다.

그는 "하나의 서비스 수준협약(SLA)이 99.99%라 할 경우 1년 기준으로 장애시간은 1시간이지만, 10개 서비스로 늘려보면 10시간이 돼 SLA가 99.9%로 떨어진다"며 "전파되는 장애의 문제는 원인을 찾는데 걸리는 시간이 점점 길어지다보니 복구 시간이 늦어지는 문제가 있다"고 말했다.

그에 따르면 실제로 클라우드 이전 후 1년간의 장애를 분석한 결과 전체 장애 숫자는 줄어든 편이나 평균 복구시간을 조금씩 증가했다. 지금은 새롭게 맞딱드린 이런 문제들을 풀어나가는 과정에 있다는 게 그의 말이다.

그는 다른 장애로부터 교훈을 얻는 것이 중요하다고 강조했다. 그는 "매일같이 새로운 기능과 시스템이 추가되는 변화의 속도를 고려하면 사건, 사고는 필연적"이라며 "장애를 계속 학습할 수 있는 정규화된 절차가 없으면 항상 비슷한 장애가 날 밖에 없다"고 지적했다.

/김국배기자 vermeer@inews24.com
이 기사에 질문하기!

관련기사