통합 스토리지

통합 스토리지 (Integrated Storage)

Vault의 통합 스토리지(Integrated Storage) 는 별도의 외부 스토리지(예: Consul) 없이 Vault 자체에 내장된 Raft 기반 저장소입니다. 통합 스토리지를 사용하면 Vault 클러스터 노드들이 데이터를 스스로 복제·분산 저장하고, 리더 선택과 복구를 자동으로 처리하므로, 인프라를 단순화하면서도 고가용성(HA)과 강력한 일관성(coherence)을 얻을 수 있습니다.

출처: 문서

본문

통합 스토리지란

통합 스토리지는 Raft 합의 알고리즘을 기반으로 하는 Vault 내장 스토리지입니다. 각 Vault 노드는 데이터의 복제본을 보유하며, 노드가 죽거나 추가되어도 Raft가 리더를 선출하고 데이터 일관성을 유지합니다. 이로 인해 별도의 스토리지 클러스터(예: Consul)를 운영할 필요가 없어집니다.

설정 예시

Vault 설정 파일에서 storage "raft"로 지정합니다.

storage "raft" {
  path    = "/vault/data"
  node_id = "node1"
}

cluster_addr = "https://127.0.0.1:8201"
api_addr     = "https://127.0.0.1:8200"

주요 특징

  • 자동 복제 — 클러스터의 모든 노드가 데이터 복제본을 유지합니다.
  • 자동 리더 선택 — active 노드가 죽으면 Raft가 새 리더를 자동 선출합니다.
  • 스냅샷vault operator raft snapshot save/restore 명령으로 데이터 스냅샷을 백업·복원할 수 있습니다.
  • Peer 관리vault operator raft join, vault operator raft list-peers, vault operator raft remove-peer로 노드를 관리합니다.
  • HSM/여러 봉인 — 다른 스토리지와 달리 다양한 봉인 유형과 함께 사용할 수 있습니다.

노드 관리 명령

$ vault operator raft join https://node1:8200   # 클러스터 합류
$ vault operator raft list-peers                 # 피어 목록
$ vault operator raft remove-peer <node_id>      # 노드 제거
$ vault operator raft snapshot save backup.snap  # 스냅샷 백업

Raft 구성 요소 (autopilot)

통합 스토리지는 자동화된 피어 관리를 위한 Autopilot을 지원합니다. Autopilot은 dead 노드 제거, 상태(health) 점검, 새 노드의 자동 합류 등 스토리지 클러스터의 운영을 자동화합니다. 자세한 내용은 Autopilot 문서를 참조하세요.

주의사항

  • 통합 스토리지는 **엄격한 쓰기 합의(fsync)**를 수행하므로, 느린 디스크는 쓰기 성능에 직접 영향을 줍니다(성능 하드웨어 선택 중요).
  • Raft는 단일 하드 디스크의 성능 특성을 따라갑니다. 스토리지 지연(latency)이 높으면 전체 성능이 저하됩니다.
  • 데이터는 Vault가 암호화해 저장하므로 스토리지 계층 탈취만으로 데이터가 노출되지는 않습니다.

Consul에서 이전

기존 Consul 스토리지를 사용하는 배포를 통합 스토리지로 전환할 수 있습니다. 자세한 절차는 Consul 저장소 이전 문서마이그레이션 체크리스트를 참조하세요.

참고: 통합 스토리지의 정확한 성능 지표와 모범 사례는 공식 문서와 하드웨어 가이드를 확인하세요.

더 알아보기 (Learn more)