Tech for good

[빅데이터를 지탱하는 기술] 6. 빅데이터 분석 기반의 구축 - 클라우드 서비스에 의한 데이터 파이프라인 본문

IT/Data Science

[빅데이터를 지탱하는 기술] 6. 빅데이터 분석 기반의 구축 - 클라우드 서비스에 의한 데이터 파이프라인

Diana Kang 2021. 10. 4. 22:54

목차

6. 빅데이터 분석 기반의 구축

 

6.4. 클라우드 서비스에 의한 데이터 파이프라인

6.4.1. 데이터 분석과 클라우드 서비스의 관계

6.4.2. 아마존 웹 서비스(AWS)

6.4.3. 구글 클라우드 플랫폼(GCP)

 


 

6. 빅데이터 분석 기반의 구축

6.4. 클라우드 서비스에 의한 데이터 파이프라인

빅데이터를 위한 분산 시스템은 자신이 직접 구축, 유지, 보수하는 것이 아니라 클라우드 서비스를 사용하는 경우가 많아지고 있다. 이 절에서는 몇 가지 클라우스 서비스의 특징과 그 차이점에 대해 예를 들어 설명한다.

이 절에서는 다음의 클라우드 서비스에 의한 데이터 파이프라인에 대해서 설명한다.
- 아마존 웹 서비스(AWS)
- 구글 클라우드 플랫폼(GCP)

 

6.4.1. 데이터 분석과 클라우드 서비스의 관계

데이터 분석 기반을 구축할 때 오픈 소스 소프트웨어를 중심으로 하는 것보다 클라우드 서비스를 이용하는 경우가 점점 많아지고 있다. 도저히 데이터를 외부에 갖다 놓을 수 없다거나 자사에서 데이터 센터를 보유하고 있을 경우는 제외하고는 이젠 클라우드 없이 데이터를 살펴보는 일은 상상할 수 없다. 

빅데이터를 다루는데 필요한 시스템 자원은 매일 변동하며, 일시적으로 평소의 몇 배나 되는 처리 능력이 요구되는 경우도 꽤 있다. 예를 들어 장시간의 배치 처리 도중에 실패하여 다시 처음부터 재실행해야 하는 경우, 적어도 지연된 시간을 되찾으려면 보통 때보다 2배의 자원을 확보해야 하는 일도 있다. 그러기 위해서는 클라우드 서비스처럼 언제라도 자원을 증감할 수 있는 환경이 필요하다.

또는, 시스템을 관리하는 엔지니어가 없는 경우도 있다. 빅데이터의 처리에는 많은 기술이 관련되어 있기 때문에, 그 모든 것을 자신이 직접 유지, 보수하는 것이 아니라 그 분야의 전문가에게 맡기고 싶을 때도 있다. 

본래의 목적은 데이터를 살펴보는 데 있으므로, 클라우드 서비스를 활용해서 조금이라도 관리의 수고를 줄이자는 것이다.

빅데이터의 클라우드 서비스에서는 이 책에서 예로 든 기술이 처음부터 서비스 일부로 포함되어 있으므로 기본적으로는 이용자가 초시 설정하는 것만으로 끝나게 되어 있다. 물론, 그렇다고 해서 아무것도 안 해도 된다는 뜻은 아니다. 결국, 데이터 파이프라인 전체의 동작에 최종적으로 책임을 지는 것은 이용자다. 그렇기 때문에 각 기술의 역할을 이해하고 그것들을 올바르게 사용해야 한다. 

서비스에 따라서 제공 내용에도 차이가 있다. 하드웨어는 보수되지만, 그 위에서 동작하는 소프트웨어는 직접 관리해야 하는 경우도 있다. 또는, 반대로 어느 정도의 장애 대응과 확장성의 확보까지 서비스 일부로 제공되는 것도 있다. 후자는 '풀 매니지드 형(full managed)' 서비스라고 한다. 

그럼 이제 몇 가지 클라우드 서비스를 예로 들면서 이 책에서 설명한 각종 기술이 현실 세계에서 어떠한 형태로 사용되는지 설명한다.

 

6.4.2. 아마존 웹 서비스(AWS)

'아마존 웹 서비스(AWS)'는 2009년에 시작한 'Amazon Elastic MapReduce(EMR)'를 시작으로 빅데이터 분야에서 예전부터 이용되고 있는 클라우드 서비스다. AWS에서는 기능마다 서비스가 나누어져 있어 이용자는 거기서 자신에게 필요한 것만을 선택해 그것들을 서로 연결함으로써 시스템을 구축한다. 이 책에서 예로 든 각종 기술과 AWS 서비스와의 주요 관계를 표 6.2에 정리하였다.

 

특히 이용할 기회가 많은 'Amazon Redshift'는 데이터 웨어하우스를 위한 MPP 데이터베이스다. Redshift는 스토리지와 계산 노드가 일체화되어 있어 보존할 데이터양이 늘어나면 그것에 맞추어서 노드를 확장할 필요가 있다. 즉, 전통적인 데이터 웨어하우스 제품과 같은 구조여서 이용 빈도가 적은 데이터를 대량으로 보존해두는 데에는 그다지 적합하지 않다.

장기적인 데이터 보존에는 분산 스토리지인 'Amazon S3'를 이용할 수 있다. S3 상의 데이터는 기본적으로 COPY 명령에 의해 Redshift에 로드하는데, 'Redshift Spectrum'이라 불리는 기능을 이용하면, S3 상의 파일을 Redshift에서 직접 편집할 수 있다.

AWS의 특징은 서비스가 기능마다 세세히 나누어져 있어 조합의 자유도가 높지만, 전체를 제대로 연결하는 데는 어느 정도의 지식과 기술이 요구된다. 그림 6.7은 AWS 상에 데이터 파이프라인을 구축하는 한 예다. 여기서 굵은 화살표는 서비스 간의 데이터 흐름을 나타내는데, 이 하나하나에 대해서 이용자가 직접 초기 설정하거나 워크플로우 안에서 API를 호출할 필요가 있다. 그리고 거기서 발생한 문제에 대해서는 직접 해결해야 한다. 

 

 

이것은 '전체 구성을 직접 설계하고 싶다'는 엔지니어에게 있어서는 좋은 점이지만, '되도록 전문가에게 맡기고 싶다'는 사람에게는 너무 복잡한 경향이 있다. Redshift만 사용하는 간단한 구성이라면 문제가 될 일이 없지만, 복잡한 데이터 파이프라인을 구축하려면 충분한 준비가 필요하다. 일반적으로는 그 분야에 익숙한 엔지니어를 배치하거나 전문 업자 등에게 의뢰하는 경향이 있다.

 

6.4.3. 구글 클라우드 플랫폼(GCP)

'구글 클라우드 플랫폼(GCP)'은 전세계의 데이터를 날마다 처리하고 있는 구글의 소프트웨어와 기본 시설을 활용하여 대규모 데이터 처리를 실행할 수 있는 강점이 있다. 그중에서도 유명한 'Google BigQuery'는 2011년에 서비스를 개시하여 Amazon Redshift(2012년 개시)와 비교해도 긴 역사를 갖고 있다. 이 책에서 예로 든 각종 기술과 GCP 서비스의 주요 관계를 표 6.3에 정리하였다. 

BigQuery는 풀 매니지드 형의 데이터 웨어하우스 서비스이며, Amazon Redshift와는 달리 분산 스토리지와 쿼리 엔진이 분리된 아키텍처로 되어 있다. 

- Amazon Redshift와 Google BigQuery의 차이점
Amazon Redshift와 Google BigQuery는 데이터 웨어하우스를 위한 클라우드 서비스로 자주 비교된다. 하지만 이 둘의 내부 구조는 완전히 다르다.
그중에서도 가장 큰 차이점은 Redshift가 '전용 리소스(dedicated resource)'인 것에 비해, BigQuery는 '공유 리소스(shared resource)'라는 것이다(그림 C6.3). 

Redshift는 전통적인 MPP 데이터베이스의 흐름을 이어 왔기에 스토리지와 계산 노드가 일체화된 환경에서 효율적으로 쿼리를 실행하게 되어 있다.
자원이 전용이라 다른 사용자가 사용할 수 없기 때문에 성능이 안정적이다. 또한, 노드 수를 늘리면 스토리지 용량과 계산 능력이 모두 증가하므로, 데이터양에 대해 일정한 성능이 유지된다.
한편, BigQuery는 그 설게 사상으로 수천 대나 되는 하드 디스크에 데이터를 분산함으로써 고속화를 실현한다. 그것을 한 회사에서 전용으로 하는 것은 너무 많기 때문에 필연적으로 공유형의 시스템이 된다. 결과적으로 자신의 노드를 관리할 필요가 없는 풀 매니지드 형의 서비스가 된다. 

 

그림 C6.3. 전용 리소스(dedicated resource) vs 공유 리소스(shared resource)

이 특징은 가격 체계에도 반영되어 있으며, BigQuery에서는 쿼리를 실행하지 않는 한 스토리지 이외의 요금이 발생하지 않는다. BigQuery의 사양은 전통적인 데이터 웨어하우스 제품과는 많은 차이가 있으며, 표준적인 SQL에 대응한 것도 2016년이 되고 나서부터다. 

AWS와 마찬가지로 GCP에도 데이터 파이프라인을 구성하는 다수의 서비스가 제공된다(그림 6.8). 그중에서도 특징적인 것은 데이터 플로우의 방식을 서비스화한 'Google Cloud Dataflow'와 노트북을 서비스화한 'Google Cloud Datalab'이 아닐까 생각한다. 이것들 Spark나 주피터에 해당하는 서비스로 그것들을 모두 같은 데이터 센터에서 실행함으로써 고속 네트워크로 연결된 데이터 분석 환경의 구축을 기대할 수 있다. 

 

GCP에서 제공되는 서비스의 대부분은 원래 Google 자신의 데이터 처리를 위해 개발했던 구조가 기반이 되어 대규모의 데이터 처리에 사용된 적이 있다. 특히, 애드 혹 데이터 분석과 처리 속도에 대한 요구가 큰 데이터 엔지니어 및 데이터 과학자에게는 유력한 선택지가 될 것이다.