PostgreSQL 데이터베이스 사용 가능 범위

반응형

PostgreSQL 데이터베이스 데이터 디렉터리로 CIFS, NFS/NAS, 로컬 디스크 사용 가능 여부와 권고 사항, 권한 요구 조건(0700/0750) 및 기본 보안 정책을 정리한다.

PostgreSQL 데이터베이스 사용 가능 범위

PostgreSQL 데이터베이스 사용 가능 범위

PostgreSQL은 데이터 무결성과 트랜잭션 일관성을 매우 엄격하게 요구하는 데이터베이스다. 이 때문에 데이터 디렉터리(PGDATA)가 위치하는 스토리지 유형에 따라 사용 가능 여부와 안정성이 크게 달라진다. 공식 문서와 운영 경험을 기준으로, CIFS, NFS/NAS, 로컬 디스크 환경에서의 사용 가능 범위를 정리한다.

1️⃣ CIFS(SMB) – 사용 불가능

CIFS(SMB)는 PostgreSQL 데이터 디렉터리 용도로 사실상 사용 불가능하다. 가장 큰 이유는 PostgreSQL이 요구하는 파일 시스템 권한과 동작 방식을 CIFS가 충족하지 못하기 때문이다.

chown / chmod 정상 동작 불가
POSIX 파일 잠금(lock) 보장 불가
fsync 동작 신뢰성 부족

PostgreSQL은 데이터 디렉터리에 대해 매우 엄격한 권한 검사를 수행한다. 기본적으로 0700 또는 일부 환경에서 0750 권한만 허용한다. 하지만 CIFS 마운트에서는 실제로 chown, chmod를 실행해도 서버 측 ACL이나 마운트 옵션에 의해 권한이 강제로 무시되거나 변조된다.

이로 인해 PostgreSQL은 기동 시 “Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)” 같은 오류를 발생시키며 데이터베이스를 실행하지 않는다.

2️⃣ NFS / NAS – 일부 가능하나 비권고

NFS나 NAS 스토리지는 설정에 따라 PostgreSQL 데이터 디렉터리로 기술적으로는 사용 가능하다. 그러나 운영 환경에서는 권장되지 않는 선택지로 분류된다.

root_squash 설정 시 권한 문제 발생 가능
NFS 락 매커니즘 장애 시 데이터 손상 위험
네트워크 지연으로 fsync 성능 저하

PostgreSQL은 트랜잭션 커밋 시 fsync를 통해 디스크 기록 완료를 보장한다. 하지만 NFS 환경에서는 네트워크 상태나 NAS 구현 방식에 따라 fsync 의미가 완전히 보장되지 않는 경우가 있다.

특히 장애 상황에서 데이터 손상 가능성이 로컬 디스크보다 훨씬 커질 수 있어, 운영 DB에서는 백업 저장소 용도로만 제한적으로 사용하는 것이 일반적이다.

3️⃣ 로컬 디스크 – 권장 환경

PostgreSQL 데이터 디렉터리 용도로 가장 권장되는 환경은 로컬 디스크다. 물리 서버, 가상머신, 클라우드 환경 모두에서 로컬 스토리지가 기본 권고 사항이다.

ext4 / xfs 파일 시스템 권장
권한 0700 또는 0750 완전 지원
fsync 및 파일 잠금 동작 신뢰성 확보

로컬 디스크 환경에서는 PostgreSQL의 WAL, 체크포인트, 트랜잭션 로그 처리 방식이 설계 의도대로 정확히 동작한다. 성능과 안정성 측면에서 가장 예측 가능한 결과를 제공한다.

4️⃣ PostgreSQL 데이터 디렉터리 권한 정책

PostgreSQL은 보안을 위해 데이터 디렉터리 권한을 엄격하게 제한한다.


권장 권한:
0700  (postgres 사용자만 접근)
0750  (postgres + 동일 그룹 접근)
    

데이터 디렉터리가 다른 사용자에게 읽기 또는 쓰기 권한을 허용하는 경우, PostgreSQL은 보안 위험으로 판단해 기동 자체를 거부한다.

5️⃣ 기본적인 PostgreSQL 보안 정책

스토리지 외에도 PostgreSQL 운영 시 기본적으로 지켜야 할 보안 정책들이 있다.

postgres 계정은 로그인 쉘 제한
데이터 디렉터리 외부 접근 차단
pg_hba.conf 기반 접근 제어 강화
불필요한 슈퍼유저 계정 제거

또한 네트워크 접근은 반드시 pg_hba.conf를 통해 제어하고, 외부 접속이 필요한 경우에도 최소 IP, 최소 권한 원칙을 적용하는 것이 기본적인 보안 운영 원칙이다.

6️⃣ 운영 관점 정리

PostgreSQL은 파일 시스템과 스토리지 특성에 매우 민감한 데이터베이스다. CIFS는 구조적으로 부적합하며, NFS/NAS는 예외적 상황에서만 제한적으로 고려해야 한다.

안정적인 운영을 원한다면 데이터 디렉터리는 반드시 로컬 디스크에 두고, 네트워크 스토리지는 백업·아카이빙 용도로만 사용하는 것이 가장 안전한 선택이다.

반응형