콘텐츠로 이동

Schema Collector

Schema Collector는 데이터베이스 스키마를 사전에 수집해 Hub에 등록하는 운영 도구다. 주 목적은 Wrapper를 실제 배포하기 전에 스키마와 컬럼 구조를 미리 수집해, Hub에서 정책 매핑을 준비할 수 있게 하는 것이다.

Schema Collector는 자동 동기화를 보완하는 안전한 운영 도구다

Wrapper는 기본적으로 자동 동기화되지만, 재기동 직후 첫 요청 타이밍을 더 안전하게 관리하려면 Schema Collector로 스키마를 미리 등록하고, Hub에서 정책을 준비한 뒤, 동기화 파일을 선반영하는 방법을 사용할 수 있다.

사용하는 이유

Schema Collector를 사용하면 운영자는 Wrapper 기동 전에도 다음 작업을 준비할 수 있다.

  • 데이터베이스 스키마 구조 파악
  • 암복호화 대상 컬럼 후보 식별
  • Hub에서 정책 매핑 사전 준비
  • 동일 instanceId를 사용하는 Wrapper와의 매핑 공유
  • 사용자 트래픽 유입 전에 Wrapper storage를 채우는 보조 절차 마련

동작 모델

  1. 도구가 대상 데이터베이스에 접속한다.
  2. 스키마와 컬럼 메타데이터를 수집한다.
  3. 암복호화 대상이 아닌 컬럼은 제외 규칙으로 걸러낸다.
  4. Hub 등록 모드라면 수집 결과를 Hub에 전송한다.
  5. 이후 실제 Wrapper가 같은 instanceId를 사용하면 기존 매핑을 이어서 사용할 수 있다.

핵심 식별자

instanceId

instanceId는 정책 매핑 그룹을 공유하기 위한 별칭 축이다. Schema Collector와 실제 Wrapper가 같은 instanceId를 사용하면 같은 정책 매핑 그룹을 참조한다.

hubId

hubId는 Hub가 각 인스턴스에 부여하는 고유 식별자다. 운영 문서에서는 instanceIdhubId를 같은 개념으로 취급하지 않는다.

적합한 사용 상황

  • Wrapper를 곧 도입할 예정인데 사전 정책 매핑을 미리 준비하고 싶을 때
  • 애플리케이션 기동 이전에 스키마 구조를 먼저 등록해야 할 때
  • 직접 동기화보다 수집과 등록을 분리해서 운영하고 싶을 때
  • 재기동 직후 첫 요청이 정책 동기화보다 먼저 들어오면 안 되는 환경

운영 원칙

  • Schema Collector는 Wrapper를 대체하지 않는다.
  • 수집 성공이 곧 런타임 실행 성공을 의미하지는 않는다.
  • 등록에 사용한 instanceId와 실제 Wrapper의 instanceId가 다르면 매핑을 공유할 수 없다.
  • 데이터베이스 접속 권한, 벤더별 메타데이터 조회 방식, 제외 규칙 해석을 함께 검토해야 한다.

권장 운영 순서

첫 요청 타이밍까지 제어해야 하는 환경에서는 다음 순서를 사용할 수 있다.

  1. Schema Collector로 대상 스키마를 수집한다.
  2. Hub에서 datasource와 정책 매핑을 완료한다.
  3. Hub CLI 또는 API로 Wrapper 설정을 export하거나 동기화한다.
  4. Wrapper storage에 필요한 파일을 반영한다.
  5. Wrapper 또는 애플리케이션을 기동한다.
  6. 보호 동작이 확인된 뒤 사용자 트래픽을 연다.