본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

이제는 리눅스 기반 SQL 서버를 준비할 시점

OSS 게시글 작성 시각 2017-01-13 06:53:32 게시글 조회수 4264

2017년 1월 12일 (목)

ⓒ CIO Korea, Mary Branscombe | CIO



리눅스 상에서 구동되는 SQL 서버를 검토해야 할 이유가 분명해지고 있다. 개별 프로젝트에 적합한 운영체제를 선택할 수 있게 됐다는 의미다.


Credit: Microsoft

SQL 서버를 리눅스에서 돌릴 수 있도록 한 마이크로소프트의 조치는 개발 플랫폼 종속성을 해소해줄 수 있다. 마이크로소프트 데이터베이스 시스템 그룹의 로한 쿠마르 제너럴 매니저는 리눅스 기반 SQL 서버가 윈도우 상품군의 일부로 제한되지 않을 것이라고 최근 진행한 CIO닷컴과의 인터뷰에서 강조했다.

그는 "동일한 SQL 서버 제품이다. SQL 서버 제품을 선택에 따라 윈도우와 리눅스로 적용하는 것일 뿐이다"라고 설명했다.

그의 발언이 의미하는 바는 리눅스에서 구동되는 SQL 서버도 가용성 그룹과 액티브 디렉토리 인증(Active Directory Authentication)에서 동적 데이터 마스킹, 행 수준 보안, 투명한 데이터 암호화까지 SQL 서버의 주요 기능을 고스란히 누릴 수 있다는 것이다. 여기에 스트레치 데이터베이스와 상시 암호화 옵션 같은 애저 통합 기능이 추가된다.

쿠마르는 첫 리눅스 기반 SQL 서버 릴리스에는 빠지는 기능이 있을 수 있다면서도, "장기적으로는 동일한 데이터베이스가 될 것이다. 스트레치 데이터베이스, 백업, 복제 등 무엇이든 지원한다"라고 말했다.

즉 리눅스 기반 SQL 서버와 윈도우 서버의 차이점은 운영 체제 자체와 관련된 일부 기능에 그친다. 이를테면 고 가용성과 DR(Disaster Recovery)에 클러스터링을 이용한다면 윈도우 서버 장애 조치 클러스티링에 의지하게 된다. 리눅스의 경우 고 가용성과 DR은 레드햇, 우분투, SuSE에서 각각 다르다. 리눅스 SQL 서버는 클러스터링에 페이스메이커(Pacemaker) 같은 오픈소스 도구를 이용하게 된다.

또 윈도와 밀접히 연결되어 있는 몇몇 데이터베이스 수준의 기능들이 있다. 애플리케이션이 SQL 서버에 저장된 파일과 문서를 파일 시스템처럼 액세스 할 수 있는 파일테이블(FileTable)을 예로 들 수 있다.

쿠마르는 "파일테이블의 경우 Win32 API를 통해 윈도우에 클라이언트 트랜젝션 액세스를 효과적으로 제공한다. 높은 성능과 확장성으로 Blob에 액세스가 가능한 방식이다. SQL 서버에 Blob을 저장한다면, 이는 파일테이블 기능이 아닌 리눅스에 기반을 두고 실행되게 된다"라고 설명했다.

쿠마르는 "하지만 이렇듯 서로 다른 기능은 극소수다. 개념적으로 동일한 SQL 서버이다. 열 스토어와 인메모리 OLTP 등에 투자한 모든 것을 두 제품 모두에서 이용할 수 있다"라고 말했다.

마이크로소프트 로드맵에 따르면 2017년 새 SQL 서버 버전은 윈도우와 리눅스용으로 출시될 예정이다. 윈도우 버전은 2016년 크게 개선됐던 바 있다. 따라서 이번에 업그레이드되는 요소가 그리 폭넓지 않을 전망이다. 쿠마르는 "R로 지능형 데이터베이스의 경계를 확대할 계획이다. 마이크로소프트는 얼굴 인식과 OCR 같은 머신 학습 기반 '지각(Cognitive)' 기능을 데이터베이스 자체에 구현하고 있고, PolyBase를 강화할 예정이다. 그러나 이번 릴리즈는 리눅스 버전의 등장에 초점이 맞춰져 있다"고 말했다.

-> MS 크로스 플랫폼을 'CIO도' 주목해야 하는 이유 

OS가 아닌 데이터베이스를 선택
리눅스에서 SQL서버를 구동할 수 있게 되면 플랫폼에 상관 없이 데이터베이스를 선택할 수 있다. 쿠마르는 "선택의 여지가 생긴다. 혼합된 환경이 일반적이다. 대부분의 대기업이 윈도우 서버와 함께 리눅스를 보유하고 있다. CIO들에게 가장 자주 듣는 이야기 중 하나는 SQL 서버를 선택하면서 운영체제에도 투자해야 한다는 불만이다. 다른 데이터베이스에서는 없는 제한점이다"라고 말했다.

가트너의 도널드 파인버그도 "대기업 CIO들로부터 비슷한 이야기를 들은 적이 있다”라고 전했다. 그는 이어 “리눅스 기반 SQL 서버가 등장하면 신규 고객과 기존 고객 모두의 관심을 끌 것이다. 윈도우 서버에서만 이용할 수 있다는 이유로 SQL 서버를 사용하지 않기로 결정한 고객들이 많았다. 지금 당장은 윈도우 서버를 선택하는 회사가 많겠지만, 리눅스에서도 SQL 서버를 운영할 수 있음을 인식해갈 것이다. 즉 지금 당장은 리눅스를 이용하지 않아도, 미래의 선택지가 될 수 있다는 의미이다"라고 말했다.

최근 2-3년 간 선택 가능성을 요구하는 목소리가 높아졌다. 쿠마르에 따르면, 운영 구조 측면의 문제인 경우가 많다. 그는 "통상 2개 팀이 운영 체제와 SQL 서버를 나눠 관리하는데, 이를 조율하면서 마찰이 발생한다. 우리는 유연하지 못한 것, 마찰을 일으키는 것을 원하지 않는다"라고 말했다.

파인버그는 리눅스 SQL 서버가 부서 수준보다는 엔터프라이즈 수준의 솔루션으로 관심을 끌 것으로 예상했다. 그는 "대기업들에게 개별 서버를 리눅스가 실행되는 더 큰 서버로 통합할 수 있는 선택지를 제공하게 될 것"이라고 말했다. SQL 서버가 클라우드 호스팅 데이터베이스 서비스로 더 많이 사용될 것이라는 의미이기도 하다. 그는 "클라우드 서비스 공급업체들에게 리눅스 기반 SQL 서버라는 대안이 마련된 것”이라고 말했다.

-> '2017년 넘어 이어질' 엔터프라이즈 기술 동향 9가지 

개발자와 리눅스 관리자의 작업 흐름에 부합
리눅스 SQL 서버가 쉽게 도입되도록 만드는 '열쇠' 중 하나는 리눅스 환경 및 기존 SQL 서버와 효과적으로 통합되는 것이다. 즉 윈도우와 리눅스가 섞인 클러스터를 이용, 다운타임 없이 윈도우의 SQL 서버 데이터베이스를 리눅스로 마이그레이션 할 수 있다. 더 나아가 생산 환경에서 혼합된 클러스터를 운영할 수 있다. 마이크로소프트에 따르면 리눅스 SQL 서버 프리뷰를 미리 도입한 기업 중 일부가 이미 이런 방법을 이용하고 있다(포천 500대 기업의 절반 이상).

쿠마르는 "고객들은 윈도우에서 백업을 해, 리눅스에서 복구하고, 이를 데이터베이스에 추가시키기 원한다고 말한다. 이를 구현함으로써 리눅스 SQL 서버는 기존 환경에 포함될 수 있게 됐다"라고 말했다.

개발자들은 나아가 윈도우 비주얼 스튜디오용 SQL 서버 데이터 도구(Server Data Tool)이나 SQL 서버 관리 스튜디오(Server Management Studio)를 이용, 윈도우 SQL 서버와 동일한 방식으로 리눅스 SQL 서버를 이용할 수 있을 것이다. 다른 방법으로 일했던 개발자들은 리눅스나 맥 기반 비주얼 스튜디오 코드를 이용해 SQL 서버를 연결하고, 더 나아가 T-SQL을 수정할 수 있다. SQL 서버가 잘 부합하기 때문에 기존 윈도우 방식보다 SQL 서버 개발이 훨씬 폭넓어지게 된다.

쿠마르는 "개발자 환경의 경우, VS 코드는 마이크로소프트 스택 외 드라이버를 강조한다. 자바 개발자, 파이톤 개발자, R 개발자들은 ADO.NET뿐만 아니라 이들 스택을 중시한다. 우리는 윈도우로 제한되어 있어 SQL 서버를 거들떠보지 않았던 개발자들을 공략하기 원하며, 그 기회를 열었다. JDBC 라이브러리를 '오픈소스화' 했다. 덕분에 Maven 프레임워크를 이용할 수 있게 됐다. 자바 개발자들이 아주 쉽게 SQL 서버 스레드를 리눅스에 적용할 수 있게 된 것이다"고 설명했다.

쿠마르는 여러 CIO들로부터 마이크로소프트 외 개발자와 리눅스 관리자들에게 친숙해지도록 만드는 것이 중요하다는 말을 들었다며, "SQL 서버 백엔드가 리눅스에서 잘 실행되는 것을 넘어서 관리 용이성과 툴링이 작동하는 환경에서도 잘 실행된다"라고 강조했다.

윈도우 서버의 경우, 툴링과 관리 경험은 대부분 GUI로 이뤄진다. 쿠마르는 "반면 리눅스와 비 마이크로소프트 스택의 경우, 명령줄 인터페이스가 중시된다. 사람들은 관리 인프라에서의 '스크립트 아웃'과 Bahs 스크립트 실행에 대해 생각하며, 이에 따라 툴링의 상당 부분을 이 부분에 투자한다. 우리는 리눅스 관리자가 SQL 서버를 자연스러우면서도 쉽게 관리할 수 있도록 만들기 원한다"라고 설명했다.

이를 위해서는 도커(Docker) 명령줄에서 적용을 할 수 있어야 하는데, 이미 몇몇 명령줄 도구가 SQL 서버를 지원한다. 예를 들어, DMVTOOL을 이용하면 명령줄에서 SQL 서버 동적 관리 보기(Dynamic Management View)를 확인할 수 있다. 데이터베이스의 성능 정보를 얻을 수 있다는 의미이다.

또 파워셸(PowerShell) 스크립팅도 지원한다. 쿠마르는 "파워셸은 닷넷코어(.NET Core)를 지원하며, 리눅스에서 실행이 된다. 우리는 Bash 등 다른 스크립팅 지원을 추진하고 있다. 그렇지만 파워셸이 지원하는 부분이 많다"라고 설명했다.

명령줄 도구가 필요한 것은 분명하다. 하지만 쿠마르에 따르면 SQL 서버가 익숙하지 않은 테스터들조차 SQL 서버 관리 스튜디오 같은 그래픽 기반 도구에 깊은 인상을 받은 것으로 조사되고 있다. 그는 "사용자 인터페이스를 통해 핵심 엔드-투-엔트 관리 기능을 노출시키는 방법을 연구하고 있다"라고 말했다.

윈도우를 리눅스로 가져가지 않는 SQL 서버
마이크로소프트가 리눅스에 SQL 서버를 구현시킨 방식을 주목할 만 하다. 윈도우 하위시스템을 많이 가져가지 않은 것이 특징이다. 일부 핵심 코드를 다시 쓰지도 않았다.

쿠마르는 "여러 플랫폼에서 실행되는 소프트웨어는 추상 계층을 생성시킨다. 따라서 실행되는 코드가 기반이 되는 운영 체제를 인식하지 않는다"라고 설명했다. SQL 서버는 오랜 기간 윈도우 구문(Construct)의 많은 부분을 추상화 한 윈도우 서버 SQL 계층을 갖고 있었다.

그는 "메모리 관리, 보안 관리, 프로세스 관리, 스케줄링용 API를 노출시키는 SQL 플랫폼 추상 계층(SQL Platform Abstraction Layer)을 구축했다. OS를 가리지 않도록 만들기 위해서였다"고 말했다.

그는 또 "SQL 서버가 기능을 하도록 만들기 위해 윈도우 핵심 시스템에서 일부 코드를 가져왔다. 하짐ㅏㄴ 플랫폼 추상 계층에서 실행되는 윈도우는 1% 이하이다. 이렇게 한 이유는 윈도우에 뿌리를 둔 일부 SQL 서버 라이브러리가 존재하기 때문이다. 윈도우에 탑재된 마이크로소프트 XML 코어 서비스를 의지하는 SQL 서버 XML을 예로 들 수 있다"라고 말했다.

설명에 따르면, SQL 서버 팀은 윈도우의 1% 이하를 ‘Drawbridge’라는 마이크로소프트 연구 프로젝트 기술과 결합시켰다. 윈도우 호스트 OS에서 윈도우 앱을 실행시키는 초소형 가상 콘테이너를 생성하기 위한 라이브러리 OS로 개발된 기술이다. 쿠마르에 따르면, Drawbrdige는 약 8MB 용량에 불과하다.

그는 "이를 통해 OS에 특정적인 30 또는 40개의 애플리케이션 바이너리 인터페이스를 구현할 수 있었다. 우리는 이를 SQL OS 계층과 통합해 SQL PAL을 만들었다"라고 설명했다.

한편 SQL PAL은 '자체 포함(Self-contained)'형이다. 또 리눅스 서버 패치 및 업데이트에 영향을 주지 않는다. 쿠마르는 "고객의 패칭 스케줄을 변경하면, 원천적으로 영향을 끼칠 가능성이 없다"라고 말했다.

리눅스 기반 SQL 서버를 준비할 시점
리눅스 기반 SQL 서버를 운영하는데 관심이 있다면 공개 프리뷰를 테스트하는 것이 좋다. 관리 및 배포 환경 이해가 중요하다. 쿠마르는 환경에 적용하는 문제, 지원 기능이 궁금한 CIO들은 지금 당장 마이크로소프트로부터 도움을 받을 수 있다고 강조했다. 그는 "우리는 고객 피드백을 토대로 2017년 2월 또는 3월에 기능 세트에 대한 계획을 확정 지을 계획이다"라고 말했다.

다음 단계는 ‘Customer Technology Preview’다. 마이크로소프트는 출시에 앞서 교훈을 터득하기 위해 내년에 리눅스 SQL 서버를 생산 환경에 도입한 조기 도입자들과 협력할 계획이다.

리눅스 SQL 서버가 윈도우 SQL 서버의 역할 일부를 넘겨 받을 기회가 마련됐다. 새로운 여러 에디션 간 일관된 프로그래밍 표면으로 능률화 할 수 있는 것이다. 또 ‘Always Encrypted’ 같은 SQL 서버 기능을 이용 더욱 쉽게 개발할 수 있고, 배포 시기가 됐을 떄 올바른 에디션과 플랫폼을 선택할 수 있다. 쿠마르는 "가격에는 변동이 없다. 보유하고 있는 소프트웨어 보장과 라이선스가 이 배포 옵션에 그대로 누적 적용된다”라고 말했다.

물론 기업 IT 담당자는 SQL 서버가 적절히 활용될 만한 영역을 확인해야 할 필요성이 있을 것이다. 쿠마르는 이에 대해 “동일한 프로그래밍 표면이다. 무료인 리눅스용 SQL 서버 익스프레스도 마찬가지이다. 개발자들이 인상적으로 받아들이는 부분이 바로 이것이다. 일관된 프로그래밍 표면, 리눅스 배포 옵션은 과거 갖지 못했던 선택권이다"라고 강조했다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지


[원문출처 : http://www.ciokorea.com/news/32714]

맨 위로
맨 위로