Azure PostgreSQL – Flexible Server: 기본값이 조용히 수천 달러를 낭비하는 이유와 해결 방법
By Mirko Peters · · Updated
Azure PostgreSQL 기본값은 클라우드 청구 비용을 늘릴 수 있습니다. 숨은 비용을 찾아내고, 설정을 최적화하고, Flexible Server에서 수천 달러를 절감하는 방법을 지금 확인해 보세요.
Automatically translated with AI from the original post. Read the English original
Azure PostgreSQL 청구 비용이 실제 필요에 맞게 나오고 있다고 생각하실 수 있습니다. 그러나 기본 설정 때문에 비용이 늘어날 수 있습니다. 관리형 서비스는 데이터베이스의 패치와 운영을 대신해 주지만, 비용을 자동으로 낮춰 주지는 않습니다. 설정을 확인하지 않으면 사용하지 않는 리소스에 대해서도 비용을 지불하게 됩니다. 비용을 절감하려면 측정하고, 변경하고, 불필요한 리소스를 정리해야 합니다. 원인을 모른 채 비용을 낭비하지 않도록 지금 환경을 점검해 보시기 바랍니다.
핵심 요약
Azure PostgreSQL의 기본 설정 때문에 비용이 더 많이 나올 수 있습니다. 설정이 실제 사용량에 맞는지 자주 확인하시기 바랍니다.
필요 이상으로 큰 서버와 필요하지 않은 고가용성 구성은 비용을 늘릴 수 있습니다. 실제 사용량을 확인하여 리소스에 맞는 크기를 선택하시기 바랍니다.
자동 확장 설정 때문에 스토리지가 점점 커질 수 있습니다. 매월 스토리지를 점검하고 자동 확장에 상한선을 설정하여 사용하지 않는 공간에 대해 비용을 지불하지 않도록 하시기 바랍니다.
복제본에는 명확한 역할이 있어야 합니다. 작업에 도움이 되지 않는 복제본은 삭제하여 추가 비용을 방지하시기 바랍니다.
정기적으로 점검하고 자동화를 활용하여 비용 문제를 조기에 발견하시기 바랍니다. 사용량이 높을 때 알림을 설정하고, 월별 점검 일정을 계획하여 비용을 관리 가능한 수준으로 유지하시기 바랍니다.
Azure PostgreSQL 청구 비용은 워크로드가 아니라 기본값을 반영한다
관리형은 패치를 의미하지, 최적화를 의미하지는 않는다
관리형 데이터베이스 서비스가 모든 것을 알아서 처리해 줄 것이라고 생각하실 수 있습니다. Azure PostgreSQL은 업데이트와 보안 패치를 처리합니다. 버그 수정이나 시스템 보안 유지에 대해 걱정하실 필요는 없습니다. 하지만 비용을 얼마나 지불할지는 여전히 사용자가 통제합니다. 서비스가 사용량을 모니터링하거나 필요에 맞게 리소스를 조정해 주지는 않습니다. 비용을 절감하려면 설정을 직접 확인하고 변경해야 합니다.
팁: 관리형 서비스는 자동 업데이트와 지원을 제공하지만, 비용은 직접 관리해야 합니다.
많은 사용자가 관리형이면 최적화되어 있다고 믿습니다. 이는 사실이 아닙니다. Azure PostgreSQL은 데이터베이스를 계속 실행해 주지만, 서버나 스토리지의 크기를 적절하게 맞춰 주지는 않습니다. 선택한 리소스에 대해서는 실제로 다 사용하지 않더라도 비용을 지불하게 됩니다. 큰 서버나 추가 스토리지를 선택하면 매시간 그 비용을 지불하게 됩니다.
설정 후 방치하는 함정
Azure PostgreSQL을 설정할 때 많은 옵션이 보입니다. 안전해 보인다는 이유로 기본값을 선택하실 수 있습니다. 문제를 피하고 싶어서 필요 이상의 리소스를 선택하기도 합니다. 설정 이후에는 이러한 선택을 잊어버리기 쉽습니다. 데이터베이스는 계속 실행되지만 청구 비용은 늘어납니다.
다음은 흔히 빠지기 쉬운 함정입니다.
워크로드에 필요한 것보다 큰 서버를 선택하는 경우
자동 확장 스토리지를 켜 두고 한 번도 줄이지 않는 경우
중요하지 않은 데이터베이스에도 모든 고가용성을 활성화하는 경우
테스트용으로 복제본을 추가한 뒤 삭제하지 않는 경우
함정 | 결과 |
|---|---|
과도한 컴퓨팅 | 월 비용 증가 |
추가 스토리지 | 미사용 용량에 대한 요금 |
불필요한 고가용성 | 요금 두 배 부과 |
유휴 복제본 | 추가 청구 |
Azure PostgreSQL은 이러한 설정을 대신 변경해 주지 않습니다. 선택 사항을 직접 검토하고 실제 워크로드에 맞게 조정해야 합니다. 그렇지 않으면 사용하지 않는 리소스에 대해 비용을 계속 지불하게 됩니다.
Azure PostgreSQL의 5가지 주요 비용 누수 지점
매월 높은 청구 금액이 나올 수 있습니다. 그 원인은 대개 다섯 가지 주요 비용 누수 지점에 숨어 있습니다. 어디를 살펴봐야 하는지 알면 문제를 해결하고 비용을 절감할 수 있습니다.
컴퓨팅 기준선과 버스터블 함정
컴퓨팅 비용은 매시간 발생합니다. Azure PostgreSQL은 전용 서버에서 실행됩니다. 큰 서버를 선택하면 데이터베이스가 유휴 상태일 때도 비용을 지불하게 됩니다. 많은 사용자가 저렴해 보인다는 이유로 버스터블 SKU를 선택합니다. 버스터블 서버는 CPU 크레딧을 사용합니다. 워크로드가 하루 종일 실행된다면 크레딧이 빠르게 소진됩니다. 크레딧이 떨어지면 데이터베이스 속도가 느려집니다. 이때도 서버 비용은 그대로 지불하지만 전체 성능은 얻지 못합니다.
참고: CPU 사용률이 대부분의 시간 동안 낮게 유지된다면 서버 크기를 줄일 수 있습니다. 데이터베이스가 업무 시간에만 실행된다면 중지 시간을 예약하여 비용을 절감할 수 있습니다.
함정 | 발생하는 상황 |
|---|---|
과도한 서버 크기 | 사용하지 않는 성능에 대해 비용을 지불함 |
버스터블 SKU | 성능이 제한되는데도 비용은 그대로 지불함 |
스토리지 증가와 프리미엄 SSD 과다 구매
스토리지는 시간이 지나면서 늘어납니다. Azure PostgreSQL은 디스크에 자동 확장을 사용합니다. 데이터가 늘어나면 디스크 크기도 커집니다. 문제는 데이터를 삭제해도 디스크 크기는 줄지 않는다는 점입니다. 디스크가 한 번이라도 도달했던 최대 크기에 대한 비용을 계속 지불하게 됩니다. 많은 사용자가 높은 속도를 약속한다는 이유로 Premium SSD v2를 선택합니다. 이 계층은 용량, IOPS, 처리량에 대해 각각 요금을 부과합니다. 이러한 기능을 모두 사용하지 않는다면 비용이 낭비됩니다.
팁: 스토리지를 매달 점검하십시오. 자동 확장에 상한을 설정하십시오. 높은 IOPS나 처리량이 꼭 필요한 경우에만 Premium SSD v2를 사용하십시오.
사용하지 않는 디스크 공간에 대해서도 비용을 지불하게 됩니다.
사용하지 않는 고성능 스토리지에 대해서도 비용을 지불하게 됩니다.
기본값으로 두면 안 되는 고가용성 보험
고가용성(HA)은 안전해 보입니다. 다운타임을 피하고 싶으니 모든 데이터베이스에 HA를 켜는 경우가 많습니다. 하지만 HA는 컴퓨팅과 스토리지 비용을 두 배로 늘립니다. 트래픽을 전혀 처리하지 않는 대기 서버에 비용을 지불하는 셈입니다. 데이터베이스에 무중단이 필요하지 않다면 HA는 비용만 낭비하게 됩니다.
경고: HA는 중요 시스템에만 사용하십시오. 내부용이나 테스트용 데이터베이스에는 백업과 복제본으로 대응하는 것이 낫습니다.
HA 사용 대상 | 결과 |
|---|---|
모든 데이터베이스 | 비용 두 배 |
중요도가 낮은 DB | 불필요한 보험 |
비용만 드는 복제본
복제본은 보고와 재해 복구에 도움이 됩니다. 하지만 각 복제본은 별도의 비용이 드는 완전한 서버입니다. 테스트용이나 "혹시 몰라서" 복제본을 추가하면 그만큼 비용이 더 나갑니다. 애플리케이션이 복제본에서 읽기를 수행하지 않는다면 비용만 낭비하는 셈입니다. 복제본을 여러 단계로 연쇄 구성하면 비용이 기하급수적으로 늘어납니다.
팁: 모든 복제본이 실제 목적을 가지고 있는지 확인하십시오. BI 도구와 애플리케이션이 읽기 트래픽을 복제본으로 보내도록 구성하십시오.
복제본은 기본 서버의 작업 부담을 덜어 주어야 합니다.
실제 워크로드에 도움이 되지 않는 복제본은 제거하십시오.
백업과 유지 관리 기간
백업은 데이터를 보호합니다. Azure PostgreSQL은 스냅숏과 로그를 여러 날 동안 보관합니다. 보존 기간을 기본값으로 두면 스토리지 비용이 계속 늘어납니다. 유지 관리 기간은 업데이트가 언제 적용될지를 결정합니다. 사용자 지정 기간을 설정하지 않으면 업데이트가 업무 시간에 진행될 수 있습니다. 이 경우 다운타임과 예상치 못한 비용이 발생할 수 있습니다.
참고: 백업 보존 기간은 실제 필요에 맞춰 설정하십시오. 복원을 자주 테스트하십시오. 업무가 몰리지 않는 시간대로 유지 관리 기간을 선택하십시오.
기본 설정 | 발생할 수 있는 문제 |
|---|---|
긴 백업 보존 기간 | 높은 스토리지 비용 |
기본 유지 관리 일정 | 업무 시간 중 다운타임 |
이 다섯 가지 영역을 점검하면 눈에 띄지 않는 비용 누수를 막을 수 있습니다. Azure PostgreSQL은 제어권을 제공하지만, 그 권한을 실제로 사용해야 합니다. 설정을 점검하고, 리소스 크기를 실제 필요에 맞추고, 필요 없는 것은 정리하십시오.
Azure PostgreSQL 리소스 적정 규모 조정 가이드
실제 워크로드 지표 관찰하기
먼저 측정부터 시작해야 합니다. 실제 워크로드 지표는 데이터베이스가 실제로 무엇을 하는지 보여 줍니다. 요청 빈도, 응답 시간, 종속성 호출 같은 수치를 보면 서버가 얼마나 바빠지는지, 언제 느려지는지 알 수 있습니다. 이 수치는 필요한 리소스가 무엇인지 판단하는 데 도움이 됩니다.
지표 | 설명 |
|---|---|
서버 요청 빈도 | 서버가 처리한 요청 수를 측정합니다. |
서버 응답 시간 | 요청에 응답하는 데 걸린 시간을 나타냅니다. |
종속성 호출 | 종속성에 대한 호출 수를 집계합니다. |
이 지표는 매주 확인해야 합니다. 요청 빈도가 낮고 응답 시간이 빠르다면 서버가 너무 클 수 있습니다. 수치가 높다면 리소스를 더 늘려야 할 수 있습니다.
컴퓨팅 및 스토리지 조정
측정한 뒤에는 컴퓨팅과 스토리지를 조정할 수 있습니다. CPU 사용률이 대부분의 시간 동안 25% 아래에 머문다면 더 작은 서버를 선택하십시오. 하루 종일 실행할 필요가 없는 데이터베이스에는 중지 및 시작 일정을 사용할 수도 있습니다. 스토리지는 사용 용량을 살펴보십시오. 디스크가 데이터보다 훨씬 크다면 줄여야 합니다. 디스크가 지나치게 커지지 않도록 자동 확장에 상한을 설정하십시오. Premium SSD v2는 고속 처리나 대량의 입출력이 꼭 필요한 경우에만 선택하십시오.
팁: 컴퓨팅과 스토리지를 매달 점검하십시오. 사용하지 않는 리소스는 제거해 비용을 절감하십시오.
HA, 복제본, 백업 최적화하기
고가용성은 항상 온라인 상태를 유지해야 하는 데이터베이스에만 사용하십시오. 그 외 데이터베이스에는 백업과 읽기 복제본이 더 적합합니다. 모든 복제본이 보고나 재해 복구처럼 실제 업무에 도움이 되는지 확인하십시오. 목적이 없는 복제본은 제거하십시오. 백업 보존 기간은 기본값이 아니라 실제 필요에 맞춰 설정하십시오. 몇 달에 한 번은 복원을 테스트하십시오. 업무가 몰리지 않는 시간대로 유지 관리 기간을 선택하십시오.
고가용성은 중요 시스템에만 사용하십시오.
BI 도구를 읽기 복제본에 연결하십시오.
오래된 백업과 사용하지 않는 복제본을 정리하십시오.
참고: 정기적인 정리와 똑똑한 일정 관리는 비용을 낮게 유지하고 데이터베이스를 건강하게 지켜 줍니다.
지속적인 비용 관리 모범 사례
정기 점검과 자동화
Azure PostgreSQL을 자주 점검해야 합니다. 점검하면 낭비를 일찍 발견할 수 있습니다. Azure 도구로 서버 크기와 스토리지를 확인하십시오. 백업 설정도 함께 확인하십시오. 매달 점검하는 계획을 세우십시오. 사용하지 않는 항목을 발견하면 빠르게 제거하십시오.
자동화를 활용하면 이 작업이 더 쉬워집니다. 스크립트로 임시 서버에 태그를 지정할 수 있습니다. 임시 서버가 너무 오래 유지되면 알림을 설정하세요. Azure Policy로 스토리지와 백업에 대한 규칙을 설정할 수 있습니다. 하루 종일 실행할 필요가 없는 서버는 시작 및 중지 시간을 자동화하세요. 비용을 절감할 수 있으며 많은 수작업이 필요하지 않습니다.
팁: 자동화를 활용하면 문제를 조기에 발견할 수 있습니다. CPU 사용률이 높거나 스토리지 증가량이 많을 때 알림을 설정하세요. 비용이 지나치게 커지기 전에 문제를 해결할 수 있습니다.
월간 감사를 위한 간단한 체크리스트는 다음과 같습니다.
서버의 CPU 및 메모리 사용량을 확인합니다.
스토리지 크기와 증가 추이를 확인합니다.
백업 보존 기간이 요구 사항에 맞는지 확인합니다.
사용하지 않는 복제본을 제거하고 복원을 테스트합니다.
임시 리소스에 태그를 지정하고 정리합니다.
감사 작업 | 취해야 할 조치 |
|---|---|
CPU/메모리 검토 | 사용률이 낮으면 규모 축소 |
스토리지 감사 | 디스크 축소 또는 용량 상한 설정 |
백업 점검 | 보존 기간 조정 |
복제본 검토 | 유휴 복제본 제거 |
임시 리소스 | 삭제하거나 TTL 태그 지정 |
비용 관리 원칙을 위한 팀 교육
팀에 비용 관리 방법을 가르치세요. 비용 관리의 출발점은 무엇을 해야 하는지 아는 것입니다. 기본값이 어떻게 비용 낭비로 이어지는지 팀에 보여 주세요. 자체 환경에서 나온 실제 사례를 제시하세요. 적정 규모 조정(right-sizing)이 왜 중요한지 설명하세요.
새 서버나 복제본을 만들기 전에 팀원들이 먼저 검토하도록 하세요. 비용 관리를 신규 팀원 교육의 일부로 포함하세요. 회의에서 팁을 공유하세요. "CPU 사용률이 계속 낮으면 규모를 축소한다" 또는 "30일 후 사용하지 않는 복제본은 제거한다"와 같이 간단한 규칙을 활용하세요.
경고: 모든 구성원이 비용 통제에 힘을 보태야 합니다. 팀이 영향을 정확히 알게 되면 더 현명한 선택을 하게 됩니다.
짧은 교육을 진행하거나 가이드를 공유할 수 있습니다. 감사에서 얻은 수치를 활용하세요. 누군가 낭비 요소를 발견하고 제거하면 이를 축하하세요. 이렇게 하면 모두가 협력하여 비용을 낮게 유지할 수 있습니다.
기본 설정을 그대로 사용하지 않는다면 Azure PostgreSQL 비용을 낮출 수 있습니다. 데이터베이스의 사용 부하를 확인하고, 적절한 리소스를 선택하고, 구성을 자주 점검하면 비용을 절감할 수 있습니다. 플레이북과 비용 누수 단계를 따라 직접 감사를 진행해 보세요.
오늘 바로 실행하세요: 지금 환경을 살펴보고, 설정을 변경하고, 낭비가 커지기 전에 멈추세요. 다음 청구서에서 기본값이 아닌 실제 사용량을 확인할 수 있을 것입니다.
자주 묻는 질문
Azure PostgreSQL Flexible Server에서 가장 큰 비용 누수는 무엇인가요?
대부분의 사용자가 컴퓨팅에 과도하게 비용을 지출합니다. 지나치게 큰 서버를 선택하면 비용이 낭비됩니다. 버스트 가능(Burstable) SKU도 생각보다 비용이 많이 들 수 있습니다. CPU 사용량을 자주 확인하세요. 그만큼의 성능이 필요하지 않다면 서버 규모를 줄이세요.
고가용성(High Availability)이 필요한지 어떻게 알 수 있나요?
고가용성은 중요한 데이터베이스에만 필요합니다. 비즈니스에서 일부 다운타임을 감수할 수 있다면 끌 수 있습니다. 데이터베이스를 항상 가동해야 할 필요가 없다면 대신 백업을 활용하세요.
데이터를 삭제한 후 스토리지를 줄일 수 있나요?
Azure PostgreSQL은 디스크 크기를 자동으로 줄이지 않습니다. 스토리지 크기는 직접 변경해야 합니다. 사용하지 않는 공간에 비용을 지불하지 않도록 디스크 크기를 매달 확인하세요.
PostgreSQL 환경은 얼마나 자주 감사해야 하나요?
구성을 매달 점검하세요. 이렇게 하면 낭비가 커지기 전에 발견할 수 있습니다. Azure 도구를 사용해 서버, 스토리지, 백업, 복제본을 확인하세요.