[마소 395호] 클라우드 서버리스로 실시간 검색어 분석하기

북마크 완료!

마이페이지의 ‘북마크한 기사’에서 읽으실 수 있습니다.

북마크한 기사 보러가기 close
입력 2019.02.15 06:00
소프트웨어 전문지 마이크로소프트웨어 395호는 데이터과학을 주제로 담았습니다. 데이터과학에 대한 개론, 학습 방법, 실무 적용 사례, 학계 등 마소 395호 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

데이터를 다루는 데 있어서 클라우드 도입은 비즈니스 성장에 크게 이바지할 수 있다. 비용 그리고 걸리는 시간의 관점에서 특히 두드러진다. 혹자는 이렇게 말한다. 직접 장비를 사서 빅데이터 플랫폼을 구성하는 게 장기적인 관점에서 비용 절약을 할 수 있다고 말이다. 하지만 이는 다른 요소를 간과했다. 하둡(Hadoop) 클러스터를 빅데이터 분석에 사용한다고 가정해보자. 직접 장비를 구매하는데 스펙을 정하는 기간, 장비 설치 공간, 장비 운영 인력, 클러스터 설치 및 유지보수 비용 등 많은 것이 함축돼 있다.

만약 클라우드를 도입하면 이 모든 과정을 2가지 비용으로 줄어들 수 있다. 사용 시간에 따른 과금 정책으로 통한 비용 절감, 그리고 모든 인력이 클라우드를 사용해 데이터 분석하는 인력 한 명으로 대체된다. 이와 같은 내용이 실제로 적용 가능한지에 대해서 경험을 공유하고 싶었다. 클라우드를 통해 얼마나 빠르게 그리고 클라우드의 특성을 적극적으로 도입하면 어떻게까지 표현되는지, 직관적인 예시가 있으면 주변 사람들을 설득하기 쉬울 테니까 말이다.

이 글에서는 AWS의 완전 관리형 서비스를 통해 빠르고 운영이 필요 없는 데이터 분석에 대한 내용을 다루려고 한다. 먼저 데이터 분석을 위해 수집할 데이터가 필요했다. 일상생활 속에서 매일 접하는 네이버와 다음 두 포털의 검색어를 수집하기 시작했다. 모으는 데이터는 1~10위까지의 검색어와 해당 검색어가 순위에 오른 시점 2가지를 조합했다. 그리고 빠르게 모든 과정을 진행하기 위해서 AWS의 서버리스 서비스를 도입했다.

클라우드 서버리스 서비스를 사용하는 이유는 클라우드가 물리 장비의 장벽을 없앴음에도 불구하고 클라우드 상에서 서버를 운영하면 반쪽짜리 효과가 나타난다. 서버 내에 사용하는 소프트웨어를 설정하고 각 서버의 네트워크를 엮어주는 과정이 상당히 많은 노하우가 필요하기 때문이다. 서버리스 서비스는 데이터 분석에 필요한 코드만 업로드하거나 데이터 분석에 필요한 프로세스를 콘솔 화면에서 클릭만 해주면 된다. 그렇게 데이터 분석을 실행하면 내부적으로 클러스터가 생성되고 분석이 완료되면 삭제된다. 그리고 동작한 시간만큼만 초 단위로 요금이 부과된다. 굳이 빅데이터 라이브러리나 프레임워크의 설치 및 설정 방법을 모르더라도 사용할 수 있다. 이는 관리할 인프라 없이 서비스를 운영하게 도와준다.

분석을 시작하기에 앞서서 사용할 서비스를 살펴보자. AWS에서 사용할 서비스는 클라우드와치(CloudWatch), 람다(Lambda), S3, 글루(Glue), 아테나(Athena) 그리고 퀵사이트(QuickSight) 등 총 5가지다. 데이터 분석에 필요한 아키텍처에서 한 부분씩 담당할 것이다.

클라우드와치는 말 그대로 클라우드에서 동작하는 시계로 람다를 주기적으로 호출한다. 또한, 클라우드 상에서 발생하는 로그를 쌓고 조회할 수 있다.

람다는 서버리스 서비스로 AWS에서 요구하는 함수 코드를 업로드하면 지정한 이벤트에 따라 호출되고, 함수 이벤트 파라미터를 사용해 특정 로직을 동작시킨다.

S3는 스토리지 서비스로 데이터를 99.999999999%의 신뢰성으로 저장한다. 모든 데이터는 S3에 저장한다고 생각해도 무방하다.

글루는 데이터 ETL(추출, 변환, 로드)을 지원하고 람다와 같은 서버리스 형태다. 다양한 데이터 형식(Avro, CSV, JSON, XML, Parquet)을 지원한다. 또한 데이터 소스(Redshift, RDS, JDBC)와 연결이 되기 때문에 데이터 분석에 필요한 많은 시간을 절약할 수 있다. 덧붙여 설명하자면, 데이터 분석에서 사용하는 시간의 90%가 분석 가능한 데이터로 변환하는 시간이다.

아테나는 표준 SQL을 사용해서 아마존 S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스다. 특징으로 이 또한 관리할 인프라가 없으며, 쿼리를 실행할 때 읽은 데이터만큼만 비용을 지급하면 된다.

퀵사이트는 관리형 BI(Business Intelligence) 서비스로 결과 데이터를 시각화하는 데 사용한다. 비슷한 BI 도구로는 태블로(Tableau), 슈퍼셋(Superset) 그리고 리대시(Redash) 등이 있다.

2018 하반기 이슈 키워드. / 마이크로소프트웨어 395호
2018년 하반기부터 데이터를 모았으니, 최종적으로 하반기에 가장 인기 많았던 검색어를 분석해보자. 직선 그래프로 표현된 것은 검색어 순위에 오른 횟수이고, 직사각형의 바는 가중치의 총합이다. 사람들이 관심 있어 하는 검색어들은 대부분 자극적인 이슈에 대한 내용이었다.

원래는 우리나라가 아름다운 내용을 좀 더 선호할지도 모른다고 생각해서 이런 그래프를 뽑았다. 많은 사람이 아름다운 내용은 따로 검색을 잘 하지 않는다는 것을 간과했다. 이슈처럼 궁금한 내용이나 문제가 될 법한 내용을 자세히 알기 위해서 검색하지 않았을까 싶다. 그리고 10위 안에는 들지 않았지만 조금 넘어가 보면 블랙프라이데이에 힘입어 다양한 쇼핑몰이 순위에 올랐다.

개발자가 데이터를 분석하는데 어떤 곳에 집중해야 할까? 말 그대로 데이터 분석에 집중해야 한다. 하지만 보통 데이터를 어떻게 다룰지와 사용할지에 대한 고민보다는, 데이터를 가공하고 원하는 포맷을 맞추고 운영하는 데 많은 시간을 할애하게 된다. 이것은 데이터 사이언티스트가 알아야 할 지식일 수는 있다. 그렇지만 배우는 시간은 최대한 줄여야 한다고 생각한다.

우리가 데이터 분석을 통해 얻고자 하는 게 무엇일까? 빅데이터 플랫폼을 구축하는 능력일까? 아니면 데이터를 빠르게 분석하고 비즈니스를 확장하는 능력일까? 전자는 빅데이터 플랫폼 개발자로서 성장하기 위해 필요하다.

개발자로서 성장하기 위해서는 다양한 아키텍처에서 각 요소를 파악해야 한다. 하지만 동료들과 다 같이 성장하고 비즈니스에 집중하기 위해선 당연히 후자가 데이터 사이언티스트가 필요한 이유라고 본다. 특히 스타트업처럼 적은 인원으로 최상의 결과를 가져오기 위해선 개발 시간을 최소화할 방법들을 적극적으로 도입해야 한다.

변규현 필자의 ‘클라우드 서버리스로 실시간 검색어 분석하기’에 대한 자세한 내용은 ‘마이크로소프트웨어 395호(https://www.imaso.co.kr/archives/4654)’에서 확인할 수 있다.


0
주요 뉴스
지금 주목할 뉴스