Azure Well-Architected Framework 검토 - Azure Database for PostgreSQL
이 문서에서는 Azure Database for PostgreSQL 대한 아키텍처 모범 사례를 제공합니다.
이 지침은 아키텍처 우수성의 다섯 가지 핵심 요소를 기반으로 합니다.
- 안정성
- 보안
- 비용 최적화
- 운영 우수성
- 성능 효율성
사전 요구 사항
Well-Architected Framework 핵심 요소 이해는 고품질의 안정적이고 효율적인 클라우드 아키텍처를 생성하는 데 도움이 될 수 있습니다. Azure Well-Architected Framework 검토 평가를 사용하여 워크로드를 검토하는 것이 좋습니다.
Azure Database for PostgreSQL PostgreSQL 오픈 소스 관계형 데이터베이스를 기반으로 하는 Azure의 관계형 데이터베이스 서비스입니다. 예측 가능한 성능, 보안, 고가용성 및 동적인 확장성으로 중요 업무용 워크로드를 처리할 수 있는 완전 관리형 Database as a Service 제품입니다. Azure Database for PostgreSQL PostgreSQL 데이터베이스 엔진의 커뮤니티 버전을 기반으로 합니다. PostgreSQL 서버 커뮤니티 버전과 호환되며 PostGIS 및 TimescaleDB와 같은 PostgreSQL 확장 기능을 지원합니다.
참고
Azure Database for PostgreSQL 사용하여 Cognitive Services API의 분석 결과를 저장하는 경량 솔루션 아이디어를 탐색하려면 Azure Database for PostgreSQL 사용하는 지능형 앱을 참조하세요.
안정성
Azure Database for PostgreSQL - 유연한 서버는 동일한 가용성 영역(영역) 내에서 또는 가용성 영역(영역 중복)에서 물리적으로 분리된 주 복제본과 대기 복제본을 프로비전하여 고가용성 지원을 제공합니다. 이 고가용성 모델은 오류가 발생할 경우 커밋된 데이터가 손실되지 않도록 합니다. 또한 이 모델은 데이터베이스가 소프트웨어 아키텍처에서 단일 실패 지점이 되지 않도록 설계되었습니다. Azure Database for PostgreSQL - 유연한 서버는 계획 및 계획되지 않은 가동 중지 시간 이벤트 중에 중요 업무용 데이터베이스의 데이터를 보호하고 가동 중지 시간을 완화하는 기능을 제공합니다. 강력한 복원력과 가용성을 제공하는 Azure 인프라를 기반으로 구축된 유연한 서버에는 오류 보호를 제공하고 복구 시간 요구 사항을 해결하며 데이터 손실 노출을 줄이는 비즈니스 연속성 기능이 있습니다.
안정성 디자인 검사 목록
설계 원칙을 검토하여 아키텍처 비용을 최적화해야 합니다.
- 워크로드에 대한 RPO(복구 지점 목표) 및 RTO(복구 시간 목표)에 대해 정의된 대상입니다.
- 적절한 고가용성 구성을 선택합니다.
- 지역 중복 백업을 구성합니다.
- 재해 복구 계획을 테스트하여 오류가 발생한 경우 신속한 데이터 복원을 보장합니다.
- HA 사용 서버에 대한 주문형 장애 조치(failover)를 테스트하여 애플리케이션이 예상대로 작동하는지 확인합니다.
- 서버를 모니터링하여 정상 상태이고 예상대로 작동하는지 확인합니다.
안정성 권장 사항
권장 | 이점 |
---|---|
워크로드에 대한 RPO(복구 지점 목표) 및 RTO(복구 시간 목표)에 대해 정의된 대상입니다. | 위험 평가를 수행하고 가동 중지 시간 및 데이터 손실의 비용과 위험을 이해하도록 하여 이러한 값을 파생합니다. 이들은 시스템의 비기능적 요구 사항이며 비즈니스 요구 사항에 따라 결정되어야 합니다. |
적절한 고가용성 구성을 선택합니다. | Azure Database for PostgreSQL Server는 고가용성 구성을 제공하여 영역 중단이 있고 데이터가 손실되지 않은 경우 서비스를 계속 사용할 수 있도록 합니다. 고가용성이 구성되면 Azure Database for PostgreSQL 서버는 대기 복제본(replica) 자동으로 프로비전하고 관리합니다. |
지역 중복 백업을 구성합니다. | 지역 간 읽기 복제본을 배포하여 지역 수준 오류로부터 데이터베이스를 보호할 수 있습니다. 지역 중복 백업은 선택한 지역에서 사용하도록 설정되며 주 서버 지역이 다운된 경우 재해 복구에 도움이 됩니다. |
재해 복구 계획을 테스트하여 오류가 있는 경우 신속한 데이터 복원을 보장합니다. | 재해 복구가 필요한 경우 읽기 복제본을 다른 지역에 배포하고 읽기-쓰기 서버로 승격할 수 있습니다. |
서버를 모니터링하여 정상 상태이고 예상대로 작동하는지 확인합니다. | 데이터베이스 수준 오류를 모니터링하고 경고하는 데이터베이스 모니터링이 있습니다. |
팁
Azure Database for PostgreSQL 대한 안정성 지침에 대한 자세한 내용은 Azure Database for PostgreSQL 안정성을 참조하세요.
Azure Policy 정의
Azure Policy 정의는 Azure 환경 내의 리소스에 대한 특정 규칙 및 구성을 적용하는 데 도움이 됩니다. Azure Database for PostgreSQL 안정성을 보장하기 위해 사용자 지정 Azure Policy 정의를 만들어 특정 구성 및 모범 사례를 구현할 수 있습니다. 안정성을 위해 만들 수 있는 몇 가지 사용자 지정 Azure Policy 정의의 예는 다음과 같습니다.
보안
디자인 및 구현에서 배포 및 작업까지 애플리케이션의 전체 수명 주기 동안 보안을 고려합니다. Azure 플랫폼은 네트워크 침입 및 DDoS 공격과 같은 다양한 위협으로부터 보호합니다. 여전히 애플리케이션 및 DevOps 프로세스에 보안을 구축해야 합니다.
보안 디자인 검사 목록
설계 원칙을 검토하여 아키텍처 비용을 최적화해야 합니다.
- SSL 및 암호화를 적용하여 전송 중인 데이터를 보호합니다.
- 네트워크 보안 그룹 및 방화벽을 구현하여 데이터베이스에 대한 액세스를 제어합니다.
- 인증 및 권한 부여에 Azure Active Directory를 사용하여 ID 관리를 향상합니다.
- 행 수준 보안을 구성합니다.
보안 권장 사항
권장 | 이점 |
---|---|
SSL 및 암호화를 적용하여 전송 중인 데이터를 보호합니다. | 클라이언트 애플리케이션과 SSL을 통해 통신하는 데 필요한 신뢰할 수 있는 CA(인증 기관) 인증서에서 DigiCert 글로벌 루트 인증서를 배포합니다. |
네트워크 보안 그룹 및 방화벽을 구현하여 데이터베이스에 대한 액세스를 제어합니다. | 보안을 위한 제로 트러스트 모델의 일부로 구성 요소(이 경우 애플리케이션 및 데이터베이스 서버) 간의 통신 경로가 필요한 것으로만 제한되는 경우 네트워크 구분이 권장됩니다. 네트워크 보안 그룹 및 애플리케이션 보안 그룹을 사용하여 구현할 수 있습니다. |
인증 및 권한 부여에 Azure Active Directory를 사용하여 ID 관리를 향상합니다. | Microsoft Azure AD(Azure Active Directory) 인증은 Azure AD에 정의된 ID를 사용하여 Azure Database for PostgreSQL에 연결하기 위한 방법입니다. |
행 수준 보안을 구성합니다. | RLS(행 수준 보안)는 데이터베이스 관리자가 하나 이상의 역할에 대해 특정 데이터 행이 표시되고 작동하는 방식을 제어하는 정책을 정의할 수 있도록 하는 PostgreSQL 보안 기능입니다. 행 수준 보안은 PostgreSQL 데이터베이스 테이블에 적용할 수 있는 추가 필터입니다. |
비용 최적화
비용 최적화는 구성 옵션과 권장 모범 사례를 이해하여 불필요한 비용을 줄이고 운영 효율성을 개선하는 것입니다. 워크로드를 검토하여 비용을 절감할 수 있는 기회를 파악해야 합니다.
비용 디자인 검사 목록
설계 원칙을 검토하여 아키텍처 비용을 최적화해야 합니다.
- 올바른 계층 및 SKU를 선택합니다.
- 고가용성 모드를 이해합니다.
- 컴퓨팅 및 스토리지 계층의 크기를 조정합니다.
- 예약 인스턴스를 고려합니다.
- 프로비전된 스토리지를 사용합니다.
- 지역 중복성 비용을 이해합니다.
- 스토리지 스케일 업 결정을 평가합니다.
- 앱과 동일한 지역에 배포합니다.
- 고가용성 지향 비용 설명입니다.
- 데이터베이스 및 서버를 통합합니다.
비용 권장 사항
권장 사항 | 이점 |
---|---|
올바른 계층 및 SKU를 선택합니다. | 워크로드의 특정 요구 사항을 지원하는 가격 책정 계층 및 컴퓨팅 SKU를 선택합니다. Azure Advisor는 전체 Azure 지출을 최적화하고 줄이기 위한 권장 사항을 제공합니다. 권장 사항에는 따라야 하는 서버 오른쪽 크기 조정이 포함됩니다. |
고가용성 모드를 이해합니다. | 고가용성을 사용하면 대기 서버를 항상 동일한 영역 또는 지역 내에서 사용할 수 있습니다. 고가용성을 사용하도록 설정하면 비용이 두 배가 됩니다. |
컴퓨팅 및 스토리지 계층을 조정합니다. | 시간이 지남에 따라 애플리케이션의 요구 사항을 충족하도록 컴퓨팅 및 스토리지 계층을 수동으로 조정해야 합니다. |
시작/중지 기능을 사용합니다. | 유연한 서버에는 필요하지 않을 때 서버 실행을 중지하는 데 사용할 수 있는 시작/중지 기능이 있습니다. |
예약 인스턴스를 고려합니다. | 컴퓨팅에 대한 상당한 할인을 받으려면 1년 또는 3년 예약을 고려하세요. 1년 이상 컴퓨팅 사용량이 일관된 워크로드에 대해 이러한 예약을 사용합니다. |
프로비전된 스토리지를 사용합니다. | 프로비전된 총 서버 스토리지의 최대 100%까지 백업 스토리지에 대한 추가 요금은 없습니다. |
중복성 비용을 이해합니다. | GRS(지역 중복 스토리지)는 LRS(로컬 중복 스토리지)의 두 배에 달하는 비용이 듭니다. GRS에는 LRS의 스토리지 용량의 두 배가 필요합니다. |
스토리지 스케일 업 결정을 평가합니다. | 스토리지를 확장하기 전에 현재 및 미래의 스토리지 요구 사항을 평가해야 합니다. 스토리지를 확장한 후에는 규모를 축소할 수 없습니다. |
앱과 동일한 지역에 배포합니다. | 애플리케이션과 동일한 지역에 배포하여 전송 비용을 최소화합니다. 가상 네트워크 통합을 사용하는 경우 다른 가상 네트워크의 애플리케이션은 유연한 서버에 직접 액세스할 수 없습니다. 액세스 권한을 부여하려면 가상 네트워크 피어링을 구성해야 합니다. 가상 네트워크 피어링에는 명목상 인바운드 및 아웃바운드 데이터 전송 비용이 있습니다. |
고가용성 지향 비용 설명입니다. | 이는 HA와 비용의 절상입니다. HA는 비 HA 구성에 대한 비용의 두 배이지만 필요합니다. |
데이터베이스 및 서버를 통합합니다. | 여러 데이터베이스와 서버를 단일 서버로 통합하여 비용을 절감할 수 있습니다. |
Azure Policy 정의
Azure Policy 정의는 Azure 환경 내의 리소스에 대한 특정 규칙 및 구성을 적용하는 데 도움이 됩니다. Azure Database for PostgreSQL 대한 비용 최적화를 보장하기 위해 사용자 지정 Azure Policy 정의를 만들어 특정 구성 및 모범 사례를 적용할 수 있습니다. 다음은 비용 최적화를 위해 만들 수 있는 몇 가지 사용자 지정 Azure Policy 정의의 예입니다.
운영 우수성
운영 우수성의 원칙은 우수한 운영 관행을 달성하는 데 도움이 될 수 있는 일련의 고려 사항입니다.
운영에서 더 높은 역량을 달성하려면 소프트웨어를 개발, 배포, 운영 및 유지 관리하는 방법을 고려하고 개선합니다.
운영 우수성 디자인 검사 목록
설계 원칙을 검토하여 아키텍처 비용을 최적화해야 합니다.
- 데이터 가용성을 유지하고 규정 준수 요구 사항을 충족하도록 자동화된 백업 및 보존 정책을 설정합니다.
- 자동화된 패치 및 업데이트를 구현하여 PostgreSQL instance 안전하고 최신 상태로 유지합니다.
- Azure Monitor를 사용하여 데이터베이스 상태 및 성능을 모니터링하고 중요한 메트릭에 대한 경고를 설정합니다.
운영 효율성 권장 사항
권장 | 이점 |
---|---|
데이터 가용성을 유지하고 규정 준수 요구 사항을 충족하도록 자동화된 백업 및 보존 정책을 설정합니다. | Azure Database for PostgreSQL 데이터베이스에 대한 자동화된 백업 및 특정 시점 복원을 제공합니다. 최대 35일의 백업 보존 기간을 구성할 수 있습니다. |
자동화된 패치 및 업데이트를 구현하여 PostgreSQL instance 안전하고 최신 상태로 유지합니다. | Azure Database for PostgreSQL 데이터베이스에 대한 자동화된 패치 및 업데이트를 제공합니다. 서버에 대한 유지 관리 기간을 구성하여 워크로드에 미치는 영향을 최소화할 수 있습니다. |
Azure Monitor를 사용하여 데이터베이스 상태 및 성능을 모니터링하고 중요한 메트릭에 대한 경고를 설정합니다. | Azure Database for PostgreSQL 기본 제공 모니터링 및 경고 기능을 제공합니다. Azure Monitor를 사용하여 데이터베이스의 상태 및 성능을 모니터링할 수 있습니다. 데이터베이스가 예상대로 작동하지 않을 때 알림을 받도록 중요한 메트릭에 대한 경고를 설정할 수도 있습니다. |
운영 우수성 정책 정의
Azure Policy 정의는 Azure 환경 내의 리소스에 대한 특정 규칙 및 구성을 적용하는 데 도움이 됩니다. Azure Database for PostgreSQL 운영 우수성을 보장하기 위해 사용자 지정 Azure Policy 정의를 만들어 특정 구성 및 모범 사례를 적용할 수 있습니다. 다음은 운영 우수성을 위해 만들 수 있는 몇 가지 사용자 지정 Azure Policy 정의의 예입니다.
성능 효율성
성능 효율성은 워크로드를 사용자가 효율적으로 요구 사항에 맞게 확장할 수 있는 기능입니다. 성능 효율성 원칙을 검토하는 것이 좋습니다.
아래의 디자인 검사 목록 및 권장 사항 목록에서 호출은 각 선택이 클러스터 아키텍처, 워크로드 아키텍처 또는 둘 다에 적용되는지 여부를 나타냅니다.
성능 효율성 디자인 검사 목록
설계 원칙을 검토하여 아키텍처 비용을 최적화해야 합니다.
- 효율성을 위해 스키마 및 쿼리를 설계하여 리소스 소비를 최소화합니다.
- 읽기 복제본을 구현하여 읽기 트래픽을 오프로드하고 전반적인 성능을 향상시킵니다.
성능 효율성 권장 사항
권장 | 이점 |
---|---|
효율성을 위해 스키마 및 쿼리를 설계하여 리소스 소비를 최소화합니다. | 리소스 소비를 최소화하기 위해 효율성을 위해 스키마 및 쿼리를 디자인해야 합니다. |
읽기 복제본을 구현하여 읽기 트래픽을 오프로드하고 전반적인 성능을 향상시킵니다. | 읽기 복제본을 사용하여 읽기 트래픽을 오프로드하고 성능을 향상시킬 수 있습니다. |
성능 효율성 정책 정의
Azure Policy 정의는 Azure 환경 내의 리소스에 대한 특정 규칙 및 구성을 적용하는 데 도움이 됩니다. Azure Database for PostgreSQL 성능 효율성을 보장하기 위해 사용자 지정 Azure Policy 정의를 만들어 특정 구성 및 모범 사례를 적용할 수 있습니다. 다음은 성능 효율성을 위해 만들 수 있는 몇 가지 사용자 지정 Azure Policy 정의의 예입니다.
추가 리소스
Azure Database for PostgreSQL 관련된 더 많은 리소스를 고려합니다.