[IT에 한 걸음 더 다가가기] IT 미래를 혁신할 오픈소스SW, 그것이 알고 싶다! (3편)

1

제1편  “오픈소스SW 이해” [관려기사 바로가기 : IT 미래를 혁신할 오픈소스SW, 그것이 알고싶다! (1편)] 에서 오픈소스SW에 대한 기본적인 소개를 했고, 제2편 “기업의 인프라로 진화하고 있는 오픈소스SW” [관련기사 바로가기 : IT 미래를 혁신할 오픈소스SW, 그것이 알고싶다! (2편)]에서는 기업에서 어떤 오픈소스SW를 활용하는지, 앞으로 오픈소스SW로 인해 기업의 IT 인프라는 어떻게 바뀔 것인지, 기업에서는 무엇을 준비해야 하는지에 대해 소개했습니다.

오늘 소개할 제3편 “기업의 핵심 데이터를 책임지는 오픈소스 DBMS 기술”은 기업에서 가장 중요한 데이터와 그 데이터를 관리하는 오픈소스 DBMS 기술에 대한 내용입니다. 최근 기업에서 많이 사용하고 있는 오픈소스 DBMS인 PostgreSQL/PPAS, MariaDB/MySQL, 빅데이터 처리를 위한 NoSQL DBMS인 MongoDB와,상용 DBMS를 오픈소스 DBMS로 전환하기 위한 방법, 그리고 앞으로 오픈소스 DBMS가 어떻게 발전할 것인지에 대해 소개하겠습니다.

1: 오픈소스SW 이해

2: 기업의 인프라로 진화하고 있는 오픈소스SW

제3편: 기업의 핵심 데이터를 책임지는 오픈소스 DBMS 기술

제4편: 기하급수적으로 늘어나는 빅데이터 분석을 위한 오픈소스SW 기술

제5편: 오픈소스SW 차세대 트렌드

2
3

측정할 수 없다면 관리할 수 없다. 

피터 드러커(Peter Drucker)

측정 가능한 모든 것을 측정하라, 

그리고 측정이 힘든 모든 것을 측정 가능하게 만들어라.”

에드워드 데밍(Edwards Deming)

세계적인 석학들이 데이터 관리의 중요성에 대해 강조한 말입니다.

 

과거에는 시장의 변화가 급격하지 않았고 기업 경영에서도 데이터의 중요성을 크게 강조하지는 않았습니다. 데이터는 경영 성과 관리나 내부 프로세스 효율화를 위해 활용되는 수준이었습니다. 그러나 현재는Mobile, SNS, Cloud, BigData, IoT 등 새로운 서비스, 새로운 패러다임이 눈 깜짝할 사이에 생겨나고 이에 적응하지 못하는 기업들은 경쟁에서 뒤처졌습니다. 100년 기업 코닥, 전자 업계의 최강자 소니, 13년 휴대전화 업체 세계 1위 노키아같이 위대했던 기업들도 지금은 선두 자리를 빼앗겼습니다. 고객들의 생각, 시장의 움직임을 분석하여 경영자가 빠르게 의사 결정할 수 있도록 하는 것이 기업의 생존에 중요한 시기입니다.

선진 기업일수록 데이터를 중요하게 생각하고 관리합니다.  IT 시스템인 HW, SW에서 발생하는 로그들을 활용하여 실시간 모니터링, 장애 분석, HW 교체 주기 등을 예측하고, 기업의 가장 중요한 자산인 직원들의 업무 데이터를 기반으로 중복 업무, 업무 처리 유형, 인당 업무 효율성 등을 파악하여 적재적소에 인력을 배치하기 위한 자료로 활용합니다. 또한 고객의 접속, 사용 패턴 데이터를 기반으로 마케팅 및 새로운 서비스 전략 등을 수립합니다. 이처럼 기업에서는 발생하는 다양한 데이터를 관리하고 분석하여 경영에 활용하고 있습니다.

앞으로 기업의 핵심인 데이터의 가치는 증가할 것입니다. 이를 관리하는 DBMS 기술 역시 기업의 핵심 인프라로 중요성이 더 증가할 것입니다.

 

4

국내 기업에서 많이 사용하는 데이터베이스는 Oracle, Microsoft SQL Server, DB2 등의 상용 DBMS입니다. DB-engines라는 DBMS 인기도 조사 사이트에 의하면 시장에서 인기 있는 오픈소스 DBMS는 MySQL, PostgreSQL 그리고 NoSQL DBMS인 MongoDB입니다.  5

▲ DB-engines Database 순위

 

* Database의 순위를 부여하는 방법

웹사이트 언급 수, Google Trend의 검색 빈도, 기술적 질의응답 참조, 구인 사이트 참조, Linkedin 개인 신상에서 언급된 내용, Twitter의 tweets을 활용하여 매월 순위 산정

6  7 8

 

MariaDB는 MySQL과 동일한 소스 코드를 기반으로 만들어져 MySQL과 사용방법과 구조가 동일한 오픈소스 DBMS입니다.

MySQL의 창업자인 마이클 몬티 와이드니어스(Michael Monty Widenius)는 MySQL AB社를 인수한 Sun Microsystems가 Oracle에 인수되면서 개발 지침 등에 대한 의견의 차이로 2009년 Monty Program AB社를 설립하고 MariaDB개발하였습니다.

Monty Program AB社는 MariaDB가 MySQL과 높은 호환성을 유지하고, APIs를 사용하고, 라이브러리 바이너리를 동일하게 유지하여 MySQL을 MariaDB로 쉽게 전환을 할 수 있도록 관리하고 있으며, 배포자는Monty Program AB와 저작권을 공유해야 합니다.

MySQL이 Oracle에 인수된 이후, 상용 서비스를 하는 기업에서는 MySQL 라이선스를 구매해야 하기 때문에 MySQL을 오픈소스 DBMS로 인식하지 않습니다. 기업에서는 상용 DBMS 업체의 종속성을 낮추기 위해 오픈소스 DBMS를 사용하였는데 MySQL의 인수자가 업계 1위의 Oracle이니 여전히 Oracle 종속성이 남아있고, 라이선스 비용까지 지불하니, 최근에는 MariaDB나 PostgreSQL 같은 오픈소스 DBMS를 많이 적용하고 있습니다.

 

7  9 10

PostgreSQL(포스트그레스큐엘)은 캘리포니아대학교 버클리 분교에서 1975년 마이클 스톤브레이커(Michael Stonebraker)의 Ingres 프로젝트로부터 시작되었습니다. 1986년 오픈소스 Postgres 프로젝트를 착수하였고, 1996년 PostgreSQL로 명칭을 변경하였습니다. 2004년부터 EnterpriseDB社에서 PostgreSQL의 성능, 편의성, 보안 기능을 개선하여 PPAS(Postgres Plus Advanced Server)라는 이름으로 “상용 오픈소스DBMS” 제품을 출시하였습니다.

img1

▲ PostgreSQL/PPAS History

PPAS는 PostgreSQL의 엔진을 수정하여 Oracle 문법, PL/SQL 등의 대부분을 지원하고 Oracle DBMS를 사용하던 개발자나 DBA가 부담 없이 사용할 수 있어 Oracle 전환을 위한 대안으로 사용되고 있습니다. PPAS는 SONY, NTT, IBM, KT 등과 전략적 제휴관계를 맺고 있고 Google, Dell, HP 등 전세계 2000개 이상의 고객들이 사용하고 있습니다. 국내의 경우 2010년 KT가 사내 시스템 표준 DBMS로 선정 후 120개 이상의 시스템을 전환하였고, 다음, 삼성, LG, 포스코 등의 대기업에서 Oracle 전환을 통한 원가 절감을 위해 사용하고 있습니다.

 

811

오픈소스SW인 MongoDB는 10gen社(현재의 MongoDB 社)가 2009년 개발한 Document-oriented database로 JSON(Java Script Object Notation)의 2진 버전인 BSON(Binary JSON)을 사용하여 스키마를 고정하지 않고 데이터를 Document라는 단위를 사용하여 구조화하여 저장하고 조회하는 가장 인기 있는NoSQL DBMS입니다.

NoSQL DBMS는 우리가 많이 사용하는 Facebook, Twitter, Linkedin, Amazon 등의 서비스에서 사진이나 메시지들을 저장할 때, 많은 사람들이 동시에 웹 쇼핑몰에 접속했을 때, 선호하는 상품을 실시간으로 추천해 줄 때, 시스템 접속 로그 저장 등에 사용합니다. NoSQL DBMS는 단순 검색 및 추가 작업에 있어서 매우 최적화된 키값 저장 기법을 사용하여 응답속도나 처리 효율 등에 있어서 뛰어난 성능을 나타냅니다.

최근 기업에서는 서버 상태로그, CPU 사용량, DB 쿼리 이력, 접속 이력 등 데이터의 양은 많고 간단한 구조이면서 자주 보지는 않지만 문제가 생겼을 때 원인 분석 및 추적 등을 위해 꼭 필요한 데이터 저장을 위해 많이 활용하고 있습니다.

MariaDB, PostgreSQL, MongoDB와 같은 오픈소스 DBMS의 기능, 성능, 안정성이 확보되면서 기업에서는 원가절감 및 상용 DBMS 업체의 종속성을 낮추기 위해 오픈소스 DBMS를 아주 매력적인 대안으로 보고 있습니다. 그래서 최근에는 기업에서도 오픈소스 DBMS를 활용하여 신규 시스템을 구축하거나, 기존 상용DBMS를 오픈소스 DBMS로 전환하는데 적극적입니다.

 

11

신규 시스템을 구축할 때는 상용 DBMS를 사용하건, 오픈소스 DBMS를 적용하건 큰 문제가 되지 않습니다.개발자, 운영자가 합의만 되면 DBMS의 선택은 자유로운 편입니다. 대부분의 개발자나 운영자는 지금까지는 상용 DBMS에 익숙하기 때문에 오픈소스 DBMS를 사용하는 것을 두려워하지만, DBMS에서 지원하는 문법이나 애플리케이션과 연동하는 방식 등이 유사하기에 크게 문제가 되지 않습니다.

문제는 기업에서 원가 절감이나 DBMS 다원화를 위해 기존에 사용하던 상용 DBMS를 오픈소스 DBMS로 전환하는 부분입니다. 기존 시스템을 새로운 시스템으로 전환하기 위해서는 많은 고려 사항이 필요합니다.최근 오픈소스 DBMS에 대한 관심이 높아지면서 오픈소스 DBMS로 전환을 많이 하고 있는데 전환을 위한 방법 및 준비사항에 대해 소개해 드리겠습니다.

12

▲ 전환절차

상용 DBMS를 오픈소스 DBMS로 전환하는 절차는 크게 네 단계로 구분할 수 있습니다.

첫 번째는 전환 대상이 되는 시스템을 분석하고, 전환 전략을 수립하여 전환을 위한 환경을 준비하는 전환 분석 단계입니다. 두 번째는 상용 DBMS의 데이터를 전환을 위해 스키마를 전환하고, 실 데이터를 전환하는 Data 전환 단계입니다. 세 번째는 애플리케이션이 어떻게 개발되었는지를 확인하고 필요 시 애플리케이션을 수정하고 변경된 애플리케이션을 활용하여 전환된 데이터의 무결성 여부를 확인하고 성능이 낮아진 애플리케이션 등에 대해 튜닝하는 애플리케이션을 전환 단계입니다. 마지막으로 실 운영에서 사용할 수 있도록 가용성, 안정성 테스트 등을 통해 안정화를 시키고 실 운영으로 넘기는 운영 이관 단계가 있어야 합니다.

상용 DBMS를 오픈소스로 전환하기 위한 간단한 절차를 소개했는데, 실제 전환 시에는 자동화된 솔루션들을 통해 수작업으로 인한 오류를 최소화하고 전환 시간 단축을 위한 자동화된 프로그램들이 필요합니다.

 

13

▲ 오픈소스 DBMS 전환 시 필요한 프로그램

SQL 호환성 검증은 전환의 시작 단계로, 상용 DBMS의 Query에 대해 오픈소스 DBMS로 전환 시 문법적으로 문제가 되지 않는지, 호환되는 비율은 얼마나 되는지를 분석 단계에서 상용 DBMS의 Query만으로 파악하여 전환에 필요한 공수, 시간 등을 예측합니다.

14

▲ SQL 호환성 검사 툴 실행 결과

Query 호환성 검사 이후에는 상용 DBMS에서는 잘 돌아가지만 오픈소스 DBMS에서는 수정이 필요한 비 호환 Query에 대한 전환 가이드가 필요합니다. DBMS마다 성능 및 사용 편의성 등을 높이기 위해 자체적으로 만든 문법이 있는데 서로 다른 데이터베이스에서는 이를 인식하지 못하는 경우가 많기 때문에 개발자,운영자를 위해 전환하고자 하는 DBMS 별로 문서나, 웹을 통해 가이드를 제공해야 합니다.

 

15

▲ 상용 DBMS를 오픈소스 DBMS로 전환하기 위한 웹 가이드

DB 전환 단계에서는 Database의 Schema와 Data를 자동으로 전환하는 프로그램, 실 데이터 기반 테스트를 위해 운영 장비의 데이터를 개발 장비로 동기화해주는 프로그램 등이 필요합니다.

Application 전환 단계에서는 애플리케이션에서 사용하는 Query를 오픈소스 DBMS에서 사용하는 Query로 자동으로 변환해주고, 변환된 Query로 실행된 애플리케이션이 기능 및 성능에 문제가 없는지 검증을 해야 합니다.

운영 이관 단계에서는 오픈소스 DBMS의 파라미터를 자동으로 튜닝하고 이관된 데이터는 문제가 없는지의 검증 후, 운영에 적용하여 문제 발생 여부에 대해 지속적으로 모니터링할 프로그램이 필요합니다.

전환에 필요한 프로그램은 일부는 오픈소스 DBMS에서 제공하고, 일부는 자체 개발해야 합니다. DBMS 성능 모니터링 프로그램과 같은 경우는 오픈소스 SW 또는 상용 SW를 업무의 중요도에 따라 선택적으로 사용하고 있습니다.

 

16

Global IT Research 기관인 Gartner에서 정기적으로 주요 IT영역에 대해 “Magic Quadrant”라는 SW제품에 대한 현황 보고서를 발간하고 있는데, 실행력(Ability to Execution)과 Vision(Completeness of Vision)의 양 축으로 주요 DBMS 업체들을 평가하고 있습니다. 이 보고서에서 볼 수 있듯이 상용 DBMS인 Oracle, Microsoft, SAP, IBM이 Top Leader로 자리 잡고 있고 오픈소스 DBMS들인 EnterpriseDB(PostgreSQL Plus Advanced Server), MariaDB, MongoDB가 다음으로 위치하여 상용 DBMS를 위협하고 있습니다.

17

▲ Gartner Magic Quadrant 2014

오픈소스SW, 오픈소스 DBMS를 많이 사용하는 클라우드서비스, 모바일 시장에서의 안드로이드, IoT, 무료SNS 서비스 등을 중심으로 오픈소스를 사용하는 문화가 자연스럽게 형성되고 있습니다. 국내 기업에서는 오픈소스 DBMS 적용의 초기 단계이기 때문에 장애 등의 문제 발생 시 비즈니스의 영향도가 낮은 내부 시스템 위주로 적용하고 있고 중요도가 높은 자체 개발 솔루션/서비스, 고객사 시스템으로 적용이 확산되고 있습니다.

앞으로 오픈소스 DBMS의 안정성, 성능, 기능이 상용 DBMS와 기능과 거의 같은 수준이 되는 시점이 수년 내에 도래할 것입니다. 이로 인해 상용SW의 가격도 많이 내려갈 듯합니다. 오픈소스SW와의 경쟁 우위를 점하기 위해 상용SW는 관리의 편의성을 제고할 수 있는 부분에서 경쟁력을 찾으려 더욱 노력할 듯합니다.삼성의 갤럭시 시리즈, 애플의 iPhone 등도 초기에는 우수한 기능, 성능으로 다른 휴대폰 제조사와 차별화되었지만 지금은 디자인과 콘텐츠의 차이만 있을 뿐 기능, 성능 및 HW는 거의 차이가 없는 상태가 되었습니다. 앞으로의 DBMS 시장도 모바일 스마트폰 시장과 유사하리라 생각합니다. 기능과 성능에서는 서로 차이가 크지 않은 상태로 진화 발전할 것이고 기업 시스템과 얼마나 유기적으로 결합이 가능하냐에 따라 상용이냐, 오픈소스냐를 선택할 듯합니다. 개인적으로는 기업에서 오픈소스 DBMS의 적용은 지금의 상용DBMS를 사용하는 것처럼 자연스러워질 것이라 생각합니다.

기존 RDBMS 시장을 대체하는 오픈소스 DBMS인 PostgreSQL, MariaDB, MongoDB 기술에 대한 소개, 상용DBMS를 오픈소스 DBMS로 전환하기 위한 기업의 노력 및 오픈소스 DBMS의 발전 방향에 대한 “기업의 핵심 데이터를 책임지는 오픈소스 DBMS 기술” 소개는 여기까지입니다. 다음 편에서는 기하급수적으로 증가하는 기업의 빅데이터를 처리하기 위한 기술과 그와 관련된 eco-system에 대해 소개하겠습니다.  4편 “기하급수적으로 늘어나는 빅데이터 분석을 위한 오픈소스SW 기술“에서 다시 뵙겠습니다.

 

<참고자료>

http://www.oss.kr/, 공개SW포털, 정보통신산업연구원

http://db-engines.com/en/ranking, DB 엔진 랭킹 사이트

http://ko.wikipedia.org/, 위키피디아

http://www.ictstory.com/876, NoSQL이란?, 노구율

http://www.gartner.com/home, 가트너

 

 

18
공유하기