2020.03.09

구글 클라우드와 엣시의 클라우드 네이티브 전환 여정 2년

Scott Carey | InfoWorld
유명 온라인 마켓플레이스인 엣시(Etsy)가 2년에 걸쳐 2,000대의 온프레미스 서버를 구글 클라우드로 옮기는 과정을 최근 완료했다. 엣시 웹사이트와 모바일 앱은 수공예 틈새 상품 제작자를 위한 온라인 쇼핑 환경을 제공한다. 그러나 2018년에만 200만 개의 상품이 판매될 정도로 성장하면서 자체 운영하던 베어 메탈 인프라가 힘에 겨워 삐걱대기 시작했다.

엣시는 2005년에 설립된 업체다. 인터넷 환경은 충분히 갖춰진 시기였지만 퍼블릭 클라우드 서비스가 폭발적으로 성장하기 한참 천이다. 엣시는 2015년에 상장한 후, 막대한 비용이 드는 하드웨어 사전 구매 없이 서비스 확장을 도모하고 머신 러닝 기술을 더 효과적으로 활용하기 위해 클라우드 마이그레이션을 최우선 추진 과제로 지정했다.
 
그에 따라 2016년부터 퍼블릭 클라우드 시장을 탐색하기 시작했다. 업체 선택 과정에서는 경쟁업체보다 실무에 더 근접한 환경을 제공한 구글 클라우드가 유력한 업체로 부상했다. 엣시의 최고 기술 책임자인 마이크 피셔는 “구글은 회사에 방문해서 비즈니스와 우리가 처한 문제를 이해했으며 이 과정에서 영업 담당자만이 아니라 전담 엔지니어도 배정했다”고 말했다.
 

2년에 걸친 마이그레이션

두 회사는 2017년 12월 계약에 서명하고 2018년 초부터 마이그레이션 전략 수립에 착수했다. 목표는 2년 내에 모든 자산을 이전하는 것이었다.
 
구글 클라우드는 엣시의 브루클린 사무소 및 회사 슬랙 채널에 엔지니어를 상주시켰다. 프로젝트의 첫 단계는 마켓플레이스 웹사이트 애플리케이션 자체였는데, 이 애플리케이션은 웹사이트, 모바일 API, 웹 서버, API 서버, 그리고 수백 개의 MySQL 데이터베이스가 LAMP 스택 기반의 모놀리식 아키텍처로 구성된 형태였다.
 
마이그레이션의 전체적인 원칙은 큰 아키텍처 변화 없이, 가능한 최소한의 시스템을 마이그레이션하며 규정 준수를 유지하는 것이었다.
 
엣시의 최고 설계자인 키 고밴드는 작년 구글 클라우드 넥스트(Google Cloud Next) 연설 중 “코드를 다시 쓸 경우 프로젝트에 부가되는 위험이 너무 크다고 판단했다. 상당히 복잡하게 얽힌 레거시 코드베이스였기 때문”이라고 말했다. 
 
엣시는 원래 매년 8월이 되면 수백만 달러를 지출해 하드웨어를 구매했다. 쇼핑철을 맞아 사전에 용량을 확보하기 위해서였다. 엣시 팀은 8월에 핵심 마켓플레이스를 구글 클라우드로 옮겨 바쁜 쇼핑 시즌에 앞서 마켓플레이스의 대부분이 클라우드에서 실행되도록 하고, 동시에 쇼핑 시즌 하드웨어 투자 비용도 절감하고자 했다.
 
엔지니어들은 두 번째 시도 끝에 2018년 8월 19일, 아슬아슬하게 목표를 달성했다. 첫 번째 시도는 마이그레이션 중 일부 주요 오프라인 처리 시스템에서 메모리 고갈이 발생함에 따라 롤백했다.
 
엣시가 클라우드 네이티브 모델로 다시 설계한 핵심 워크로드는 검색이다. 엣시의 검색은 고도로 맞춤 구성된 아파치 솔라(Solr)와 루씬(Lucene) 버전에서 실행되는 자바 및 스칼라 애플리케이션이다.
 
피셔는 “가장 먼저 자체 데이터센터의 검색을 쿠버네티스로 마이그레이션했다. 문제는 컨테이너와 쿠버네티스로 이동하는 방법을 알아내는 것이 아니다. 그 부분은 외부에서 도와줄 사람을 불러들여 배우면 된다. 문제는 이것을 어떻게 운용 가능하게 하고 그 위에서 소프트웨어를 실행하느냐다”라고 말했다.
 
이 애플리케이션은 2019년 3월에 마이그레이션됐고 이어 4월에는 빅 데이터 저장소 마이그레이션에 이어 마지막으로 모니터링 등 나머지 지원 시스템이 마이그레이션됐다. 이 마지막 작업이 2020년 2월에 완료되면서 2년 내 마이그레이션 목표도 달성했다.
 
엣시는 프로젝트를 진행하기 위해 여러 부서를 포괄하는 마이그레이션 “분대”를 구성, 다른 기술적 기능의 중단을 최소화하면서 각 엣시 서비스의 마이그레이션에만 집중하도록 했다.
 
몇 개월 동안 엔지니어들이 모니터링 및 관찰할 대상, 각각의 대응 시점과 방법 등을 결정하는 사이 시스템의 가용성이 처음 엣시가 원했던 수준보다 낮게 나왔다. 피셔는 “그 부분이 어렵다. 운영 방법을 터득하는 것은 외부에 도움을 요청할 수 없는 영역”이라고 말했다.

엣시는 시스템의 기능 수준에 따라 가용성을 측정해 비율로 계산했다. 이 비율은 엣시 엔지니어들이 가상 머신 대신 쿠버네티스에서 검색 애플리케이션을 관리하는 방법을 터득하면서 다소 향상됐다.
 

내가 원하는 바로 그 인형 찾기

피셔는 엣시를 빙산에 비유해 설명한다. 대부분의 고객이 보는 것은 온라인 쇼핑몰이지만, 그 밑에는 5.5PB 용량의 데이터가 있다. 엣시는 사용자가 생성한 태깅에 의존해 작동하므로 방문자를 구매자로 전환해서 잡아 두려면 정교한 알고리즘과 검색 기능이 필요하다. 현재 구매의 80%가 검색 결과의 첫 페이지에서 이뤄지므로 정확한 검색 결과가 나오도록 하는 것이 무엇보다 중요하다.
 
현재 엣시 마켓플레이스에는 6,500만 가지 이상의 상품이 있으며 엣시의 데이터 과학자는 고객에게 딱 맞는 결과를 제공할 창의적인 방법을 끊임없이 찾는다. 이미지 인식 기술을 사용해서 스타일별로 상품을 분류하는 작업도 포함된다.
 
피셔는 “일반적으로 스타일은 하나의 범주로 한정되지만 드레스의 스타일을 탐지해서 예를 들어 양탄자에 적용하기는 어렵다. 이미지 인식을 사용하면 이 작업이 가능하다”고 말했다.
 
피셔는 “구글의 진정한 가치는 우리에게 꼭 필요한 빅데이터 및 머신러닝 같은 부가가치 서비스에 있다. 인프라에 투자한다면 그 인프라에 대해 정통한 회사와 파트너를 맺는 것이 당연하다”고 말했다.
 
구글의 인기 있는 머신 러닝 플랫폼인 텐서플로우(TensorFlow)가 좋은 예다. 구글 기술 프로그램 관리자인 대니 로젠은 작년 클라우드 넥스트 연설에서 “엣시에서 원하는 손뜨개 문어 인형을 정확히 찾기는 너무나 어려운 일이다. 머신 러닝이 해답”이라고 말했다.
 

데이터센터 폐쇄

전환 이후의 수치, 특히 크리스마스와 같은 쇼핑철의 수요에 대응하기 위한 확장 속도는 전략대로 만족스럽게 나타나고 있다.
 
피셔는 “클라우드에서는 수백 대의 서버를 몇 분만에 가동할 수 있다. 이전의 데이터센터에서 같은 컴퓨팅 용량을 확보하려면 몇 달 동안 예산을 짜고 계획하고 서버를 설치해야 했다”고 말했다.
 
엣시는 마이그레이션 이후 3곳의 데이터센터 중 2개를 이미 폐쇄했으며 마지막 하나도 랙 2개로 통합하는 과정을 진행 중이다. 다만 당분간은 보유 중인 서버를 개발 환경을 위해 계속 운영할 예정이다.
 
클라우드에서 운영 오버헤드가 줄어든 덕분에 엣시는 500명 이상으로 구성된 엔지니어링 팀의 15%를 “스택의 상위”로 보내 고객을 위한 사용자 환경 개선에 집중하도록 했다.
 
마이그레이션을 완료한 엣시는 현재 더 많은 부분을 검색 애플리케이션 및 컨테이너/쿠버네티스 사용과 같은 클라우드 네이티브 모델로 전환할 방안을 모색 중이다.
 

시간을 돌리면 바꾸고 싶은 점은?

마이그레이션을 적시에 마친 피셔는 시간을 되돌려 다시 마이그레이션을 진행할 수 있다면 다르게 하고 싶은 1가지가 있다고 강조했다. 피셔는 “무엇을 전환할지를 작업을 진행하면서 결정하지 말고 사전에 파악해야 한다는 것을 배웠다. 쿠버네티스 등을 다루는 작업에서 실험적 성격을 낮추고 더 계획적으로 움직였으면 좋았을 것”이라고 말했다.
 
다만 피셔도 이 말에 모순되는 부분이 있음을 인정했다. 무엇을 이전하고 무엇을 하지 말아야 할지는 그 과정을 진행한 이후에만 알 수 있기 때문이다. 그렇다면 다른 기업이 엣시의 경험에서 배울 수 있는 것은 무엇일까?
 
피셔는 “우리는 스스로의 역량을 알고 이를 어떻게 운영할지를 파악했으므로 이 방법은 엣시에만 국한된다”면서 “회사의 엔지니어링 문화가 여기에 신속하게 적응할 수 있는지가 관건이다. 지름길은 없다. 직접 하면서 알아 나가야 한다”고 말했다. editor@itworld.co.kr 


2020.03.09

구글 클라우드와 엣시의 클라우드 네이티브 전환 여정 2년

Scott Carey | InfoWorld
유명 온라인 마켓플레이스인 엣시(Etsy)가 2년에 걸쳐 2,000대의 온프레미스 서버를 구글 클라우드로 옮기는 과정을 최근 완료했다. 엣시 웹사이트와 모바일 앱은 수공예 틈새 상품 제작자를 위한 온라인 쇼핑 환경을 제공한다. 그러나 2018년에만 200만 개의 상품이 판매될 정도로 성장하면서 자체 운영하던 베어 메탈 인프라가 힘에 겨워 삐걱대기 시작했다.

엣시는 2005년에 설립된 업체다. 인터넷 환경은 충분히 갖춰진 시기였지만 퍼블릭 클라우드 서비스가 폭발적으로 성장하기 한참 천이다. 엣시는 2015년에 상장한 후, 막대한 비용이 드는 하드웨어 사전 구매 없이 서비스 확장을 도모하고 머신 러닝 기술을 더 효과적으로 활용하기 위해 클라우드 마이그레이션을 최우선 추진 과제로 지정했다.
 
그에 따라 2016년부터 퍼블릭 클라우드 시장을 탐색하기 시작했다. 업체 선택 과정에서는 경쟁업체보다 실무에 더 근접한 환경을 제공한 구글 클라우드가 유력한 업체로 부상했다. 엣시의 최고 기술 책임자인 마이크 피셔는 “구글은 회사에 방문해서 비즈니스와 우리가 처한 문제를 이해했으며 이 과정에서 영업 담당자만이 아니라 전담 엔지니어도 배정했다”고 말했다.
 

2년에 걸친 마이그레이션

두 회사는 2017년 12월 계약에 서명하고 2018년 초부터 마이그레이션 전략 수립에 착수했다. 목표는 2년 내에 모든 자산을 이전하는 것이었다.
 
구글 클라우드는 엣시의 브루클린 사무소 및 회사 슬랙 채널에 엔지니어를 상주시켰다. 프로젝트의 첫 단계는 마켓플레이스 웹사이트 애플리케이션 자체였는데, 이 애플리케이션은 웹사이트, 모바일 API, 웹 서버, API 서버, 그리고 수백 개의 MySQL 데이터베이스가 LAMP 스택 기반의 모놀리식 아키텍처로 구성된 형태였다.
 
마이그레이션의 전체적인 원칙은 큰 아키텍처 변화 없이, 가능한 최소한의 시스템을 마이그레이션하며 규정 준수를 유지하는 것이었다.
 
엣시의 최고 설계자인 키 고밴드는 작년 구글 클라우드 넥스트(Google Cloud Next) 연설 중 “코드를 다시 쓸 경우 프로젝트에 부가되는 위험이 너무 크다고 판단했다. 상당히 복잡하게 얽힌 레거시 코드베이스였기 때문”이라고 말했다. 
 
엣시는 원래 매년 8월이 되면 수백만 달러를 지출해 하드웨어를 구매했다. 쇼핑철을 맞아 사전에 용량을 확보하기 위해서였다. 엣시 팀은 8월에 핵심 마켓플레이스를 구글 클라우드로 옮겨 바쁜 쇼핑 시즌에 앞서 마켓플레이스의 대부분이 클라우드에서 실행되도록 하고, 동시에 쇼핑 시즌 하드웨어 투자 비용도 절감하고자 했다.
 
엔지니어들은 두 번째 시도 끝에 2018년 8월 19일, 아슬아슬하게 목표를 달성했다. 첫 번째 시도는 마이그레이션 중 일부 주요 오프라인 처리 시스템에서 메모리 고갈이 발생함에 따라 롤백했다.
 
엣시가 클라우드 네이티브 모델로 다시 설계한 핵심 워크로드는 검색이다. 엣시의 검색은 고도로 맞춤 구성된 아파치 솔라(Solr)와 루씬(Lucene) 버전에서 실행되는 자바 및 스칼라 애플리케이션이다.
 
피셔는 “가장 먼저 자체 데이터센터의 검색을 쿠버네티스로 마이그레이션했다. 문제는 컨테이너와 쿠버네티스로 이동하는 방법을 알아내는 것이 아니다. 그 부분은 외부에서 도와줄 사람을 불러들여 배우면 된다. 문제는 이것을 어떻게 운용 가능하게 하고 그 위에서 소프트웨어를 실행하느냐다”라고 말했다.
 
이 애플리케이션은 2019년 3월에 마이그레이션됐고 이어 4월에는 빅 데이터 저장소 마이그레이션에 이어 마지막으로 모니터링 등 나머지 지원 시스템이 마이그레이션됐다. 이 마지막 작업이 2020년 2월에 완료되면서 2년 내 마이그레이션 목표도 달성했다.
 
엣시는 프로젝트를 진행하기 위해 여러 부서를 포괄하는 마이그레이션 “분대”를 구성, 다른 기술적 기능의 중단을 최소화하면서 각 엣시 서비스의 마이그레이션에만 집중하도록 했다.
 
몇 개월 동안 엔지니어들이 모니터링 및 관찰할 대상, 각각의 대응 시점과 방법 등을 결정하는 사이 시스템의 가용성이 처음 엣시가 원했던 수준보다 낮게 나왔다. 피셔는 “그 부분이 어렵다. 운영 방법을 터득하는 것은 외부에 도움을 요청할 수 없는 영역”이라고 말했다.

엣시는 시스템의 기능 수준에 따라 가용성을 측정해 비율로 계산했다. 이 비율은 엣시 엔지니어들이 가상 머신 대신 쿠버네티스에서 검색 애플리케이션을 관리하는 방법을 터득하면서 다소 향상됐다.
 

내가 원하는 바로 그 인형 찾기

피셔는 엣시를 빙산에 비유해 설명한다. 대부분의 고객이 보는 것은 온라인 쇼핑몰이지만, 그 밑에는 5.5PB 용량의 데이터가 있다. 엣시는 사용자가 생성한 태깅에 의존해 작동하므로 방문자를 구매자로 전환해서 잡아 두려면 정교한 알고리즘과 검색 기능이 필요하다. 현재 구매의 80%가 검색 결과의 첫 페이지에서 이뤄지므로 정확한 검색 결과가 나오도록 하는 것이 무엇보다 중요하다.
 
현재 엣시 마켓플레이스에는 6,500만 가지 이상의 상품이 있으며 엣시의 데이터 과학자는 고객에게 딱 맞는 결과를 제공할 창의적인 방법을 끊임없이 찾는다. 이미지 인식 기술을 사용해서 스타일별로 상품을 분류하는 작업도 포함된다.
 
피셔는 “일반적으로 스타일은 하나의 범주로 한정되지만 드레스의 스타일을 탐지해서 예를 들어 양탄자에 적용하기는 어렵다. 이미지 인식을 사용하면 이 작업이 가능하다”고 말했다.
 
피셔는 “구글의 진정한 가치는 우리에게 꼭 필요한 빅데이터 및 머신러닝 같은 부가가치 서비스에 있다. 인프라에 투자한다면 그 인프라에 대해 정통한 회사와 파트너를 맺는 것이 당연하다”고 말했다.
 
구글의 인기 있는 머신 러닝 플랫폼인 텐서플로우(TensorFlow)가 좋은 예다. 구글 기술 프로그램 관리자인 대니 로젠은 작년 클라우드 넥스트 연설에서 “엣시에서 원하는 손뜨개 문어 인형을 정확히 찾기는 너무나 어려운 일이다. 머신 러닝이 해답”이라고 말했다.
 

데이터센터 폐쇄

전환 이후의 수치, 특히 크리스마스와 같은 쇼핑철의 수요에 대응하기 위한 확장 속도는 전략대로 만족스럽게 나타나고 있다.
 
피셔는 “클라우드에서는 수백 대의 서버를 몇 분만에 가동할 수 있다. 이전의 데이터센터에서 같은 컴퓨팅 용량을 확보하려면 몇 달 동안 예산을 짜고 계획하고 서버를 설치해야 했다”고 말했다.
 
엣시는 마이그레이션 이후 3곳의 데이터센터 중 2개를 이미 폐쇄했으며 마지막 하나도 랙 2개로 통합하는 과정을 진행 중이다. 다만 당분간은 보유 중인 서버를 개발 환경을 위해 계속 운영할 예정이다.
 
클라우드에서 운영 오버헤드가 줄어든 덕분에 엣시는 500명 이상으로 구성된 엔지니어링 팀의 15%를 “스택의 상위”로 보내 고객을 위한 사용자 환경 개선에 집중하도록 했다.
 
마이그레이션을 완료한 엣시는 현재 더 많은 부분을 검색 애플리케이션 및 컨테이너/쿠버네티스 사용과 같은 클라우드 네이티브 모델로 전환할 방안을 모색 중이다.
 

시간을 돌리면 바꾸고 싶은 점은?

마이그레이션을 적시에 마친 피셔는 시간을 되돌려 다시 마이그레이션을 진행할 수 있다면 다르게 하고 싶은 1가지가 있다고 강조했다. 피셔는 “무엇을 전환할지를 작업을 진행하면서 결정하지 말고 사전에 파악해야 한다는 것을 배웠다. 쿠버네티스 등을 다루는 작업에서 실험적 성격을 낮추고 더 계획적으로 움직였으면 좋았을 것”이라고 말했다.
 
다만 피셔도 이 말에 모순되는 부분이 있음을 인정했다. 무엇을 이전하고 무엇을 하지 말아야 할지는 그 과정을 진행한 이후에만 알 수 있기 때문이다. 그렇다면 다른 기업이 엣시의 경험에서 배울 수 있는 것은 무엇일까?
 
피셔는 “우리는 스스로의 역량을 알고 이를 어떻게 운영할지를 파악했으므로 이 방법은 엣시에만 국한된다”면서 “회사의 엔지니어링 문화가 여기에 신속하게 적응할 수 있는지가 관건이다. 지름길은 없다. 직접 하면서 알아 나가야 한다”고 말했다. editor@itworld.co.kr 


X