| 배치 성능을 고려한 데이터 보호 | 2010.02.09 |
암호화 Topology별 성능
데이터베이스를 보호하기 위한 암호화 솔루션을 적용할 때 관리자들이 현실적으로 경험하는 첫 번째 문제는 암호화를 적용한 후 발생할지도 모르는 성능 저하일 것이다. 이번에는 분리된 암호화 H/W를 사용할 때와 DB서버에서 S/W 방식으로 암ㆍ복호화를 처리할 때의 성능상의 장단점을 살펴봄으로써 시스템의 목적에 맞는 의사결정에 도움을 주고자 한다. 암호화 적용시 판단 기준 암호화를 실제로 적용할 때 고려해야 할 많은 기준이 있으나 아래와 같이 크게 두 가지로 나누어 생각해 보고자 한다. 데이터 Granularity(입도 : 粒度) 암호화의 대상이 되는 데이터 저장 단위를 말한다. 테이블의 컬럼 혹은 데이터 파일의 페이지(Ex: 2, 4, 8 KB) 등으로 나눌 수 있다. 페이지 단위의 암호화는 구현 및 관리 체계의 복잡성으로 인하여 Storage 레벨로 구현되며 이로 인해 불필요한 데이터의 암ㆍ복호화에 자원을 소모할 수 있다. 따라서 대개 칼럼을 선별하여 암호화를 진행할 수 있고 UI 및 관리 체계 구축에 용이한 칼럼 단위 암호화가 선호된다. 암호화 Topology : 암호화 서비스가 배치되는 장소에 따른 구분을 말한다.
암호화 Topology 로컬 암호화 앞에서도 살펴보았지만 암호학적 연산 기능이 구현된 S/W 모듈 형태로 주로 구성되며 데이터베이스와 같은 서버에 설치되어 동작하는 방식을 말한다. S/W 모듈은 Plug-in 등의 여러 다른 이름으로 불리우기도 하며 여기서는 편의를 위하여 모듈이라고 부르기로 한다. 모듈은 일반적으로 아래와 같은 요소로 구성된다.
원격 암호화
Topology 별 성능 비교 앞에서 Topology별로 각각의 특징 및 구성요소를 살펴보았다. 이번에는 이번 연재의 주제인 Topology별 성능을 암ㆍ복호화가 발생하는 운영 환경에 따라 측정해 보고 이를 정리하여 각각의 장단점을 살펴볼 수 있는 근거를 마련해보고자 한다. OLTP 환경 시스템의 성능을 측정하기 위한 성능 지표에는 여러 가지가 있겠지만 다수의 동시 사용자의 요청을 처리하는 OLTP 시스템의 경우 ‘동시 사용자(Concurrent User)수에 따른 전체 응답(Throughput)수’ 및 이 수치가 저하되기 시작하는 Saturation Point의 도달 시점이 중요한 의미를 지닌다. 따라서 동시 사용자를 늘려가면서 전체 응답 수가 어떻게 변하는지 살펴봄으로써 암호화 Topology에 따른 성능을 비교해 보고자 한다. 먼저 테스트를 위한 기본 사항을 다음과 같이 정의한다.
a. 데이터베이스: MS SQL Server b. 테이블 정의 c. 암호화 컬럼: CCNUM d. 레코드 수: 9,950 건 e. 인덱스: FIRST, LAST 컬럼에 각각 Non-Unique 인덱스 생성
a. 암호화된 CCNUM 컬럼에 대해 한번의 복호화 연산을 수행하는 쿼리 3. 테스트 시나리오 a. 2에서 제시된 쿼리를 세션의 개수를 달리하면서 전체 처리량과 분당 처리량을 계산 b. DB 서버의 CPU 사용량이 100%(Saturation Point) 를 넘어서는 경우까지 부하를 달리함 로컬 암호화 성능 앞에서 제시된 테스트 시나리오를 바탕으로 DTM 툴을 이용하여 테스트를 진행한다. 원격 암호화 성능 로컬 암호화 성능 측정과 동일한 방법으로 세션 증가에 따른 성능을 측정했다. 결론 앞서 살펴본 바와 같이 원격 암호화를 적용할 경우 로컬에서 암호화를 수행하는 것에 비해 Saturation Point에 도달하는 동시 사용자 수를 8% 정도 높일 수 있음을 알 수 있다. 또한 Saturation Point에서의 분당 처리량도 11% 증가하는 것을 알았다. 특이한 점은 동시 사용자가 60개까지는 로컬 암호화의 분당 처리량이 다소 높은 수준을 유지하나 이후부터 역전되어 원격에서 암호화를 처리하는 것이 좀 더 유리함을 알 수 있다. 이는 원격 암호화를 사용함으로써 데이터베이스 서버의 CPU 부하를 경감(Off-loading) 시키는 효과가 발생하기 때문이다. 배치 (Batch) 환경 배치 환경은 단일 세션의 전체 수행 시간, 즉, TAT(Turn Around Time)가 중요한 의미를 지닌다. 대량의 데이터를 추출한 후 이를 적절히 가공하고 다시 적재하는 ETL 작업이 배치 작업의 대표적인 예이며 여기에서는 이런 ETL 작업을 구현한 후 테스트를 진행하고자 한다. 1. 테스트 테이블 a. 데이터베이스: MS SQL Server b. 테이블 정의(111p 참조) c. 암호화 컬럼: L_EXTENDEDPRICE d. 레코드 수: 200,000 건 e. 인덱스: 없음(Full Table Scan) 2. ETL 작업 정의 a. 테이블의 데이터를 추출 이 때 복호화가 발생함 b. 추출된 데이터를 파일로 저장 3. 테스트 시나리오 a. 정의된 ETL 정의를 총 3회 실행하여 평균값으로 비교 로컬 암호화 성능(배치) 3회에 걸쳐 테스트한 결과를 정리하면 표 1과 같다.
원격 암호화 성능(배치) 표 2는 원격 암호화를 적용하여 배치 작업을 3회 실시하였을 때의 결과를 정리한 것이다. 단일 세션을 사용하여 대량의 데이터를 처리하는 배치 작업의 경우 로컬 암호화를 수행하여 Network Latency에 따른 시간 지연을 줄일 수 있다. 전체적인 수행 성능이 원격 암호화에 비해 37% 향상됨을 알 수 있다. 이러한 로컬 암호화를 통한 배치 작업은 CPU를 최대한 활용할 수 있는 유휴 시간에 실행되는 것이 가장 효과적이며 다른 작업과의 CPU 병목이 발생할 경우 전체 수행 성능이 저하될 수 있다. Encryption Penalty Encryption Penalty란 암호화 및 복호화를 수행함에 따라 데이터 처리 응답 시간에 발생하는 지연 현상을 말한다. 이러한 Penalty에는 다음과 같은 요소가 복합적으로 작용한다.
위에서 언급한 Encryption Penalty 중 어떠한 요소가 더 크게 작용하느냐에 따라 운영 환경에 적합한 Topology가 결정된다. 결론 본고에서는 상이한 운영 환경(OLTP, Batch)에서 가장 중요한 성능 지표(tpmC, TAT)를 정한 후 암호화 Topology(로컬 암호화, 원격 암호화) 별로 이러한 성능 지표에 어떠한 영향을 미치는지 살펴보았다. 하지만 상호 운용 및 연계성이 중요한 현대의 전산시스템은 주된 업무 환경 이외에도 다양한 부가적인 처리를 요구하는 경우가 많다. 많은 세션이 다량의 트랜잭션을 발생시키는 업무 시간 중에는 원격으로 암호화를 진행하다가 빠른 일 마감이 필요한 시점에 로컬 암호화를 사용하여 Batch 성능을 높일 수 있는 제품이 존재한다면 암호화 제품을 적용하여 데이터베이스를 보호하려는 관리자에게 최적의 솔루션이 될 수 있을 것이다. <글 : 김상현 세이프넷 PSE(Professional Service Engineering) 팀장(sean.kim@safenet-inc.com)> [월간 정보보호21c 통권 제113호(info@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|