
데브옵스
당근이 AWS CloudHSM으로 대규모 서명키 관리 시스템을 구축한 방법 – 3부: 서명 시스템 구현, 트러블슈팅, 무중단 키 전환
두줄요약
CloudHSM 기반 서명 시스템의 구현 방식과 PKCS#11 운영 트러블슈팅, 무중단 키 전환 과정을 다뤘습니다. KMS와의 Active-Standby 조합으로 장애 대응과 성능 최적화를 함께 달성했습니다.
문제 상황
- 하루 6,500만 건 이상의 JWT 서명 요청을 처리하는 인증 서비스에서 단일 서명 백엔드 의존성으로 인한 장애 위험
- CloudHSM PKCS#11 연동의 세션 기반 특성, 스케일링 시 처리량 정체, in-flight 요청 실패, 스로틀링 같은 운영 이슈
원인 분석
- PKCS#11이 상태를 유지하는 인터페이스라 세션 관리와 핸들 캐싱이 필요
- HSM 인스턴스 추가·제거 시 세션 고정, 큐 과부하, 로그 가시성 부족이 문제를 유발
- 기존 토큰 유효성을 깨지 않으려면 서명키 전환 순서와 공개키 캐시 반영을 엄격히 맞춰야 함
해결 방법
- crypto11 래퍼로 CloudHSM PKCS#11 세션 풀과 접속 정보를 관리하고, TokenSigner 추상화로 HSM·KMS·Local 서명기를 Active-Standby로 구성
- Dynamic Config로 weight를 실시간 조절해 무중단 failover와 점진적 키 전환을 구현
- ES256 전환, maxSessions 튜닝, LogTail 기반 모니터링, 5단계 키 로테이션으로 안정성과 성능을 확보
