본문 바로가기
1. 개발/1.8. ActiveMQ

저장소 암호화(Encryption at Rest) 적용 시 성능 하락 비율은?

by 엉짱 2026. 4. 3.
반응형

저장소 암호화(Encryption at Rest) 적용 시 성능 하락 비율은?

엔터프라이즈 환경에서 금융, 의료, 혹은 개인정보를 다루는 시스템을 구축할 때 보안 부서로부터 가장 강력하게 요구받는 아키텍처 요건 중 하나가 바로 '저장소 암호화(Encryption at Rest)'입니다.

데이터가 네트워크를 타고 흐를 때(In Transit) 암호화하는 TLS/SSL은 기본 중의 기본이 되었지만, 디스크에 고스란히 저장되어 휴면 상태에 있는 데이터(At Rest)마저 완벽하게 암호화하라는 요구는 인프라 엔지니어들에게 깊은 고민을 안겨줍니다. 메시지 브로커(ActiveMQ 등)나 데이터베이스가 자랑하는 극한의 디스크 I/O 성능이, 암호화/복호화라는 무거운 연산 과정을 거치면서 반토막 나지 않을까 하는 두려움 때문입니다.

이 가이드에서는 인프라 아키텍트가 저장소 암호화를 도입할 때 반드시 감수해야 하는 성능 하락(Performance Degradation)의 실제 비율을 아키텍처 계층별로 상세히 해부하고, 이 오버헤드를 최소화하기 위한 하드웨어 및 소프트웨어 레벨의 최적화 전략을 분석합니다.


1. 암호화가 유발하는 두 가지 핵심 오버헤드

성능 하락의 비율을 논하기 전에, 암호화가 시스템의 어느 자원을 갉아먹는지 정확히 짚고 넘어가야 합니다.

  • CPU 연산 병목: 데이터를 디스크에 쓰기 전에는 반드시 평문을 암호문으로 바꾸는 연산(일반적으로 AES-256 알고리즘 사용)이 필요합니다. 반대로 읽어올 때는 복호화 연산을 거쳐야 합니다. 이 과정은 CPU의 사이클을 집중적으로 소모합니다.
  • I/O 지연(Latency) 증가: 애플리케이션의 메모리에 있는 데이터가 물리적 디스크로 내려가기까지 파이프라인의 길이가 길어집니다. 암호화 모듈을 통과하는 시간만큼 디스크 쓰기 완료 응답(ACK)이 늦어지며, 이는 전체 시스템의 초당 처리량(TPS) 하락으로 직결됩니다.

2. 아키텍처 계층별 성능 하락 비율 분석

저장소 암호화는 어느 계층(Layer)에서 수행하느냐에 따라 성능 하락 비율이 극명하게 달라집니다. 시스템의 중요도와 예산에 맞춰 다음 3가지 방식 중 하나를 선택하게 됩니다.

A. 하드웨어 레벨 암호화 (SED, Self-Encrypting Drives)

  • 성능 하락 비율: 0% ~ 1% 미만 (사실상 무손실)
  • 가장 이상적이고 비싼 방식입니다. 디스크 하드웨어 컨트롤러 내부에 전용 암호화 칩이 내장되어 있어, OS나 애플리케이션은 디스크가 암호화되어 있다는 사실조차 모른 채 평문을 전송합니다.
  • 쓰기/읽기 작업 시 디스크 자체 칩셋이 빛의 속도로 데이터를 암호화하므로, CPU 점유율이나 I/O 지연이 전혀 발생하지 않습니다. 온프레미스 환경에서 극한의 성능이 필요할 때 반드시 채택해야 하는 방식입니다.

B. OS / 파일시스템 레벨 암호화 (LUKS, AWS EBS Encryption 등)

  • 성능 하락 비율: 5% ~ 10% 수준
  • 가장 널리 쓰이는 표준적인 방식입니다. 클라우드 환경에서 볼륨 암호화를 켜거나, 리눅스의 LUKS(Linux Unified Key Setup)를 사용할 때 적용됩니다.
  • 애플리케이션은 평문을 파일 시스템에 쓰지만, OS의 블록 디바이스 드라이버 계층에서 이를 가로채어 암호화한 뒤 물리 디스크로 내려보냅니다.
  • 순차 I/O(Sequential I/O)가 주를 이루는 메시지 브로커의 저널 파일 쓰기 환경에서는 대역폭 하락이 약 5% 내외로 방어되지만, 무작위 I/O(Random I/O)가 잦은 관계형 데이터베이스 환경에서는 10% 가까운 성능 하락이 발생할 수 있습니다.

C. 애플리케이션 레벨 암호화 (TDE, Broker Plugin 등)

  • 성능 하락 비율: 15% ~ 30% 이상 (최대 병목 구간)
  • 데이터베이스의 TDE(Transparent Data Encryption) 기능을 사용하거나, 메시지 브로커 클라이언트 단 혹은 브로커 내부 플러그인에서 메시지 페이로드(Payload) 자체를 암호화하여 디스크로 내리는 방식입니다.
  • 자바(JVM) 기반의 시스템이라면 객체를 직렬화(Serialization)하고 이를 다시 암호화 라이브러리를 통해 변환하는 이중 작업이 발생합니다. 가비지 컬렉션(GC)의 부하를 가중시키고 막대한 CPU 오버헤드를 발생시키므로, 성능 하락의 폭이 가장 큽니다.

3. 암호화 성능 방어의 마법: AES-NI 하드웨어 가속

OS나 애플리케이션 레벨에서 소프트웨어 암호화를 수행하면 CPU가 뻗어버릴 것 같지만, 현대의 인프라 환경에서는 생각보다 그 타격이 적습니다. 그 이유는 바로 인텔과 AMD 등 최신 CPU에 기본 탑재된 'AES-NI (Advanced Encryption Standard New Instructions)' 명령어 셋 덕분입니다.

이 기술은 암호화의 핵심 연산을 범용 CPU 코어가 처리하는 대신, CPU 내부에 박혀있는 암호화 전용 논리 회로가 하드웨어 레벨에서 직접 처리하도록 만듭니다.
이 AES 가속 기능이 활성화된 환경이라면, 애플리케이션 레벨에서 수 기가바이트의 데이터를 암호화하더라도 CPU 사용률은 고작 2~5% 상승하는 데 그치며, 연산 속도는 순수 소프트웨어 연산 대비 최대 10배 이상 폭발적으로 빨라집니다. 클라우드 환경이나 베어메탈 서버를 세팅할 때, OS 레벨에서 이 AES-NI 가속 모듈이 정상적으로 로드되어 있는지 확인하는 것이 인프라 엔지니어의 핵심 임무입니다.


4. 숨겨진 킬러: KMS (Key Management System) 지연 시간

암호화 자체의 연산 속도보다 시스템의 발목을 더 심각하게 잡는 '숨겨진 병목'이 존재합니다. 바로 암호화 키를 발급받고 검증하는 KMS(키 관리 시스템)와의 네트워크 통신 지연입니다.

데이터를 암호화하거나 복호화하려면 마스터 키(CMK) 혹은 데이터 키(DEK)가 필요합니다. 만약 메시지가 들어올 때마다 클라우드의 KMS 서버(AWS KMS 등)로 API를 호출하여 키를 받아온다면, 암호화 연산은 1밀리초만에 끝나더라도 네트워크 왕복에 20밀리초가 소요되어 전체 시스템의 TPS가 20분의 1로 박살 나게 됩니다.

[최적화 해결책: Data Key Caching]
이를 방어하기 위해 애플리케이션이나 블록 스토리지 계층에서는 봉투 암호화(Envelope Encryption)와 키 캐싱(Key Caching) 기법을 도입합니다. KMS 서버 통신은 수 분에 한 번씩만 수행하여 데이터 키를 로컬 메모리에 안전하게 캐싱해 두고, 실제 쏟아지는 수만 건의 데이터 쓰기 I/O는 메모리에 올라와 있는 이 캐시 키를 활용하여 즉각적으로 암호화함으로써 네트워크 지연을 완벽하게 제거합니다.


5. 아키텍처 설계 시의 최종 타협 가이드 (Best Practices)

저장소 암호화는 컴플라이언스(법적 규제) 측면에서 피할 수 없는 시대의 흐름입니다. 10% 미만의 성능 하락에 벌벌 떨며 보안을 포기하는 것은 엔터프라이즈 환경에서 용납되지 않습니다.

성능과 보안을 모두 챙기는 완벽한 아키텍처를 원한다면 다음의 3대 원칙을 설계에 반영하십시오.

  1. 클라우드 관리형 볼륨 암호화의 적극 활용: AWS EBS, GCP Persistent Disk 등 클라우드 벤더가 제공하는 블록 스토리지 암호화 옵션을 켜는 것이 가장 좋습니다. 이들은 물리적 하드웨어 가속과 최적화된 하이퍼바이저 통신을 통해 성능 하락을 5% 이내로 철저히 억제합니다. 애플리케이션 단의 코드는 수정할 필요가 없어 운영 비용도 절감됩니다.
  2. 스토리지 IOPS 사전 프로비저닝: 암호화로 인해 늘어난 I/O 지연 시간을 상쇄하기 위해, 평소 필요했던 디스크의 IOPS 요구치보다 약 15~20% 정도 더 높은 스펙의 SSD/NVMe 볼륨을 선제적으로 할당(Provisioning)하여 하드웨어의 무력(Brute Force)으로 오버헤드를 덮어버리는 것이 실무적으로 가장 안전한 선택입니다.
  3. 애플리케이션 계층 암호화의 최소화: 브로커나 애플리케이션 레벨의 암호화(Payload Encryption)는 블록 암호화보다 훨씬 무겁습니다. 주민등록번호, 신용카드 번호 등 법적으로 강력히 규제되는 극소수의 민감한 필드 데이터만 선별적으로 암호화하고, 나머지 일반적인 페이로드는 평문으로 내리되 디스크 볼륨 자체를 암호화하는 이원화 전략을 취해야 합니다.

결론적으로 저장소 암호화는 더 이상 성능의 무덤이 아닙니다. AES-NI 가속 기술과 볼륨 암호화의 발전으로 성능 타격은 충분히 수용 가능한 수준으로 내려왔습니다. 비즈니스의 중요도를 명확히 파악하고 올바른 암호화 계층을 선택하여 견고한 방어선을 구축하시기 바랍니다.

반응형