오픈소스 DBMS 전환방안및 클라우드적용사례 Date: 2015/03/12 큐브리드 2015 CUBRID Co., Ltd. All rights reserved. 0 / 35
목차 1. CUBRID 현황 2. 오픈소스 DBMS 전환방안 3. 클라우드적용사례 2011 CUBRID Co., Ltd. All rights reserved.
1. CUBRID 현황 2011 CUBRID Co., Ltd. All rights reserved.
CUBRID 소개 개발, 검증 관계형DBMS 100% 오픈소스 ACID 트랜잭션 고성능 대용량 DB 지원 고가용성 (High-Availability) 기능 DB Sharding 지원 Oracle/MySQL SQL 호환 온라인백업 2015 CUBRID Co., Ltd. All rights reserved. 3 / 35
CUBRID 라이선스 2015 CUBRID Co., Ltd. All rights reserved. 4 / 35
CUBRID 글로벌개발프로젝트 루마니아 - 엔진개발및서스테이닝 한국 - 엔진개발및서스테이닝 중국 - 도구및드라이버개발 - 품질보증 (QA) 2015 CUBRID Co., Ltd. All rights reserved. 5 / 35
CUBRID 다운로드 국내 189,498 건해외 67,178 건 (30 개국 ) 2015 CUBRID Co., Ltd. All rights reserved. 6 / 35
CUBRID 성능 Basic Performance (Unit: TPS) 100,000 90,000 80,000 91,948 88,687 88,949 89,820 83,293 84,235 85,311 85,638 77,269 76,044 73,554 72,567 70,000 60,000 50,000 40,000 30,000 20,000 10,000 - idx(a) idx(a,b) idx(a,b,c) INSERT UPDATE SELECT DELETE 2015 CUBRID Co., Ltd. All rights reserved. 7 / 35
CUBRID 성능 TPC-C 15,914 16,317 9.2 9.3 tpmc 2015 CUBRID Co., Ltd. All rights reserved. 8 / 35
CUBRID Site www.cubrid.com dev.naver.com www.cubrid.org www.sourceforge.net. 2015 CUBRID Co., Ltd. All rights reserved. 9 / 35
2. 오픈소스 DBMS 전환방안 2011 CUBRID Co., Ltd. All rights reserved.
2.1 DBMS 전환절차 2011 CUBRID Co., Ltd. All rights reserved.
DB 전환절차 - 개요 1 2 기존환경분석 기존시스템분석 : 전환범위, HW, SW, DBMS 종속성, 개발환경분석 전환가능성분석 : 비용절감, 전환업무 / 유지보수수행인력검토 전환일정수립 서비스연속성유지, 전환실패시원시스템전환고려 3 전환 DBMS 환경구성 : OS, WEB, WAS, DBMS, 응용및솔루션설치 이관 DB 스키마이관 : 계정. table, view DB 데이터이관 : 각테이블별데이터 Stored Procedure 이관 : PL/SQL, T-SQL 변환 4 5 검증및최적화 전환오픈 응용이관 : 비표준 SQL 변환 기능테스트 : 단위업무별 / 시나리오기반테스트, WAS/DBMS 에러로그확인 성능테스트 : 동시사용자예측시나리오테스트, 지연 Query 개선 업무전환일정및전환시간확정 서비스중단일정공고 6 안정화 정상작동여부일정기간모니터링 2015 CUBRID Co., Ltd. All rights reserved. 12 / 35
DB 전환절차 - TCO 분석 DBMS 에디션 : Standard Edition, Enterprise Edition 라이선스단위 : Core, Socket 도입비용 서버 CPU 수량 : 1CPU 8Core, 2CPU 16Core 서버벤더별가중치 : IBM AIX, HP-UX, ORACLE Solaris, Linux, Windows 추가기능유무 : 이중화, 클러스터, 파티셔닝등 도입수량 : 1EA, 2EA 운영비용 상용 / 오픈소스라이선스정책 : 도입가, 정액 ( 률 ) 제 도입가대비 SUL, SPS 요율및정책 On-Site 유지보수계약 전환비용 DBMS 전환에따른 Application 개발비용 Data Migration 비용 Tunning 비용 2015 CUBRID Co., Ltd. All rights reserved. 13 / 35
DB 전환절차 1. 기존환경분석 전환범위 현정보시스템의전환범위확인 전체서비스 / 일부서비스전환여부 계정, 스키마정보 데이터베이스 각테이블별데이터건수 데이터문자셋 (EUC-KR, UTF-8 등 ) 정보 Store Procedure / Function 정보 이중화, DB Link 사용여부 사용량 사용자접속량 ( 동시접속자, Page View) 서버자원사용량 (CPU, MEM) HW 개발환경 HW 종류및스펙 OS 종류및버전 연계시스템 응용개발언어 데이터베이스인터페이스방식 연동 SW 2015 CUBRID Co., Ltd. All rights reserved. 14 / 35
DB 전환절차 2. 전환일정수립 기존환경분석 전환범위선정 현 DBMS 환경 / HW(OS 등 ) 분석 사용량 / 개발환경분석 전환가능성분석 일정수립 전환일정수립 전환 DBMS 환경구성 이관 스키마 / 데이터이관 Stored Procedure 이관 응용프로그램 (SQL) 이관 운영환경이관 검증및최적화 기능 / 성능테스트 전환 전환수행 서비스확인 / 오픈 안정화 안정화지원 2015 CUBRID Co., Ltd. All rights reserved. 15 / 35
DB 전환절차 3. 이관 환경구성 서비스전환을위한대상장비를준비하여환경구성 SW 환경의운영장비에이전을위한 OS 및기타관련 SW (WEB, WAS 등 ) 를설치 스키마이관 CMT(CUBRID Migration Tool) 을이용하여자동으로변환 CMT 를이용하여전체또는일부데이터이관자동변환 데이터이관 Insert 형태의 SQL 로작성하여처리 변경된스키마에맞게데이터를이관하여야할경우별도의전환프로그램작성 실서비스전환시서비스중단시간을최소화하기위한실데이터이관방안마련 Stored Procedure 이관 PL/SQL 은 ORACLE 에서개발하고저작권을가지고있는스크립트 JAVA 를이용하여 Store Procedure ( 프로시져, 펑션 ) 작성 응용전환 표준 SQL 이아닌특정 DBMS 의비표준 SQL 을 CUBRID 에서지원하는 SQL 로변환 운영환경이관 기존 DBMS 의서비스구동및백업등에사용되었던스크립트를수정 서비스중단시킨후복구가완료되면검증후서비스재구동 2015 CUBRID Co., Ltd. All rights reserved. 16 / 35
DB 전환절차 4. 검증및최적화 ( 기능테스트 ) 2015 CUBRID Co., Ltd. All rights reserved. 17 / 35
DB 전환절차 4. 검증및최적화 ( 성능테스트 ) 2015 CUBRID Co., Ltd. All rights reserved. 18 / 35
DB 전환절차 5. 전환오픈 No. 내용시작시간종료시간 0 0-1 0-2 1 업무전환일정및전환시간확정 업무전환에따른서비스중단일정공고 운영서버설치 WEB, WAS, DBMS 설치 연동솔루션설치 응용설치 사전테스트 원서비스롤백방안마련 기존서비스중단 기존서비스백업 ( 필요시 ) D-14 D-14 D-3 D-2 D-1 D-1 00:00 00:10 2 데이터이관 00:10 01:00 3 신규서비스구동 ( 내부 ) 기본테스트 01:00 01:30 4 외부오픈 01:30 01:35 5 모니터링 01:30 ~ 2015 CUBRID Co., Ltd. All rights reserved. 19 / 35
DB 전환절차 6. 안정화 분류확인사항측정값 (max/avg) 이상유무 WEB/ WAS server CPU 사용률이 80% 이상 1 분이상지속되는가? 50%/ 5% Y / N log error log 에기록되는내용이있는가? Y / N server CPU 사용률이 80% 이상 1 분이상지속되는가? 50%/ 5% Y / N DBMS log error log 에기록되는내용이있는가? Y / N 2015 CUBRID Co., Ltd. All rights reserved. 20 / 35
2.2 DB 전환시고려사항 2011 CUBRID Co., Ltd. All rights reserved.
SQL 구분기능구분기능 윈도함수 (window function) 자동증가칼럼 (auto increment column) 질의문 계층적질의 (hierarchical query) PIVOT 연산자 DDL 무정지인덱스생성 (non-blocking index creation) 분할 (partitioning) GROUP BY... ROLLUP 기본키 (primary key) 제약조건에이름명시 문자열집계 저장프로시저 (stored procedure) 정규표현식 정규표현식 ((Regular Expression) 기반비교 프로그래밍 문장수준트리거 (statement level triggers) 제약조건 (Constraint) CHECK 제약조건 행수준트리거 (row level triggers) 인덱싱 DML partial index(filtered index) 내림차순인덱스 (descending index) 다중행 INSERT(multiple rows INSERT) MERGE 문 VIEW 업데이트가능한뷰 (updateable views) with CHECK option 유도테이블이있는뷰 (views with derived tables) UNION 데이터타입 ENUM 타입연산 INTERSECT 트랜잭션지원 DDL(transactional DDL) (Operators) EXCEPT DDL SEQUENCE ORDER BY.. NULLS LAST 2015 CUBRID Co., Ltd. All rights reserved. 22 / 35
Shared everything vs. Shared nothing 구분 Shared everything Shared nothing RAC Replication 아키텍쳐 W+R W+R W+R R Disk Clustering Disk Disk Storage Replication Disk Clustering 설치및구성 어려움 쉬움 장애절체 Auto Failover Auto Failover 부하분산 쓰기, 읽기분산 (Active-Active) 읽기분산 (Active- Standby) 노드확장 제한적 제한없음 (1:N 방식 ) 2015 CUBRID Co., Ltd. All rights reserved. 23 / 35
이기종 DB 연계방안 DB Link ORACLE DB1 ORACLE DB2 CUBRID CUBRID or 이기종 DB db1_con = getconnection(db1_url); statement = db1_con.createstatement(); ResutlSet rs = statement.execute( select a.val, b.name from tbl1 a, tbl2@db_link b tb where a.id = id1 and a.key = b.key ); while (rs.next()) { val = getstring( val ); name = getstring( name ); } cubrid_con1 = getconnection(cubrid1_url); cubrid_con2 = getconnection(cubrid2_url); cub_stmt1 = cubrid_con1.createstatement(); cub_stmt2 = cubrid_con2.createstatement(); ResultSet rs1 = cub_stmt1.execute ( select a.key, a.val from tbl1 a where a.key = key1 ); ResultSet rs2 = cub_stmt2.execute ( select b.key, b.name from tbl2 b where b.key = id1 ); ArrarList keylist = new ArraryList(); Integer idx = 0; while (rs2.next()) { keylist.add(rs2.getstring( key )); name_buf[idx++] = rs2.getstring( name ); } while (rs1.next()) { key = rs1.getstring( key ); idx = keylist.indexof(key); val = rs1.getstring( val ); name = name_buf[idx]; } 2015 CUBRID Co., Ltd. All rights reserved. 24 / 35
기술지원 단계구분지원내역 착수교육 개발자 SQL 전환교육 DB 전환 개발환경구성 DB Object 및어플리케이션소스변환 Meta Data 이관 개발환경구성및 DB전환대상시스템연동환경검증 이행방안고려 Table Schema(column type, Index 등 ) 변경 Query Syntax /Stored Procedure/ Function 변환 Error 처리및 SQL Tunning CMT(CUBRID Migration Toolkit) 를활용하여 MetaData 이관 Type 호환성에따라추가적인 Conversion이필요한경우 Scripts 작성수행 테스트 검수및종료 운영 단위 / 통합테스트 운영 안정화지원 테스트계획수립 어플리케이션단위 / 통합테스트 테스트결과에따른 Error 처리및최적화수행 데이터및연동검증 운영자 / 사용자 ( 온라인 ) 매뉴얼제공 운영자교육 DBMS SW 검수 백업및모니터링등상시업무수행 긴급장애지원 전화 / 이메일지원 트러블슈팅 패치, 업그레이드적용 2015 CUBRID Co., Ltd. All rights reserved. 25 / 35
2.3 CMT (CUBRID Migration Toolkit) 2011 CUBRID Co., Ltd. All rights reserved.
CMT (CUBRID Migration Toolkit) Oracle, MS-SQL, MySQL 의 DB Object 및 Data 를 CUBRID 로마이그레이션을수행하는 GUI 기반도구 ORACLE/ MySQL 등 Schema Sequence Table Index Constraint View Data CMT CUBRID Migration Toolkit CUBRID Schema Sequence Table Index Constraint View Data 2015 CUBRID Co., Ltd. All rights reserved. 27 / 35
encub Oracle 의 PL/SQL 을 Java Stored Procedure 로변환해주는자동화도구 개념도 Stored Procedure Java C/C++ C# Android Java Objective C HTML5 자동전환 데이터베이스유틸리티 Stored Procedure 표준 SQL DB 사용자애플리케이션데이터베이스 SP 직데이터베이스 2015 CUBRID Co., Ltd. All rights reserved. 28 / 35
3. 클라우드적용사례 2015 CUBRID Co., Ltd. All rights reserved. 29 / 35
네이버적용현황 160 개서비스, 1500 카피이상 ( 메일, 네이버me, Nsight, N드라이브, OwFS, 포토앨범, 쪽지, 라인클로버, 공통덧글, 네이버셀, NCS메일, 내서재, 회원관리, 사전등 ) 2015 CUBRID Co., Ltd. All rights reserved. 30 / 35
G- 클라우드적용현황 2011 ~ 12 년 : 16 개부처총 42 개업무 2013 년 : 16 개부처총 34 개업무 2014 년 : 11 개부처총 21 개업무전환및서비스운영 전환시스템 ( 노후대개체 ) 신규시스템 안전행정부공직윤리홈페이지 환경부야생동물구조관리환경부 안전행정부상시모니터링 미래창조과학부 TVWS 안전행정부청사홈페이지 야생동물구조관리 안전행정부생활공감국민행복 기상청국가수문기상재난안전 안전행정부이북 5 도위원회 해양수산부통계시스템 안전행정부공무원센서스 공동활용시스템 홈페이지 해양수산부홈페이지 안전행정부공직비리 국무총리실세종시정보방 안전행정부 국가보훈처대전현충원홈페이지 익명신고시스템 국무조정실국회업무관리시스템 정책연구용시스템 ( 프리즘 ) 국가보훈처나라사랑 안전행정부접경지역정보화 대통령자문위원회 정부통합전산센터홈페이지 국가보훈처취업정보 정부통합전산센터 NTP, DHCP 국민대통합위원회홈페이지 기획재정부국채연기금홈페이지 소방방재청홈페이지 서비스 국가인권위원회 교육부교육비원클릭시스템 해양경찰청복지포탈시스템 교육부한국유학정보시스템 인권작품공모시스템 지식경제부업무포털 국가과학기술위원회홈페이지 외교부홈페이지 국가과학기술위원회 지식경제부통합조직도 금융위원회홈페이지 외교원 과학기술행정 (R&D 콜센터 ) 지식경제부미디어서버 개인정보보호위원회홈페이지 국립외교원통합정보시스템 원자력안전위원회홈페이지 지식경제부사이버홍보관 금융위원회내부메신저 외교부재외공관홈페이지 감사원 e- 감사홈페이지 지식경제부사이버무역홍보관 금융위원회통합정보시스템 외교부독도홈페이지 환경부화학물질정보처리시스템 고용노동부노동통계시스템 산업통상자원부국회업무관리 고용노동부비정규직실태조사 안전행정부원격강의시스템등 농림부 EA 관리등 문화체육관광부 미디어정기간행물시스템 2015 CUBRID Co., Ltd. All rights reserved. 31 / 35
교육비지원시스템 150 만대규모사용자대상성공적서비스로 G- 클라우드안정성입증및자원의효율적사용 2014 CUBRID Co., Ltd. All rights reserved. 32 / 32
범정부 EA 포털 시스템명 : GEAP 범정부 EA 포탈 URL: www.geap.go.kr 업무개요 : 공공부문에서 EA를공동활용할수있도록참조모형, 범정부EA, 각기관의 EA도입ㆍ운영현황등에관한정보를제공 업무현황 : EA관련표준, 지침등의편의제공및공공부문기관간 EA정보공유를통해범정부관점의 EA분석및활용 시스템현황 HW - G-클라우드 (8 Core,32GB) OS - Red Hat Enterprise Linux Server (RHEL6.5) SW - 개발언어 : JAVA - WEB : Apache - WAS : JBoss EAP - 이중화 : 적용 시스템특징및구성 기존 Oracle 10g DBMS를 CUBRID로전환 기존 Stand-alone 방식의 DB를 CUBRID로전환후 Active- Standby로이중화로구성함. 사용자수 : 총 9,000 여명 ( 회원가입기준 ) 2015 CUBRID Co., Ltd. All rights reserved. 33 / 35
육본주전산통합시스템 시스템명 : 육군본부주전산통합시스템 업무개요 : 육군본부부대별통합홈페이지및응용체계 업무현황 : 육군전군홈페이지 ( 육군본부, 교육사, 1 군, 2 군, 3 군 ) 와내부서비스인응용체계의초과 / 위병업무, 보안 / 비상업무, 통합예약업무, 연대행정업무, 체계통합업무를각 DB 별로구성하여운영 시스템현황 HW - HP x86 (32Core, 236GB) OS - Red Hat Enterprise Linux Server (RHEL 6.5) SW - 개발언어 : JAVA - WEB : JBoss EWS - WAS : JBoss EAP - 솔루션 : DB암호화 ( 케이사인 ) - 이중화 : 적용 시스템특징및구성 블레이드서버를 VM으로 DB/WAS/WEB을구성하여육군본부 / 교육사 /1군/2군/3군별통합홈페이지를구축하였고, Oracle, MySQL에서운영한응용체계서비스를 CUBRID로전환 2015 CUBRID Co., Ltd. All rights reserved. 34 / 35
국방통합데이터센터 시스템명 : 국방통합데이터센터 - 정보시스템이전 통합사업 업무개요 : 각군의전산소에서운영중인정보시스템을국방통합데이터 1,2 센터로이동. 국방통합데이터 1,2 센터에서각자원별 HW 를통합 업무현황 : 국방정보시스템의통합운영환경을통하여, 운용의효율성제고및전체정보시스템의이중화로가용성을확보하고각군 기관의정보시스템소요에적시대응할수있는체계구축 시스템현황 ( 국방클라우드 ) HW - HP x86 (1센터 256Core, 2센터 256Core) OS - Red Hat Enterprise Linux Server (RHEL 6.5) SW - 개발언어 : JAVA, PHP, ASP - WEB : JBoss EWS - WAS : JBoss EAP - 솔루션 : DB 암호화 ( 소프트포럼 ) - 이중화 : 적용 국방클라우드적용체계 : 1센터 56개, 2센터 7개 ( 총 63개 ) 시스템특징및구성 가상화기반의공개SW와 JAVA/JSP 사용 전자정부표준프레임워크 (egov) 적용 국방클라우드 Pool 적용을위한가상화환경구성 2015 CUBRID Co., Ltd. All rights reserved. 35 / 35