기존 관리형 Postgres는 트랜잭션 워크로드에는 뛰어나지만 분석 쿼리 성능은 떨어지는 경우가 많으며, 대부분의 평가 체크리스트에서 이 공백을 놓치고 있습니다. Postgres를 하이브리드 트랜잭션 및 분석 엔진으로 평가하는 경우 다른 기준이 필요합니다.
작성자: Databricks 직원
관리형은 사양이 아니라 라벨일 뿐입니다. 기능 페이지에 나열된 내용이 아니라 장애 및 복구 상황에서 무엇을 증명하는지를 바탕으로 클라우드 데이터베이스 관리형 서비스를 평가하세요.
Postgres 관리형 서비스는 공급자가 기본 인프라를 운영하고 패치, 백업, 장애 조치, 확장과 같은 데이터베이스 관리를 자동화하는 PostgreSQL 데이터베이스입니다. 공급자가 실제로 관리하는 범위는 서비스마다 다르므로 "관리형"은 완전한 사양이라기보다는 라벨에 가깝습니다. AWS, Microsoft Azure, Google Cloud를 비롯한 주요 클라우드 공급자와 데이터베이스 전문 공급업체에서 관리형 PostgreSQL 서비스를 제공합니다.
공급업체에서 고가용성, 자동 백업 또는 엔터프라이즈 보안을 내세울 수 있지만, 그러한 주장만으로는 플랫폼 엔지니어와 DBA가 기본 인프라에 장애가 발생했을 때 어떻게 되는지, 데이터베이스를 얼마나 빨리 복원할 수 있는지, 필요한 PostgreSQL 확장이 지원되는지 알 수 없습니다. 프로덕션 환경에서 문제가 발생했을 때 중요한 것은 팀이 얼마나 빨리 문제를 찾아 해결할 수 있는가 하는 점입니다.
플랫폼 엔지니어, DBA, 데이터 아키텍트, 엔지니어링 매니저는 프로덕션용 Postgres 관리형 서비스를 평가할 때 이 내용을 참고하세요. 운영 제어, 고가용성, 재해 복구, 확장 등 마이그레이션 후에 문제를 일으키기 쉬운 영역을 다룹니다. 각 섹션에서는 공급업체가 지원해야 하는 내용, 평가 중에 질문해 볼 가치가 있는 사항, 파일럿에서 답변을 테스트하는 방법을 살펴봅니다. 마이그레이션을 계획 중인 DBA나 플랫폼 엔지니어라면 이 글을 한 번 읽고 마는 것이 아니라 실무 체크리스트로 활용해 보세요.
관리형 Postgres 평가에는 데이터베이스 프로비저닝과 일상적인 관리뿐만 아니라 그 이상의 내용이 포함되어야 합니다. 아래 표는 팀이 검증해야 할 기능과 더 면밀한 검토가 필요한 상황을 파악하는 데 유용한 시작점을 제공합니다.
| 영역 | 확인해야 할 사항 | 주의 신호 |
|---|---|---|
| 운영 범위 | 패치, 업그레이드, 튜닝을 담당하는 주체 및 계속 사용할 수 있는 데이터베이스 제어 기능 | "관리형"이 가상 머신과 운영 체제만 다루는 경우 |
| 고가용성 | 자동 장애 조치, 커밋된 트랜잭션 보장, 가용 영역 간 장애 조치 작동 여부 | 명시된 RPO(복구 시점 목표)가 없거나 수동으로 승격해야 하는 경우 |
| 백업 및 재해 복구 | 시점 복구(PITR), 복원 옵션, 보존 기간, 리전 간 복구 및 복구 목표 | 명시된 RPO 또는 RTO(복구 시간 목표) 없이 지원 요청을 통해서만 재해 복구를 이용할 수 있는 경우 |
| 확장 및 성능 | 크기 조정 동작, 읽기 전용 복제본, 연결 풀링, 스토리지 및 초당 입출력 연산(IOPS) 모델 | 수직적 확장에 오랜 가동 중지 시간이 필요한 경우 |
| 보안 및 규정 준수 | 프라이빗 연결, ID 및 액세스 제어, 고객 관리 키, 감사 로그, 규정 준수 범위 | 퍼블릭 연결이 필요하거나 공급업체에서만 암호화 키를 제어할 수 있는 경우 |
| 호환성 및 확장 | 지원되는 PostgreSQL 버전, 확장, 드라이버, 매개변수 및 슈퍼유저 제한 | 중요한 확장이나 필수 PostgreSQL 기능을 지원하지 않는 경우 |
| 마이그레이션 | 지원되는 마이그레이션 경로, 논리적 복제, 변경 데이터 캡처(CDC) 옵션 | 대용량 데이터베이스를 덤프 및 복원을 통해서만 마이그레이션할 수 있는 경우 |
| 가격 및 총비용 | 컴퓨팅, 스토리지, IOPS, 백업, 복제본, 네트워크 송신 및 확장 지원 비용 | 컴퓨팅 가격만 명확한 경우 |
| 운영 | 데이터베이스 지표, 로그, 알림, PostgreSQL 수준 지원 액세스 | 데이터베이스 관측 가능성이 제한적이거나 PostgreSQL 전문가에게 에스컬레이션할 수 없는 경우 |
| 이식성 및 종료 | 다른 PostgreSQL 환경으로의 표준 내보내기 및 논리적 복제 | 데이터가 독점 형식이나 지원 요청을 통해서만 외부로 반출될 수 있는 경우 |
가장 먼저 확인해야 할 부분은 공급업체의 책임이 끝나고 데이터베이스 팀의 책임이 시작되는 지점입니다. 관리형 서비스는 프로덕션 워크로드가 의존하는 PostgreSQL 제어 기능을 제거하지 않으면서 인프라와 루틴 데이터베이스 운영을 처리해야 합니다. 완전히 관리되는 서비스라고 표현한다고 해서 모든 공급업체가 같은 의미로 사용하는 것은 아닙니다.
유지 관산부터 시작하세요. 마이너 버전 업데이트가 자동으로 이루어지는지, 팀에서 유지 관리 창을 선택할 수 있는지, 변경 전에 공급업체가 얼마나 미리 공지하는지, 업데이트 시 재시작이나 장애 조치가 필요한지 문의하세요. 메이저 버전 업그레이드는 별도의 주의가 필요합니다. PostgreSQL은 각 메이저 버전을 최초 출시일로부터 5년 동안 지원합니다. 따라서 팀에서는 공급업체가 각 버전을 얼마나 오래 지원하는지, 지원이 종료되면 어떻게 되는지 파악해야 합니다. 각 버전에 대해 공급업체가 사용하는 지원 종료일(EOL)을 확인하세요. 일반적으로 데이터베이스 업데이트 전에 공급업체가 공지하는 기간이 짧을수록 일정 조율이 어려워집니다.
구성에 대한 액세스 권한 역시 예상치 못한 문제가 자주 발생하는 부분입니다. 관리형 서비스는 종종 슈퍼유저 액세스를 제한하며, 기본 인프라에 영향을 줄 수 있는 매개변수나 명령을 제한합니다. 마이그레이션하기 전에 사용할 수 있는 역할, 변경할 수 있는 매개변수, ALTER SYSTEM 지원 여부, 제한되는 PostgreSQL 명령을 확인하세요. 예를 들어 일부 서비스에서는 콘솔이나 API를 통해 일련의 매개변수를 편집할 수 있지만 ALTER SYSTEM 명령은 완전히 차단하기도 합니다.
Postgres 데이터베이스의 자동 장애 조치란 서비스가 다른 가용 영역의 스탠바이(standby)를 자동으로 승격할 수 있으며 장애 조치 시 커밋된 트랜잭션에 어떤 일이 발생하는지 명확하게 명시하는 것을 의미합니다. 고가용성은 리전 내 장애로부터 보호하지만 재해 복구와는 다릅니다.
스탠바이가 동기식 복제를 사용하는지 비동기식 복제를 사용하는지, 공급업체가 지원하는 복구 시점이 무엇인지, 승격 후에도 데이터베이스 엔드포인트가 그대로 유지되는지 문의하세요. 기존 연결이 끊어진 후 애플리케이션이 다시 연결해야 하는 경우가 일반적이므로 공급업체는 예상되는 동작을 문서화해야 합니다. 다중 노드 클러스터에서는 승격할 수 있는 노드와 애플리케이션이 새로운 프라이머리를 찾는 방법을 확인하세요. Java, Python 또는 기타 언어로 작성된 연결 풀과 드라이버가 재연결을 원활하게 처리하는지 확인하세요.
데이터베이스에서는 백업과 재해 복구(DR)가 매우 중요합니다. 백업을 통해 데이터베이스를 특정 시점으로 복원할 수 있는지, 공급업체가 복구 목표를 명확하게 명시하고 있는지 확인하세요. RPO는 워크로드가 감당할 수 있는 데이터 손실 허용 범위를 정의합니다. RTO 는 데이터베이스를 사용하지 못하는 상태로 유지할 수 있는 최대 허용 시간을 정의합니다.
어서 서비스에서 WAL(Write-Ahead Log)을 지속적으로 아카이빙하는지, 시점 복구 기능이 얼마나 오래 유지되는지, 복원이 셀프 서비스로 가능한지 문의하세요. 재해 복구의 경우 리전 간 복복제가 지속적으로 이루어지는지 주기를 두고 이루어지는지, 장애 조치가 자동인지 수동인지, 공급업체가 RPO 및 RTO 목표를 공개하는지 확인하세요. 자동 백업과 지속적인 WAL 아카이빙이 결합되어야 시점 복구와 안정적인 데이터 복원이 가능해집니다.
서비스가 컴퓨팅, 스토리지, 연결 및 읽기 트래픽의 증가를 어떻게 처리하는지 확인하세요. 확장은 예상치 못한 가동 중지 시간을 유발하거나 인프라를 수동으로 관리하도록 요구해서는 안 됩니다.
컴퓨팅을 수직 확장할 수 있는지, 읽기 전용 복제본을 사용할 수 있는지, 스토리지 및 초당 입출력 연산(IOPS)이 어떻게 확장되는지, 연결 풀링이 내장되어 있는지 문의하세요. 자동 스케일링이 있는 서비스의 경우 스케일링을 트리거하는 요인, 용량이 변경되는 속도, 스케일링이 활성 연결이나 트랜잭션에 영향을 미치는지 확인하세요. 대부분의 관리형 서비스에서 CPU 및 RAM 스케일링은 일반적으로 몇 번의 클릭이나 단일 API 호출로 가능하므로 팀은 새 인프라를 시작하는 대신 사용자 성장에 맞춰 용량을 조정할 수 있습니다.
서비스가 전송 중 및 저장 중 데이터를 보호 하고, 데이터베이스 액세스를 제어하며, 네트워크에 연결하는 방식을 검증하세요. 보안 기능은 별도의 운영 모델을 요구하기보다 조직의 기존 신원 및 규정 준수 요구 사항과 일치해야 합니다.
사설 연결이 지원되는지, IAM(Identity and Access Management)이 데이터베이스 역할과 통합되는 방식, CMK(Customer-Managed Keys)를 사용할 수 있는지 문의하세요. 또한 감사 로깅, 암호화 제어 및 제공업체의 규정 준수 범위도 확인하세요. 애플리케이션이 사설 IP 주소, 공용 IP 주소 또는 둘 다를 통해 연결할 수 있는지 문의하세요. 대부분의 관리형 제공업체는 저장 중 및 전송 중 암호화를 적용하고 정기적인 OS 패치 및 보안 업데이트를 자동으로 적용하므로, 서비스가 HIPAA 또는 GDPR과 같은 어떤 규정 준수 프레임워크를 지원하는지 확인하세요.
워크로드가 의존하는 PostgreSQL 버전, 확장, 드라이버 및 구성 옵션을 서비스가 지원하는지 확인해야 합니다. 호환성은 제공업체의 PostgreSQL 지원 주장에만 의존하지 말고 실제 애플리케이션을 대상으로 테스트해야 합니다.
사용 가능한 PostgreSQL 버전, 새로운 메이저 버전이 지원되는 속도, 활성화된 확장을 확인하세요. pgvector, PostGIS 및 애플리케이션 종속성과 같은 확장 지원을 확인하세요. 또한 제한되는 매개변수, 역할 및 PostgreSQL 명령어도 확인하세요. 슈퍼유저 제한이 기존 테이블, 함수 또는 확장에 영향을 미치는지, 현재 데이터베이스에 존재하는 객체를 변경해야 하는지 확인하세요. 자체 관리 팀은 종종 전체 OS 액세스 권한이 있는 Ubuntu 또는 다른 Linux 배포판에서 PostgreSQL을 실행하므로 운영 체제에 대한 종속성을 조기에 파악해야 합니다.
AI 워크로드의 경우, 트랜잭션 워크로드와 함께 벡터 검색을 위해 pgvector 지원이 중요합니다.
제공업체가 초기 데이터 마이그레이션과 최종 컷오버를 모두 지원하는 방식을 확인하세요. 소규모 데이터베이스에 적합한 마이그레이션 방법은 이동 중에도 계속 트래픽을 처리해야 하는 프로덕션 시스템에는 실용적이지 않을 수 있습니다.
서비스가 논리적 복제, CDC(Change Data Capture), 기본 PostgreSQL 도구 및 타사 마이그레이션 서비스를 지원하는지 문의하세요. 다른 데이터베이스 엔진에서 마이그레이션하는 경우 지원되는 소스 시스템과 스키마 변환, 데이터 유효성 검사 및 애플리케이션 변경 사항이 처리되는 방식을 확인하세요. Oracle 또는 SQL Server와 같은 다른 데이터베이스에서 프로덕션 DB를 이동하는 경우에도 스키마 변환 및 애플리케이션 테스트가 필요합니다.
마이그레이션 솔루션은 데이터 환경 전반의 종속성을 고려하고 중단을 최소화해야 합니다.
관리형 서비스는 스토리지, 백업, 고가용성, 복제본, 네트워크 전송 및 기타 사용량 기반 리소스에 대한 비용을 추가할 수 있습니다. 자체 관리형 배포에 비해 비용이 절감되는 부분의 상당비율은 온프레미스 하드웨어 및 유지 관리를 피하는 데서 오므로, 기본 가격에 포함된 기능과 유료 부가 기능이 무엇인지 파악하세요.
컴퓨팅, 스토리지, IOPS, 백업, 복제본 및 네트워크 송신에 대한 요금 부과 방식을 확인하세요. 자동 스케일링, 대기 용량 또는 고가용성 구성에 따라 가격이 변경되는지 확인하세요.
사용량 기반 가격 책정으로 워크로드 수요에 맞게 비용을 쉽게 조정할 수 있지만, 팀은 약정하기 전에 여전히 현실적인 트래픽 패턴을 모델링해야 합니다.
프로덕션 서비스에는 성능이나 신뢰성이 저하될 때 데이터베이스 팀이 무슨 일이 일어나고 있는지 파악할 수 있는 충분한 가시성이 필요합니다. 인프라 메트릭만으로는 PostgreSQL 문제를 진단하기에 부족한 경우가 많습니다.
해당 서비스가 데이터베이스 메트릭, 로그, 쿼리 수준 정보를 제공하는지, 그리고 팀이 중요한 상황에 대한 알림을 설정할 수 있는지 확인하세요. 장애 발생 시 지원 엔지니어가 어떤 권한을 가지는지, 그리고 에스컬레이션을 위해 PostgreSQL 전문가가 상주하는지 알아보세요. 시스템 메트릭을 실시간으로 확인할 수 있는 대시보드가 있는지 찾고, 데이터베이스 또는 사용자별로 로그를 필터링할 수 있는지, 시간이나 심각도에 따라 이벤트를 정렬할 수 있는지 확인하세요. 또한 팀에서 제공업체의 도구만 사용하여 PostgreSQL 문제를 해결할 수 있는 기술 역량을 갖추고 있는지도 고려해 보세요.
사용 가능한 PostgreSQL 메트릭, 로그, 쿼리 통계가 무엇인지 문의하세요.
대규모 배포의 경우, 인스턴스별 메트릭뿐만 아니라 모든 데이터베이스에 걸쳐 패턴을 도출할 수 있는지 제공업체의 도구에 문의하세요.
관리형 Postgres 서비스는 전용 내보내기 프로세스에 의존하지 않고도 데이터와 애플리케이션을 다른 PostgreSQL 환경으로 이동할 수 있어야 합니다.
표준 PostgreSQL 도구와 논리적 복제를 사용하여 데이터를 외부로 이동할 수 있는지 문의하세요. 전환을 어렵게 만드는 제공업체 전용 확장 프로그램, API 또는 스토리지 형식이 있는지 확인하세요. 애플리케이션이 독점적인 제공업체 전용 기능에 많이 의존할수록 전환은 더 어려워집니다.
전체 데이터베이스 내보내기가 어떻게 작동하며 제공업체의 지원 없이 실행될 수 있는지 문의하세요.
파일럿은 프로덕션 환경과사 유사한 워크로드에 대해 제공업체의 주장을 테스트해야 합니다. 기능 체크리스트는 서비스가 제공하는 기능을 보여줄 수 있지만, 제어된 장애 및 복구 테스트는 그러한 기능이 실제 상황에서 제대로 작동하는지 보여줍니다.
대표적인 데이터베이스, 애플리케이션 트래픽, 프로덕션 시스템에 필요한 PostgreSQL 확장 프로그램으로 시작하세요. 그런 다음 의사결정에 가장 큰 영향을 미칠 영역을 테스트하세요. 단계적 접근 방식을 선호한다면 중요하지 않은 워크로드부터 시작하여 조금씩 파일럿을 확장해 나가세요.
장애 조치(failover)를 실행하고 복구 시간, 연결 복구, 손실된 트랜잭션을 측정하세요.
원래 요구사항에 비추어 결과를 기록하고 실패한 테스트는 의사결정 지점으로 다루세요. 데이터베이스 분기(branching) 기능은 팀이 마이그레이션 및 애플리케이션 테스트를 위한 격리된 환경을 구축하는 데도 도움이 될 수 있습니다. 엔지니어링, 보안, 재무 팀 간의 파일럿 이후 논의가 객관적으로 유지될 수 있도록 일관된 양식으로 결과를 수집하세요.
Lakebase는 이 체크리스트에서 다루는 여러 영역과 잘 부합합니다. 아래 표는 해당 기능이 일반적인 프로덕션 요구사항과 일치하는 부분과 여전히 면밀한 평가가 필요한 영역을 보여줍니다.
| 체크리스트 영역 | Lakebase 매핑 방식 |
|---|---|
| 운영 | 자동화된 인프라 운영을 갖춘 관리형 서버리스 Postgres입니다. |
| 고가용성 | 커밋된 트랜잭션을 유지하면서 가용 영역 간 자동 전환(promotion)을 지원합니다. 기존 연결은 장애 조치 후에 다시 연결되어야 합니다. |
| 스케일링 | 컴퓨팅과 스토리지가 분리된 오토스케일링을 지원하여 워크로드 수요에 맞춰 용량을 조절할 수 있습니다. |
| 보안 | Databricks 거버넌스 기능과 함께 프라이빗 네트워킹 및 고객 관리형 키를 지원합니다. |
| PostgreSQL 호환성 | pgvector를 포함한 PostgreSQL 도구 및 확장 프로그램을 지원합니다. |
| 재해 복구 | 크로스 리전 DR은 현재 수동 장애 조치를 지원하는 AWS상의 Private Preview 상태입니다. 지역 간 DR이 필수 요구사항인 경우, 자세한 내용은 계정 담당 팀에 문의하세요. |
| 비용 | 사용량 기반 가격 책정을 통해 워크로드 수요에 맞게 비용을 조정할 수 있으나, 팀에서는 예상 워크로드 및 사용 패턴을 모델링해야 합니다. |
| 이식성 | 표준 PostgreSQL 호환성은 마이그레이션 및 전환 테스트의 기반을 제공하지만, 제공업체 종속성은 여전히 평가해야 합니다. |
체크리스트를 통해 팀은 Lakebase, 기타 관리형 Postgres 서비스, 자체 관리형 배포를 프로덕션 요구사항에 비추어 일관되게 비교할 수 있습니다.
관리형 Postgres를 평가하는 팀에게 중요한 질문은 운영 작업 중 실제로 얼마나 많은 부분이 해소되는가 하는 점입니다. Lakebase는 리전 내에서 대부분의 작업을 처리하는 반면, 크로스 리전 재해 복구는 팀이 여전히 책임을 맡아야 하는 영역으로 남아 있습니다.
Lakebase Postgres는 커밋된 트랜잭션을 유지하고 연결 문자열을 그대로 유지하면서 가용 영역 간 보조 컴퓨팅을 자동으로 전환합니다. 기존 연결은 여전히 재연결이 필요합니다.
Lakebase 문서에서는 크로스 리전 재해 복구를 수동 장애 조치가 포함된 AWS상의 Private Preview로 안내하고 있으며, 지역 복구가 프로덕션 요구사항인 경우 이를 고려해야 합니다.
또한 Lakebase는 컴퓨팅을 스토리지와 분리하고 오토ส케일링을 지원하므로, 고정된 데이터베이스 크기에만 의존하는 대신 워크로드 수요에 맞춰 용량을 조절할 수 있습니다.
Databricks를 사용하는 팀의 경우, 프라이빗 네트워킹 및 고객 관리형 키를 통해 Lakebase 배포를 보호하기 위한 추가적인 제어 기능을 확보할 수 있습니다.
프로덕션 안정성과 운영에 영향을 미치는 기능에 집중하세요. 고가용성, 백업, 시점 복구(point-in-time recovery), 재해 복구, 스케일링, 보안, PostgreSQL 호환성, 마이그레이션, 비용, 이식성에 대해 명확한 답변이 있어야 합니다. 또한 제공업체는 문서와 프로덕션 유사 파일럿을 통해 중요한 주장들을 입증할 수 있어야 합니다. 확정을 내리기 전에 이 체크리스트의 각 항목에 대한 문서화된 답변이 마련되어 있어야 합니다.
관리형 서비스는 인프라, 유지 관리, 백업 및 기타 일상적인 작업에 대한 책임을 띰으로써 PostgreSQL 운영에 소요되는 노력을 줄여줄 수 있습니다. 또한 가용성, 스케일링, 보안 및 모니터링을 위한 기본 제공 기능을 제공할 수 있습니다. 그 가치는 제공업체가 실제로 얼마나 많은 운영 책임을 맡는지, 그리고 해당 서비스가 워크로드에 필요한 제어 기능을 여전히 제공하는지에 따라 달라집니다.
관리형 Postgres는 인프라 및 데이터베이스 관리 작업의 대부분을 제공업체로 이전합니다. 자체 관리형 Postgres는 엔지니어링 팀이 인프라, 구성, 확장 프로그램 및 업그레이드에 대해 더 큰 통제력을 갖게 하지만, 해당 구성요소들을 직접 운영할 책임도 부여합니다. 올바른 선택은 조직의 운영 역량, 제어 요구사항, 그리고 워크로드에 따라 달라집니다.
대표적인 워크로드를 사용하여 프로덕션에 가장 중요한 기능을 테스트하세요. 장애 조치, 시점 복구, 스케일링, 마이그레이션, 롤백 테스트를 실행하세요. 복구 시간, 연결 동작, 데이터 무결성, 애플리케이션 성능을 측정하세요. 또한 파일럿에는 모니터링, 지원 에스컬레이션, 데이터 내보내기가 포함되어야 합니다. 시연할 수 없는 기능은 미해결 리스크로 남겨두어야 합니다.
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)
블로그를 구독하고 최신 게시물을 이메일로 받아보세요.