하드웨어 관점에서 봤을 때, 데이터 분석 시스템은 다음과 같은 세 가지 구성요소로 이루어져 있다.
- 연산을 수행하는 프로세서
- 처리의 대상이 되는 데이터를 저장할 저장장치
- 그리고 이 둘 사이에 데이터를 전송하는 전송 시스템
당연히 전체 데이터 분석 시스템의 성능을 저하하는 병목(bottleneck)은 이 중에서 가장 느린 구성요소이다. 현재 사용되는 폰 노이만 컴퓨터 시스템에서의 병목은 단연 저장장치이다. 더 정확히 이야기하자면 대용량 저장장치로 사용되는 하드디스크 시스템이 전체 시스템의 성능을 저하하는 병목이 되었다.
인메모리 컴퓨팅: 개념
이러한 병목 현상을 극복하기 위해서 오랫동안 사용되고 발전된 방법은 캐시—메모리—하드디스크로 구성되는 메모리 계층 구조를 사용하는 것이었다.
하지만 무어의 법칙[footnote]무어의 법칙(영어: Moore’s law)은 반도체 집적회로의 성능이 24개월마다 2배로 증가한다는 법칙이다. 경험적인 관찰에 바탕을 두고 있다. 인텔의 공동 설립자인 고든 무어가 1965년에 내 놓은 것이다. (출처: 위키백과 ‘무어의 법칙’에서 발췌)[/footnote]에 따라 CPU의 성능이 급격하게 발전하여 CPU와 하드디스크의 속도 차이가 점점 증가하고, 인공지능이나 빅데이터, 사물인터넷 같은 새로운 기술의 발전에 따라 IT 시스템이 처리해야 할 데이터 양이 기존의 캐시 시스템으로 지원하기에는 너무 급속하게 증가함에 따라 다른 방법으로 이런 폰 노이만 병목을 해결해야 할 필요성이 급격하게 증대되었고, 이런 필요성을 해결하기 위해 인메모리 컴퓨팅(In-Memory Computing)이 자연스럽게 제안되었다.
간단히 말하자면, 인메모리 컴퓨팅은 기존의 디스크 기반 컴퓨팅과는 달리 데이터를 하드디스크에 저장하고 관리하는 것이 아니라, 전체 데이터를 메모리에 적재하여 사용하는 것을 의미한다. 조금 더 기술적인 정의는 컴퓨팅 시스템의 공식 기록 시스템(system of record)으로 하드디스크를 사용하는 것이 아니라 메모리를 사용하는 것이라 할 수 있다. 기존 디스크 기반 컴퓨팅에서는 데이터를 하드디스크에 보관·처리 하고, 빈번하게 사용되는 일부 데이터를 메모리에 캐싱하는 구조라고 하면, 인메모리 컴퓨팅은 데이터를 메모리에 보관·처리하고 하드디스크를 데이터의 안전한 보관(stash)하기 위해 사용하는 구조다.
인메모리 컴퓨팅: 역사
인메모리 컴퓨팅의 시초는 앞서 언급한 바와 같이 메모리 계층 구조에서의 캐싱 시스템이다. 1985년경 사용되기 시작하였고, 가장 빈번하게 사용되는 데이터를 하드디스크에서 메모리로 옮겨서 전체 시스템의 처리 속도를 향상시키는 방법이지만, 당시의 16비트나 32비트 컴퓨터에서는 최대 4GB 정도의 RAM을 지원할 수 있었기 때문에 효율적으로 처리할 수 있는 데이터 크기에 제한이 있었다.
그 다음 단계는 당연히 분산 캐싱이다. 하나의 컴퓨터로 부족하다면 여러 개의 컴퓨터를 연결하여 더 많은 용량의 메모리를 캐시로 사용할 수 있도록 하는 것이다. 1995년 후 나타나기 시작한 분산 캐싱은 클러스터링(clustering)이나 분산컴퓨팅과 같은 기술들과 함께 발전하기 시작했다.
2005년 이후 복수의 컴퓨터를 연결하여 메모리를 통합 관리하는 기술이 발전함에 따라 자연스럽게 인메모리 데이터 그리드(In Memory Data Grid)나 인메모리 데이터베이스와 같은 기술로 발전하였다. 현재 주요 클라우드 서비스 업체들에서 제공하는 인메모리 컴퓨팅 서비스는 대부분 인메모리 데이터 그리드나 인메모리 데이터베이스 수준에 머물러 있으나, 인메모리 컴퓨팅 전문 업체들은 인메모리 데이터 그리드와 인메모리 데이터베이스는 물론 스트리밍 엔진, 기계학습, 분산처리, SQL 등의 기능을 통합한 인메모리 컴퓨팅 플랫폼을 제공하고 있다.
인메모리 데이터베이스 vs. 인메모리 데이터 그리드
인메모리 데이터베이스는 이름에서 알 수 있듯이 하드디스크나 SSD에 데이터를 저장하는 데이터베이스와는 달리 주로 메모리에 데이터를 저장하는 데이터베이스를 의미한다. 하드디스크에 비해 메모리의 접근 속도가 1,000배 정도 빠르므로 실시간 광고 경매와 같이 수십에서 수백 msec의 반응 속도가 요구되는 경우나, 기존의 디스크 기반 데이터베이스의 전 단계(front-end)로서 활용되기도 한다.
인메모리 데이터 그리드(IMDG)는 각각의 메모리를 공유하여 클러스터에서 동작하는 모든 애플리케이션들이 함께 사용할 수 있도록 하는 컴퓨터 클러스터를 의미한다. 하나의 컴퓨터 서버에서 제공할 수 있는 메모리보다 많은 메모리를 필요로 하는 대규모 애플리케이션들을 지원하기 위해 사용된다.
클러스터에 있는 각 컴퓨터는 각자의 메모리에 있는 데이터와 데이터구조에 대한 뷰(view)를 가지고 있지만, 이 뷰는 전체 클러스터에 공유된다. 따라서 하나의 애플리케이션을 클러스터에 있는 모든 컴퓨터에서 각 컴퓨터가 자신의 메모리에 가지고 있는 데이터에 대해 병렬 처리함으로써 메모리의 속도에 따른 성능향상은 물론 병렬처리에 따른 성능향상까지 가능하게 된다.
하이브리드 트랜잭션/분석 처리
인메모리 컴퓨팅의 사용처는 다양하지만, 가장 관심을 받는 분야 중의 하나는 하이브리드 트랜잭션/분석 처리(Hybrid Transaction/Analytic Processing, HTAP)다. 지금까지의 디스크 기반 IT 시스템에서는 기관의 일상적인 운영에 필요한 온라인 트랜잭션 처리(Online Transaction Processing, OLTP) 시스템과 데이터 분석을 위한 온라인 분석 처리(Online Analytical Processing, OLAP) 시스템은 엄격하게 구분되었다.
특정 데이터에 대한 빠른 접근과 빈번한 업데이트를 지원해야 하는 OLTP 시스템에서 방대한 데이터에 대한 접근이 필요한 OLAP 프로세스를 수행할 경우, 기관의 운영에 필요한 OLTP 시스템의 성능저하가 발생하기 때문이다. 따라서 기존 구조에서는 기관의 운영에 필요한 OLTP가 수행되는 운영 데이터베이스(Operational Database)를 분석에 사용할 별도의 데이터웨어하우스(Data Warehouse) 데이터베이스로 복사하고, 데이터웨어하우스에서 OLAP를 수행하였다.
데이터베이스를 복사/전송하는 과정에는 시간이 소요되고, 데이터양이 방대할수록 더 많은 시간이 소요되기 때문에, 데이터 분석은 필연적으로 이미 시간이 지난(stale) 데이터를 기준으로 이루어지게 된다.
하지만 이미 위에서 보인 바와 같이 인메모리 컴퓨팅은 동일한 인메모리 데이터베이스 상에서 OLTP와 OLAP를 성능저하 없이 수행할 수 있도록 지원한다. 이는 가장 최신의 데이터를 대상으로 데이터 분석을 가능하게 하여 이전보다 훨씬 정확하고 다양한 데이터 분석이 가능하게 한다.
클라우드 인메모리 컴퓨팅 솔루션
인메모리 데이터베이스 시스템 소프트웨어는 상당수 데이터베이스 업체들에서 제공하고 있지만, 클라우드 사업자들이 제공하는 솔루션을 중심으로 살펴보고자 한다.
1. 아마존웹서비스의 아마존 일래스티캐쉬(ElastiCache)
오픈소스인 레디스(Redis)와 멤캐쉬드(Memcached)와 호환되는 서비스를 제공한다. 일래스티캐쉬는 매니지스 서비스로 동일한 가상 프라이빗 클라우드(Virtual Private Cloud, VPC)에 있는 리소스만 일래스티캐쉬에 접속이 가능하며 최대 6.1 TB의 메모리까지 확장 가능하다.
2. 마이크로소프트 애저
애저 SQL 데이터베이스 프리미엄과 비즈니스 크리티컬(Business Critical) 티어 사용자들에게 OLAP, OLTP, HTAP용 인메모리 데이터베이스를 제공한다. 또한, 2019년 11월부터는 오픈소스인 아파치 이그나이트(Apache Ignite) 기반의 그리드게인 시스템스(GridGain Systems)의 그리드게인 인메모리 컴퓨팅 플랫폼을 애저 마켓플레이스에서 제공한다.
3. 구글 클라우드의 구글 메모리스토어(Memorystore)
레디스 호환 매니지드 서비스를 제공한다. 2020년 2월 11일부터 기가스페이스(GigaSpace)의 기가스페이스 인사이트엣지(InsightEdge) 인메모리 분석 플랫폼을 매니지드 서비스로 제공하고 있다.
4. 오라클 클라우드
자체 솔루션인 오라클 데이터베이스 인메모리를 지원함은 물론이고, 마이크로소프트 애저와 마찬가지로 그리드게인(GridGain) 인메모리 컴퓨팅 플랫폼을 오라클 클라우드 마켓플레이스에서 제공한다.
5. 아이비엠(IBM) 클라우드
SAP HANA(High Performance Analytic Appliance)를 지원하며, 헤이즐캐스트(Hazelcast)의 인메모리 데이터 그리드(IMDG) 플랫폼을 아이비엠 클라우드 마켓플레이스에서 제공한다.
아직 초기, 하지만 비중 확대할 것
인메모리 컴퓨팅은 기존 디스크 기반 컴퓨팅의 폰 노이만 병목의 해소를 통해서 상당한 성능 향상을 제공할 수 있는 기술이며, 이미 시장에 다양한 솔루션들이 제공되고 있다. 하지만 아직 주요 진정한 클라우드 서비스 사업자들의 채택은 초기 단계로 보인다. 이는 메모리 공유를 통한 성능 향상이 멀티테넌트(multi- tenant) 구조에서는 극복하기 어려운 보안 문제를 야기하는 것이 가장 큰 장애물로 판단된다.
장기적으로는 이미 언급한 보안 문제와 초기 도입 장벽을 낮추는 등의 문제 해결을 전제로 클라우드 서비스의 장점을 극대화할 수 있는 기술로서 점차 그 비중이 확대될 것으로 기대된다.
[divide style=”2″]
[box type=”note”]
본 글은 한국정보화진흥원의 지원을 받아 작성되었으며, 클라우드스토어 씨앗 이슈리포트에 동시 게재합니다.
[/box]