[기고] 마이크로서비스 아키텍처(MSA)로의 여정
상태바
[기고] 마이크로서비스 아키텍처(MSA)로의 여정
  • 석주원 기자
  • 승인 2021.04.12 14:05
  • 댓글 0
이 기사를 공유합니다

넷플릭스로 살펴보는 MSA 도입 사례

[글=노규남 | KINX CTO]
bardroh@kinx.net

하이브리드 클라우드는 왜 인기 있을까?

2006년 AWS가 상업용 클라우드 컴퓨팅 서비스를 출시한 이후로 클라우드는 피할 수 없는 대세가 됐다. IT 시장조사기관 가트너는 2020년 전 세계 클라우드 시장 규모를 2579억 달러로 추정했다. 이는 서버 시장의 규모(240억 달러)를 10배 이상 추월한 숫자다. 더욱이 향후 몇 년간 20% 가까운 성장률을 예상한다고 하니 그 규모는 더 빠르게 커질 것이다. 이 차이는 어찌 보면 당연하다. 서버는 단순히 고객에게 물리적인 하드웨어를 파는 것인데 반해 클라우드는 서버 외에도 오브젝트 스토리지, 관리형 DBMS(데이터베이스관리시스템), 애플리케이션 등 훨씬 넓은 범위의 서비스를 제공하기 때문이다.

기업들도 이제 서비스 인프라의 상당 부분을 클라우드로 이전했다. 신규 인프라 구축 시에도 당연히 클라우드를 전제로 시스템을 설계한다. 그럼에도 불구하고 여전히 고객의 자체 시스템으로 남아 있는 부분이 있는데, 그중 하나가 바로 DBMS이다. 그간 DBMS를 클라우드로 옮기고자 하는 시도가 없지는 않았다. 볼륨이 작은 서비스의 경우 DBMS를 클라우드로 이전하는 경우도 종종 있었다. 그러나 기업 대부분은 아직도 중요 DBMS를 이중화해 자체 구축한 온프레미스 환경에 두는 것이 일반적이다.

여기에는 여러 가지 이유가 있는데, 먼저 워크로드가 요구하는 고성능 DB를 퍼블릭 클라우드 서비스가 제공하기 어렵다는 점이다. 최근에는 이런 수요에 대응해 NVMe(비휘발성 메모리 익스프레스)를 스토리지로 사용하는 VM(가상머신)도 있지만 구성의 자유로움이나 비용을 생각하면 선뜻 택하기 어렵다. 또 막연하게 중요 자료를 외부 클라우드에 두는 것에 거부감을 갖기도 한다. 이 밖에 법적 규제로 인해 데이터 이전 자체가 불가능한 경우도 있다.

이러한 이유로 현재 가장 인기가 있는 클라우드 구성은 DBMS를 물리 서버에 두고 나머지 자원을 모두 클라우드에 두는 하이브리드 클라우드 형태다. 그리고 이런 분위기는 향후 몇 년간 쉽게 바뀌지 않을 것으로 보인다.

대형 DBMS 문제, 넷플릭스는 어떻게 해결했나

하지만 하이브리드 클라우드를 구성할 경우 DBMS를 직접 관리해야 하므로 단일 장애점(SPOF)이 발생할 수 있을 뿐만 아니라 서비스 확장에 따라 데이터베이스 관리자(DBA)의 부담도 증가한다. 물론 하드웨어 기술이 나날이 발전하므로 적절한 때 하드웨어를 교체해 성능을 지속 향상시키는 방법으로 스케일업(Scale-up)을 할 수는 있다. 그렇다 하더라도 중요 DBMS 하나에 수십 TB(테라바이트)의 데이터가 저장되어 있다면 장애 시 매우 큰 문제가 발생할 수 있다.

복구나 백업도 쉽지 않을 것이다. DB(데이터베이스) 구조 변경을 위해 전체 서비스를 중단시켜야 하며, DB 규모 증가에 따라 중단 시간도 점점 늘어나기 때문이다. 만약 랜섬웨어 공격이라도 당하면 그야말로 날벼락이다. 그럼에도 불구하고 DBMS가 너무 중요한 시스템이므로 직접 관리하겠다는 사람들은 여전히 줄지 않고 있다.

반면 세계적인 동영상 스트리밍 업체 넷플릭스는 접근 방식을 달리했다. 넷플릭스는 DBMS를 포함한 자사의 인터넷데이터센터(IDC) 인프라를 7년에 걸쳐 모두 클라우드로 이전했다. 말하자면 넷플릭스의 인프라는 하이브리드가 아닌 순수 클라우드로 구성되어 있는 것이다. 만약 하이브리드 구성을 채택해 DBMS를 로컬에 남겼다면 넷플릭스의 단일 DBMS는 어마어마한 규모가 되었을 것이다. 엄청난 데이터 입출력을 감당하기 위해 매우 뛰어난 성능의 스토리지를 사용하고도 DB 구조 변경을 위해 한 달에 하루 정도는 정기 점검으로 서비스를 중단하지 않을 수 없었을 것이다.

하지만 넷플릭스는 클라우드를 택했고, 현재 정기 점검이라는 이벤트 자체가 없다. 그러면서도 계속해 신규 서비스가 추가되고, 기존 서비스가 업데이트되며, 오류가 수정된다. 전체 DB의 크기를 정확히 알 수는 없지만 방대한 동영상 콘텐츠를 제공하는 서비스인 만큼 엄청난 규모일 것이라는 추측은 가능하다. 그런데도 동일 계정으로 한국과 미국에서 똑같이 서비스를 이용할 수 있다. 심지어 서비스 지연도 매우 적다. 어떻게 이런 서비스가 가능할까? 해답은 마이크로서비스 아키텍처(MSA) 구조와 넷플릭스의 스프링 클라우드(Spring Cloud) 프레임워크에 있다.

전체 기사를 보시려면 로그인 필요

로그인 또는 회원가입을 해주세요. (회원만 열람가능)

로그인 회원가입


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.