다음을 통해 공유


Azure Database for PostgreSQL에 대한 아키텍처 모범 사례

Azure Database for PostgreSQL은 PostgreSQL 오픈 소스 관계형 데이터베이스를 기반으로 하는 Azure의 관계형 데이터베이스 서비스입니다. 예측 가능한 성능, 보안, 고가용성 및 동적 확장성을 갖춘 중요 업무용 워크로드를 지원하는 완전히 관리되는 클라우드 기반 데이터베이스 솔루션입니다. Azure Database for PostgreSQL은 PostgreSQL 데이터베이스 엔진의 커뮤니티 버전을 기반으로 합니다. PostgreSQL 서버 커뮤니티 버전과 호환되며 PostGIS 및 TimescaleDB와 같은 PostgreSQL 확장 기능을 지원합니다.

이 문서에서는 설계자로서 Azure 데이터 옵션을 검토하고 워크 로드의 데이터 저장소로 Azure Database for PostgreSQL을 선택했다고 가정합니다. 이 문서의 지침은 Well-Architected Framework 핵심 요소의 원칙에 매핑되는 아키텍처 권장 사항을 제공합니다.

중요합니다

이 가이드를 사용하는 방법

각 섹션에는 기술 범위로 지역화된 디자인 전략과 함께 중요한 아키텍처 영역을 제공하는 디자인 검사 목록이 있습니다.

또한 이러한 전략을 구체화하는 데 도움이 될 수 있는 기술 기능에 대한 권장 사항도 포함되어 있습니다. 권장 사항은 Azure Database for PostgreSQL 및 해당 종속성에 사용할 수 있는 모든 구성의 전체 목록을 나타내지 않습니다. 대신 디자인 관점에 매핑된 주요 권장 사항을 나열합니다. 권장 사항을 사용하여 개념 증명을 빌드하거나 기존 환경을 최적화합니다.

주요 권장 사항을 보여 주는 기본 아키텍처:
Java에 대한 신뢰할 수 있는 웹앱 패턴입니다.

기술 범위

이 검토는 다음 Azure 리소스에 대한 상호 연결된 결정에 중점을 둡니다.

  • PostgreSQL용 Azure 데이터베이스

신뢰도

안정성 핵심 요소의 목적은 충분한 복원력을 구축하고 오류로부터 빠르게 복구할 수 있는 능력을 개발하여 지속적인 운영을 제공하는 것입니다.

안정성 디자인 원칙은 개별 구성 요소, 시스템 흐름 및 시스템 전체에 적용되는 고급 디자인 전략을 제공합니다.

디자인 검사 목록

  • Azure Database for PostgreSQL 제품 안정성 지침을 숙지합니다.
    자세한 내용은 다음 리소스를 참조하세요.

  • Azure Database for PostgreSQL의 안정성 및 복구 대상을 워크로드 대상에 맞춥니다. 안정성 및 복구 대상을 지원할 수 있는 적절한 Azure Database for PostgreSQL SKU를 선택합니다.

  • Azure Database for PostgreSQL 인스턴스에 적절한 고가용성 및 중복성 구성을 결정합니다. 안정성 요구 사항을 충족하기 위해 영역 중복 또는 영역 구성이 필요한지 여부를 결정합니다.

  • Azure Database for PostgreSQL 인스턴스의 복구를 재해 복구 계획 및 연습에 통합합니다. 복구 대상에 따라 전체 워크로드를 복구할 수 있는지 확인합니다.

  • Azure Database for PostgreSQL 인스턴스를 관찰 플랫폼에 통합합니다. 향상된 메트릭을 사용하도록 설정하여 인스턴스의 상태를 모니터링합니다. 모니터링 솔루션에 고가용성 상태 모니터링 을 포함합니다.

권장 사항

추천 이익
적절한 고가용성 구성을 선택합니다. 고가용성이 구성되면 Azure Database for PostgreSQL 서버는 대기 복제본을 자동으로 프로비전하고 관리합니다. 이 설정을 사용하면 서비스가 계속 사용 가능하며 영역 중단 시 데이터가 손실되지 않습니다.
지역 중복 백업을 구성합니다. 지역 간 읽기 복제본을 배포하여 지역 수준 오류로부터 데이터베이스를 보호할 수 있습니다. 지역 중복 백업은 선택한 지역에서 사용하도록 설정되며 주 서버 지역을 사용할 수 없는 경우 재해 복구에 도움이 됩니다.

Azure Backup 볼트를 사용하여 복구 지점의 장기 저장소에 대해 지리적 중복성을 달성할 수도 있습니다. 지역 가동 중단 또는 재해가 발생하는 경우 Backup을 사용하여 데이터베이스 서버를 Azure 쌍으로 연결된 지역으로 복원하여 가동 중지 시간을 최소화할 수 있습니다.

또한 Azure Backup은 Azure Database for PostgreSQL에 대한 지역 중복성을 제공합니다. 이 기능은 효율성을 높이고 재해 또는 지역 중단 시 가동 중지 시간을 줄입니다.
백업 및 복원 전략을 다시 테스트합니다. 백업 및 복원 전략을 정기적으로 테스트하면 오류가 발생할 경우 데이터베이스를 복구하고 작업을 유지 관리할 수 있습니다.

안전

보안 핵심 요소의 목적은 워크로드에 기밀성, 무결성 및 가용성 보장을 제공하는 것입니다.

보안 디자인 원칙은 Azure Database for PostgreSQL의 기술 디자인에 접근 방식을 적용하여 이러한 목표를 달성하기 위한 높은 수준의 디자인 전략을 제공합니다.

디자인 검사 목록

  • 보안 기준을 검토합니다. 워크로드의 보안 태세를 향상하려면 Azure Database for PostgreSQL에 대한 Azure 보안 기준을 검토합니다.

  • 엄격하고 조건부이며 감사 가능한 ID 및 액세스 관리를 구현합니다. 인증 및 권한 부여에 Microsoft Entra ID를 사용하여 ID 관리를 향상시킵니다.

  • 네트워크 세분화 및 보안 컨트롤을 적용합니다. 가상 네트워크 방화벽 메커니즘과 함께 서버 수준에서 기본 제공 방화벽을 사용하여 다른 워크로드 구성 요소 및 공용 네트워크에서 인스턴스를 격리합니다.

  • 네이티브 보안 기능을 사용하여 추가 보호 계층을 추가합니다. 행 수준 보안 및 연결 제한을 구성하여 악의적인 활동을 방지합니다.

권장 사항

추천 이익
네트워크 보안 그룹방화벽을 구현하여 데이터베이스에 대한 액세스를 제어합니다. 보안을 위한 제로 트러스트 모델의 일부로 네트워크 세분화를 사용하여 애플리케이션 및 데이터베이스 서버와 같은 구성 요소 간의 통신 경로를 필요한 항목으로만 제한합니다. 이 기능은 네트워크 보안 그룹 및 애플리케이션 보안 그룹을 사용하여 구현할 수 있습니다.
Azure Private Link를 통해 데이터베이스에 연결합니다. Private Link를 사용하면 Azure Database for PostgreSQL에 대한 프라이빗 엔드포인트를 만들어 가상 네트워크 내에서 서비스를 확장할 수 있습니다.
인증 및 권한 부여에 Microsoft Entra ID 를 사용하여 ID 관리를 향상시킵니다. Microsoft Entra 인증을 사용하여 Microsoft Entra의 관리 ID를 사용하여 Azure Database for PostgreSQL에 연결할 수 있습니다.
행 수준 보안을 구성합니다. 행 수준 보안은 데이터베이스 관리자가 특정 데이터 행이 하나 이상의 역할에 대해 표시되고 작동하는 방식을 제어하는 정책을 정의할 수 있는 PostgreSQL 보안 기능입니다. 행 수준 보안은 PostgreSQL 데이터베이스 테이블에 적용할 수 있는 추가 필터입니다.
규정 준수에 필요한 경우 데이터 암호화에 CMK(고객 관리형 키)를 사용하고 Azure Key Vault에 키를 저장합니다. CMK를 사용하면 회사 정책에 맞게 키 회전을 포함하여 암호화 키의 수명 주기를 완전히 제어할 수 있습니다. Key Vault를 사용하면 사용자 고유의 전용 Key Vault 인스턴스 내에서 암호화 키를 중앙 집중식으로 관리하고 구성할 수 있습니다.
로그인 시도가 과도하게 실패한 IP 주소에 대해 연결 제한을 사용하도록 설정합니다. 서버 매개 변수를 connection_throttling 설정하면 enabled 동일한 IP 주소에서 반복되는 연결 시도를 제한하여 악의적인 로그인 시도 및 DDoS(분산 서비스 거부) 공격으로부터 데이터베이스를 보호할 수 있습니다.
정기적으로 보안 감사를 수행합니다. 정기적으로 보안 감사를 수행하면 잠재적인 취약성을 식별하고 수정할 수 있습니다.

비용 최적화

비용 최적화는 비즈니스 요구 사항을 충족 하면서 지출 패턴을 감지하고, 중요한 영역에 대한 투자의 우선 순위를 지정하고, 조직의 예산을 충족하도록 다른 영역에서 최적화하는 데 중점을 둡니다.

비용 최적화 디자인 원칙은 이러한 목표를 달성하고 Azure Database for PostgreSQL 및 해당 환경과 관련된 기술 설계에서 필요에 따라 장단위를 만들기 위한 높은 수준의 디자인 전략을 제공합니다.

디자인 검사 목록

  • 초기 비용을 예측합니다. 비용 모델링 연습의 일환으로 Azure 가격 계산기를 사용하여 워크로드에서 Azure Database for PostgreSQL과 관련된 대략적인 비용을 평가합니다.

  • 워크로드에 적합한 서비스 계층을 선택합니다. 컴퓨팅 리소스에 대한 버스트 가능, 범용 또는 메모리 최적화 가격 책정 계층이 사용 사례 요구 사항을 충족하는지 여부를 확인합니다.

  • 잘 알고 있는 크기 조정 전략을 적용합니다. Azure Database for PostgreSQL 리소스의 크기를 조정하는 시기와 방법을 확인하려면 워크로드 용량과 수요를 지속적으로 관찰하고 분석합니다.

  • 사용 가능한 할인을 활용합니다. 1년 또는 3년 컴퓨팅 예약을 고려합니다. 예약 인스턴스는 컴퓨팅 리소스에 대한 상당한 비용을 절감할 수 있습니다.

  • 프로비전된 스토리지를 사용합니다. 프로비전된 총 서버 스토리지의 최대 100% 백업 스토리지에 대한 추가 요금은 없습니다.

  • 중복성 비용을 이해합니다. 영역 중복 또는 영역 구성을 사용하면 인스턴스 비용이 두 배가 되므로 중복 디자인을 신중하게 고려해야 합니다.

  • 보호된 인스턴스 및 백업 스토리지 비용을 이해합니다. Azure Backup을 사용하여 PostgreSQL용 Azure Databse를 백업하는 경우 250GB마다 보호된 인스턴스 요금이 발생하고 총 데이터 저장 및 중복성 유형에 따라 백업 스토리지 요금이 발생합니다.

  • 앱과 동일한 지역에 배포합니다. 전송 비용을 최소화하기 위해 애플리케이션과 동일한 지역에 배포합니다.

  • 데이터베이스 및 서버를 통합합니다. 실제로 여러 데이터베이스와 서버를 단일 서버로 통합하면 비용을 절감할 수 있습니다.

권장 사항

권장 사항 혜택
올바른 계층 및 SKU를 선택합니다. 올바른 계층 및 SKU를 선택하면 과도하게 프로비전된 리소스에 대한 낭비를 방지할 수 있습니다. Azure Advisor는 전체 Azure 지출을 최적화하고 줄이기 위해 권장 사항을 제공하고 서버 권한 부여 제안을 포함합니다.
워크로드 수요가 변경되면 컴퓨팅 및 스토리지 리소스의 크기를 조정합니다. 필요에 따라 컴퓨팅 리소스를 수직(위쪽 또는 아래쪽)과 수평(아웃 또는 인)으로 확장할 수 있습니다. 확장한 후에는 스토리지를 축소할 수 없습니다.
시작/중지 기능을 사용합니다. 시작/중지 기능을 사용하여 서버가 필요하지 않을 때 실행되지 않도록 합니다.

운영 효율성

운영 우수성은 주로 개발 관행, 관찰성 및 릴리스 관리를 위한 절차에 중점을 둡니다.

운영 우수성 디자인 원칙은 워크로드의 운영 요구 사항에 대한 이러한 목표를 달성하기 위한 높은 수준의 디자인 전략을 제공합니다.

디자인 검사 목록

  • 데이터베이스의 복구 가능성을 최적화합니다. 규정 준수 요구 사항을 충족하도록 백업 및 보존 정책을 정의합니다.

  • 운영 작업을 자동화합니다. 자동화 작업을 사용하여 서버 시작 및 중지, 리소스 크기 조정 및 기타 작업과 같은 작업을 자동으로 수행합니다.

  • 데이터베이스 상태 및 성능을 모니터링합니다. 인스턴스에서 로그 및 메트릭을 수집하고 분석하여 잠재적인 문제를 사전에 검색합니다.

권장 사항

추천 혜택
Azure Backup 정책을 개별적으로 또는 네이티브 자동화된 백업과 함께 사용하여 데이터베이스를 백업합니다. Azure Database for PostgreSQL은 데이터베이스에 대한 자동화된 백업 및 지정 시간 복원을 제공합니다. 백업에 대한 보존 기간을 최대 35일까지 구성할 수 있습니다.

Azure Backup을 사용하여 백업을 만드는 방법 및 시기, 복구 지점의 보존 기간 및 데이터 보호 및 복구 규칙을 정의합니다. 최대 10년 동안 Azure 백업 보관소에 복구 지점을 유지할 수 있습니다. Azure Business Continuity Center를 사용하여 백업 및 복원 작업을 관리할 수도 있습니다.
서비스 업데이트를 적용하도록 사용자 지정 유지 관리 기간을 예약합니다. Azure 구독에서 각 Azure Database for PostgreSQL에 대한 사용자 지정 일정을 정의할 수 있습니다. 사용자 지정 일정을 사용하면 요일 및 1시간 유지 관리 기간의 시작 시간을 선택하여 서버에 대한 유지 관리 기간을 지정할 수 있습니다.
서버를 모니터링 하여 정상 상태이고 예상대로 수행되는지 확인합니다. Azure Database for PostgreSQL에는 Azure Database for PostgreSQL 인스턴스를 지원하는 리소스의 동작에 대한 인사이트를 제공하는 다양한 메트릭이 있습니다. 향상된 메트릭을 사용하도록 설정하여 데이터베이스에 대한 세분화된 모니터링 및 경고를 가져올 수도 있습니다.

성능 효율성

성능 효율성은 용량 을 관리하여 부하가 증가하는 경우에도 사용자 환경을 유지하는 것입니다. 이 전략에는 리소스 크기 조정, 잠재적인 병목 현상 식별 및 최적화, 최고 성능 최적화가 포함됩니다.

성능 효율성 디자인 원칙은 예상된 사용량에 대해 이러한 용량 목표를 달성하기 위한 높은 수준의 디자인 전략을 제공합니다.

디자인 검사 목록

  • 쿼리를 최적화합니다. 네이티브 기능을 사용하여 쿼리를 최적화할 기회를 찾습니다.

  • 인덱스를 최적화합니다. 인덱스 튜닝과 같은 기능을 사용하여 쿼리 패턴을 자동으로 분석하고 성능 향상을 위해 인덱스를 만들거나 삭제하기 위한 실행 가능한 권장 사항을 받습니다.

  • 읽기 전용 작업을 오프로드합니다. 애플리케이션에서 읽기 전용 연결 문자열을 지원하는 경우 읽기 전용 작업을 오프로드하여 복제본을 읽을 수 있습니다.

권장 사항

추천 혜택
쿼리 저장소를 사용하여 시간에 따른 쿼리 성능을 추적합니다. 쿼리 저장소는 가장 오래 실행되고 리소스를 많이 사용하는 쿼리를 빠르게 찾을 수 있도록 하여 성능 문제 해결을 간소화합니다.
Query Performance Insight를 사용하여 워크로드에서 가장 많이 사용되는 리소스 및 장기 실행 쿼리를 식별합니다. Query Performance Insight를 사용하면 장기 실행 쿼리 및 시간에 따른 변경 내용을 식별하고, 영향을 주는 대기 유형을 결정하고, 빈도 및 기타 이점을 통해 상위 데이터베이스 쿼리를 분석할 수 있습니다.
쿼리 저장소에서 인덱스 튜닝을 사용하여 추적된 쿼리를 분석하고 권장 사항을 제공합니다. 인덱스 튜닝은 쿼리 저장소가 추적하는 워크로드를 분석합니다. 분석된 워크로드의 성능을 향상시키거나 중복 또는 사용되지 않는 인덱스를 삭제하기 위한 인덱스 권장 사항을 생성합니다. 인덱스 튜닝을 사용하면 유익한 인덱스, 중복 인덱스 및 사용되지 않는 인덱스를 식별할 수 있습니다.
지능형 튜닝을 사용하여 성능을 자동으로 향상시키고 문제를 방지합니다. 지능형 튜닝은 Azure Database for PostgreSQL 유연한 서버 데이터베이스의 상태를 지속적으로 모니터링하고 데이터베이스를 워크로드에 맞게 동적으로 튜닝합니다.

Azure 정책

Azure는 Azure Database for PostgreSQL 및 해당 종속성과 관련된 광범위한 기본 제공 정책 집합을 제공합니다. 이전 권장 사항 중 일부는 Azure Policy를 통해 감사할 수 있습니다. 예를 들어 다음을 확인할 수 있습니다.

포괄적인 거버넌스를 위해 Azure Database for PostgreSQL에 대한 Azure Policy 기본 제공 정의 및 데이터 저장소의 보안에 영향을 줄 수 있는 기타 정책을 검토합니다.

Azure Advisor 권장 사항

Azure Advisor는 모범 사례를 따라 Azure 배포를 최적화하는 데 도움이 되는 개인 설정된 클라우드 컨설턴트입니다.

자세한 내용은 Azure Advisor를 참조하세요.