Azure SQL Database 는 사용자가 개입하지 않고 대부분의 데이터베이스 관리 기능을 처리하는 완전히 관리되는 서비스 데이터베이스 엔진 플랫폼입니다. 관리 기능에는 업그레이드, 패치, 백업 및 모니터링이 포함됩니다.
단일 데이터베이스 리소스 유형은 SQL Database에 데이터베이스를 만듭니다. 데이터베이스에는 자체 리소스 집합이 있으며 논리 서버를 통해 관리됩니다. 탄력적 풀을 사용하여 단일 리소스 풀에 여러 데이터베이스를 만들 수 있습니다.
이 문서에서는 설계자로서 데이터 저장소 옵션을 검토하고 워크로드에 대한 데이터베이스 엔진으로 SQL Database를 선택했다고 가정합니다. 이 문서의 지침은 Well-Architected Framework 핵심 요소의 원칙에 매핑되는 아키텍처 권장 사항을 제공합니다.
또한 이 문서에서는 SQL Database 핵심 개념에 익숙하다고 가정합니다. 자세한 내용은 SQL Database의 핵심 개념 과 SQL Database의 새로운 기능을 참조하세요.
중요합니다
이 가이드를 사용하는 방법
각 섹션에는 기술 범위로 지역화된 디자인 전략과 함께 관심 있는 아키텍처 영역을 제공하는 디자인 검사 목록 있습니다.
또한 이러한 전략을 구체화하는 데 도움이 될 수 있는 기술 기능에 대한 권장 사항도 포함되어 있습니다. 권장 사항은 Azure SQL Database 및 해당 종속성에 사용할 수 있는 모든 구성의 전체 목록을 나타내지 않습니다. 대신 디자인 관점에 매핑된 주요 권장 사항을 나열합니다. 권장 사항을 사용하여 개념 증명을 빌드하거나 기존 환경을 최적화합니다.
주요 권장 사항을 보여 주는 기본 아키텍처:
고가용성 영역 중복 웹 애플리케이션을 기준으로 합니다.
기술 범위
이 검토는 다음 Azure 리소스에 대한 상호 연결된 결정에 중점을 둡니다.
- SQL 데이터베이스
신뢰도
안정성 핵심 요소의 목적은 충분한 복원력을 구축하고 오류로부터 빠르게 복구할 수 있는 능력을 개발하여 지속적인 운영을 제공하는 것입니다.
안정성 디자인 원칙은 개별 구성 요소, 시스템 흐름 및 시스템 전체에 적용되는 고급 디자인 전략을 제공할 있습니다.
디자인 검사 목록
안정성 대한디자인 검토 검사 목록을 기반으로 디자인 전략을 시작합니다. SQL Database의 안정성을 염두에 두고 비즈니스 요구 사항과 관련성을 확인합니다. 필요에 따라 더 많은 접근 방식을 포함하도록 전략을 확장합니다.
SQL Database 제품 안정성 지침을 숙지합니다.
자세한 내용은 다음 리소스를 참조하세요.적절한 SKU 구성을 선택합니다. 가장 높은 안정성 보장을 제공하므로 중요 워크로드에 중요 비즈니스용 계층을 사용합니다.
중요 비즈니스용 계층이 실용적이지 않은 경우 엄격한 복구 시간 목표 및 복구 지점 목표 목표를 충족하도록 SQL Database 하이퍼스케일 계층을 고려합니다. 하이퍼스케일 계층은 기존의 데이터베이스 백업 메커니즘이 아닌 스토리지 스냅샷을 사용하므로 가동 중지 시간이 0이고 빠른 복구가 가능합니다.
복원력을 향상시키기 위한 중복성 빌드: 활성 지역 복제, 장애 조치(failover) 그룹 및 영역 중복성을 사용하여 데이터베이스의 가용성을 향상시킵니다.
네이티브 재해 복구 및 백업 기능을 사용합니다. 지역 복원을 사용하여 서비스 중단에서 복구합니다. 모든 SQL Database 서버 또는 Azure 지역의 관리되는 인스턴스에서 데이터베이스를 복원할 수 있습니다. 복원은 가장 최근의 지역에서 복제된 백업을 사용합니다.
지정 시간 복원 기능을 사용하여 인적 오류에서 복구합니다. 지정 시간 복원은 실수로 변경된 데이터를 복구하기 위해 데이터베이스를 이전 시점으로 반환합니다.
SQL Database의 안정성 및 전반적인 상태 표시기를 모니터링합니다 . SQL Database를 거의 실시간으로 모니터링하여 안정성 인시던트 검색
재시도 논리 및 백오프 논리 구현: 이러한 기능을 사용하여 애플리케이션에서 일시적인 오류를 처리합니다.
TDE 암호화 키를 백업합니다 . TDE(투명한 데이터 암호화)에 고객 관리형 키를 사용하는 경우 Azure Key Vault에 키를 백업합니다.
권장 사항
추천 | 이익 |
---|---|
활성 지역 복제를 사용하여 다른 지역에 읽을 수 있는 보조 데이터베이스를 만듭니다.
애플리케이션에서 읽기 전용 연결 문자열을 지원하는 경우 보조 데이터베이스를 사용하여 읽기 전용 데이터베이스 작업을 처리합니다. 이 메서드는 주 인스턴스에 대한 부담을 줄입니다. |
주 데이터베이스가 실패하는 경우 복제된 데이터베이스에 대한 수동 장애 조치(failover)를 수행하여 애플리케이션이 가동 중지 시간을 최소화하면서 계속 작동하도록 할 수 있습니다. 읽기 전용 연결이 있는 보조 데이터베이스는 전반적인 성능을 향상시키고 읽기 작업에 더 높은 가용성을 보장합니다. |
장애 조치(failover) 그룹을 사용하여 주 데이터베이스 인스턴스에서 보조 데이터베이스 인스턴스로 장애 조치(failover)를 자동화합니다. 장애 조치 그룹은 지리적 장애 조치 중에 변경되지 않는 읽기-쓰기 및 읽기 전용 수신기 엔드포인트를 제공합니다. 지리적 장애 조치 전환은 그룹의 모든 보조 데이터베이스를 주 역할로 바꿉니다. 지역 장애 조치(failover)가 완료되면 엔드포인트를 새 지역으로 리디렉션하도록 DNS(도메인 이름 시스템) 레코드가 자동으로 업데이트됩니다. | 지역 장애 조치(failover) 그룹은 지역에서 복제된 데이터베이스의 배포 및 관리를 간소화하여 수동 개입 없이 지속적인 가용성을 보장합니다. 연결이 새 주 데이터베이스로 자동으로 라우팅되므로 지역 장애 조치(failover) 후 애플리케이션에 대한 연결 문자열을 변경할 필요가 없습니다. |
영역 중복성을 위해 데이터베이스를 구성합니다. 영역 중복 가용성은 주 지역의 세 Azure 가용성 영역에 데이터를 분산합니다. 각 가용성 영역은 독립적인 전원, 냉각 및 네트워킹이 있는 별도의 물리적 위치입니다. | 가용성 영역 중 하나가 중단되는 경우, SQL Database 인스턴스는 작동 상태를 유지하며 커밋된 데이터를 잃지 않고 자동으로 작동하는 다른 영역으로 장애 조치됩니다. |
애플리케이션에서 재시도 논리 를 구현합니다. SQL Database는 전이적 인프라 오류에 복원력이 있지만 이러한 오류는 연결에 영향을 줄 수 있습니다. 재시도 논리에 백오프 논리를 구현합니다. | 재시도 논리는 임시 오류에 대한 애플리케이션의 복원력을 향상시키고 수동 개입 없이 애플리케이션을 복구하는 데 도움이 됩니다. SQL Database와 상호 작용하는 동안 애플리케이션에 일시적인 오류가 발생하면 코드에서 호출을 다시 시도할 수 있는지 확인합니다.
백오프 논리는 다시 시도 사이에 지연을 추가하여 네트워크 정체 및 서버 오버로드를 방지하는 데 도움이 됩니다. |
사용자 고유의 키를 사용할 때 암호화 키를 백업합니다. 사용자 고유의 암호화 키를 사용하면 키의 전체 및 세분화된 제어를 얻을 수 있지만 키와 키 회전을 관리해야 합니다. Key Vault는 암호화 키를 관리하는 중앙 집중식 위치를 제공합니다. | Key Vault는 하나의 도구에서 키를 중앙에서 관리하며 실수로 인한 키 손실을 방지합니다. |
안전
보안 핵심 요소의 목적은 워크로드에 기밀성, 무결성 및 가용성 보증을 제공하는 것입니다.
보안 디자인 원칙은 SQL Database의 기술 디자인에 접근 방식을 적용하여 이러한 목표를 달성하기 위한 높은 수준의 디자인 전략을 제공합니다.
디자인 검사 목록
보안 대한 디자인 검토 검사 목록을 기반으로 디자인 전략을 시작하고 취약성 및 컨트롤을 식별하여 보안 상태를 개선합니다. 필요에 따라 더 많은 접근 방식을 포함하도록 전략을 확장합니다.
보안 기준 검토: 워크로드의 보안 상태를 향상하려면 SQL Database에 대한 Azure 보안 기준을 검토합니다.
워크로드가 보안 및 규정 준수 요구 사항을 충족하는 데 도움이 되는 기능에 대한 자세한 내용은 기본 제공 보안 및 규정 준수 기능을 참조하세요.
엄격한 조건부 및 감사 가능 ID 및 액세스 관리를 구현 합니다. 워크로드의 인증 및 권한 부여 요구 사항에 Microsoft Entra ID를 사용합니다. Microsoft Entra ID는 중앙 집중식 권한 부여 및 액세스 관리를 제공합니다.
논리 서버 수준에서 데이터베이스 컬렉션에 대한 로그인, 방화벽 규칙, 감사 규칙 및 위협 탐지 정책 관리를 중앙 집중화합니다.
데이터 암호화: 기밀성 및 무결성을 보호하기 위해 데이터 암호화를 사용하도록 설정합니다. 신용카드 번호와 사회보장번호와 같은 매우 민감한 정보를 보호하기 위해
Always Encrypted
및Always Encrypted with secure enclaves
기능을 사용하세요. 이러한 기능을 사용하면 암호화 키가 데이터베이스 엔진에 노출되지 않도록 방지할 수 있습니다.네트워크 세분화 및 보안 컨트롤 적용: 네트워크 디자인에서 의도적인 세분화 및 경계를 만들고 모든 네트워크 경계에서 지역화된 네트워크 컨트롤을 사용하여 심층 방어 원칙을 적용합니다.
가상 네트워크 규칙을 사용하여 가상 네트워크의 특정 서브넷에서 통신을 제어합니다.
데이터베이스에 대한 액세스를 제한하도록 데이터베이스 수준 및 서버 수준에서 SQL Database 방화벽 규칙을 구성합니다. Azure Firewall을 사용하는 경우 SQL FQDN(정규화된 도메인 이름)을 사용하여 Azure Firewall 애플리케이션 규칙을 구성합니다.
SQL Database 연결 아키텍처를 검토합니다. 실용적일 경우
Redirect
또는Proxy
연결 정책을 사용합니다.
권장 사항
추천 | 이익 |
---|---|
최소 TLS(전송 계층 보안) 버전을 버전 1.2 이상으로 구성하고 실제 버전 1.3인 경우 구성합니다. | Azure는 안전하지 않으므로 TLS 버전 1.0 및 1.1을 더 이상 사용하지 않습니다. 버전 1.3은 가장 안전한 최신 버전입니다. |
원장을 기반으로 데이터베이스 테이블을 디자인하는 것이 좋습니다. | 원장 기능은 모든 데이터 변경에 대한 감사, 변조 증거 및 신뢰를 제공합니다. |
암호화 키에 대한 데이터 액세스를 위임하여 애플리케이션 내의 중요한 데이터를 보호하도록 Always Encrypted 를 구성합니다. | Always Encrypted를 사용하면 암호화 키가 데이터베이스 엔진에 노출되지 않도록 방지할 수 있습니다. 이 기능은 데이터를 소유하고 데이터에 액세스할 수 있어야 하는 사용자와 데이터를 관리하지만 액세스 권한이 없어야 하는 사용자 간에 구분을 제공합니다. 예를 들어, 온프레미스 데이터베이스 관리자, 클라우드 데이터베이스 운영자 또는 다른 높은 권한을 가진 사용자는 접근 권한을 가져서는 안 됩니다. |
보안 Enclave를 사용하도록 설정하여 Always Encrypted의 기능을 확장합니다. | 보안 엔클레이브를 사용하여 서버 측의 안전한 메모리 엔클레이브 내에서 항상 암호화된 데이터베이스 안의 지원되지 않는 작업을 수행합니다. |
SQL Database용 Azure Private Link를 사용하여 프라이빗 엔드포인트를 통해 보안 통신을 적용합니다. | Private Link는 공용 액세스를 사용하지 않도록 설정할 수 있도록 데이터베이스와 가상 네트워크 간에 프라이빗 연결을 제공합니다. |
MICROSOFT Defender for SQL Database 취약성 평가를 사용하여 취약성을 검색합니다. | SQL 취약성 평가는 잠재적인 보안 취약성을 식별하고 해결하는 데 도움이 되는 SQL Database에 대한 기본 제공 서비스입니다. Microsoft 모범 사례에 따라 실행 가능한 단계 및 사용자 지정된 수정 스크립트를 제공합니다. |
SQL Database에 대한 고급 위협 방지를 사용하여 비정상적인 활동을 검색합니다. 이러한 활동은 데이터베이스에 액세스하거나 악용하려는 비정상적이고 잠재적으로 유해한 시도를 나타낼 수 있습니다. | 고급 위협 방지는 비정상적인 활동에 대한 보안 경고를 제공하여 잠재적인 위협이 발생할 때 감지하고 대응하는 데 도움이 됩니다. 경고는 클라우드용 Microsoft Defender에 통합됩니다. |
SQL Database 감사를 사용하여 데이터베이스 이벤트를 추적합니다. | 감사는 규정 준수를 유지 관리하고, 데이터베이스 작업을 이해하고, 비즈니스 문제나 의심스러운 보안 위반을 나타낼 수 있는 불일치 및 이상 활동을 파악하는 데 도움이 될 수 있습니다. |
사용자 할당 관리 ID를 서버 ID로 구성합니다. | Azure 리소스에 대해 관리 ID를 사용하면 코드로 자격 증명을 관리할 필요가 없습니다. |
SQL 기반 인증을 사용하지 않도록 설정하고 Microsoft Entra 인증만 허용합니다. | 인증을 위한 Microsoft Entra는 ID, 액세스 및 권한 부여 관리를 중앙 집중화하고 SQL Database 리소스에 대한 세부적인 권한을 제공합니다. |
비용 최적화
비용 최적화는 지출 패턴을 감지하고, 중요한 영역에 대한 투자의 우선 순위를 지정하고, 비즈니스 요구 사항을 충족하면서 조직의 예산을 충족하도록 다른 영역에서 최적화하는 데 중점을 둡니다.
비용 최적화 디자인 원칙은 이러한 목표를 달성하고 SQL Database와 관련된 기술 설계에서 필요에 따라 장단위를 만들기 위한 높은 수준의 디자인 전략을 제공합니다.
디자인 검사 목록
SQL Database 비용 관리 리소스를 숙지합니다.SQL Database 문서의 계획을 검토하고 비용을 관리 합니다. 이 리소스에는 비용 효율적인 인스턴스 및 리소스를 최적화하는 방법 및 워크로드에 적합한 청구 모델을 선택하는 방법에 대한 권장 사항을 포함하여 비용 절감 전략이 포함되어 있습니다.
초기 비용 예측: 비용 모델링 연습의 일환으로 Azure 가격 계산기를 사용하여 워크로드에서 SQL Database와 관련된 대략적인 비용을 평가합니다.
워크로드에 적합한 SQL Database 서비스 계층을 선택합니다 . SQL Database 서버리스 및 하이퍼스케일 계층을 평가하여 사용 사례와 가격 책정을 더 잘 맞춥니다.
탄력적 풀을 사용하여 여러 데이터베이스를 관리하고 크기를 조정하는 것이 좋습니다.
구성 요소 비용 최적화: 장기간 작동하려는 정적 워크로드의 경우 SQL Database에 예약된 용량 을 고려합니다.
백업 스토리지 사용량을 미세 조정하여 초과 사용량에 대한 요금을 방지합니다.
애플리케이션 코드 비용 최적화: 쿼리 및 기타 작업을 최적화하여 리소스 소비를 줄이고 런타임을 최소화하며 전반적인 성능을 향상시킵니다.
크기 조정 비용 최적화: 비용 최적화 고려 사항을 데이터베이스 크기 조정 전략에 통합합니다.
비용을 줄이려면 사용량이 적은 기간 동안 데이터베이스를 축소합니다. 예를 들어 몇 주 또는 몇 달 동안 부하가 감소하는 계절별 워크로드 또는 하룻밤 사이에 유휴 상태인 워크로드가 있습니다.
권장 사항
추천 | 이익 |
---|---|
사용 가능한 SQL Database 서비스 계층을 연구하고 용량 계획에 따라 각 사용 사례에 가장 적합한 모델을 선택합니다. | 적절한 서비스 계층을 사용하면 초과 프로비전으로 인한 비용 낭비를 방지할 수 있습니다. |
쿼리 성능 인사이트 및 성능 권장 사항을 사용하여 쿼리, 테이블 및 데이터베이스를 최적화합니다. | 최적화된 작업은 리소스 소비를 줄이고 성능 및 예산 요구 사항을 충족하도록 프로비전할 적절한 SQL Database SKU를 결정하는 데 도움이 될 수 있습니다. |
권장되는 백업 전략을 사용하여 백업 스토리지 사용량을 미세 조정합니다.
SQL Database의 vCore 데이터베이스의 경우 각 백업 유형이 사용하는 스토리지는 데이터베이스 모니터링 창에서 별도의 메트릭으로 보고됩니다. 백업 유형에는 전체, 차등 및 로그 백업이 포함됩니다. 데이터베이스의 최대 데이터 크기까지 백업 스토리지 사용량은 데이터베이스 가격에 포함됩니다. 초과 스토리지 비용은 워크로드 및 개별 데이터베이스의 최대 크기에 따라 달라집니다. |
데이터베이스 크기, 변경 속도 및 보존 기간과 같은 백업 스토리지 비용에 영향을 주는 요인을 이해합니다. 백업 전략을 최적화하고 비용을 최소화하도록 스토리지를 적절하게 구성합니다. |
간헐적이고 예측할 수 없는 사용 패턴이 있고 유휴 사용 기간 후에 컴퓨팅 준비에 지연이 발생할 수 있는 단일 데이터베이스에 서버리스 계층을 사용하는 것이 좋습니다. | 서버리스 데이터베이스는 워크로드 수요에 따라 컴퓨팅 리소스를 자동으로 일시 중지하고 크기를 조정합니다. 청구는 초당 사용되는 컴퓨팅 양을 기반으로 합니다. 데이터베이스에 사용량이 낮거나 유휴 상태인 예측 불가능 또는 버스트 사용 패턴이 있는 경우 서버리스 데이터베이스는 비용 및 성능을 최적화하는 데 도움이 될 수 있습니다. |
모든 워크로드 유형에 대해 하이퍼스케일 계층을 사용하는 것이 좋습니다. | 하이퍼스케일 계층의 클라우드 네이티브 아키텍처는 독립적으로 확장 가능한 컴퓨팅 및 스토리지를 제공하여 가장 다양한 기존 및 최신 애플리케이션을 지원합니다. 하이퍼스케일 계층의 컴퓨팅 및 스토리지 리소스는 범용 및 중요 비즈니스용 계층에서 사용할 수 있는 리소스를 크게 초과합니다. 하이퍼스케일 데이터베이스에는 추가 SQL 라이선스 비용이 필요하지 않습니다. |
예약된 용량을 사용하여 리소스 비용을 절감합니다. 한 지역의 Azure SQL 데이터베이스에 대한 총 컴퓨팅 용량 및 성능 계층을 확인한 후 해당 정보를 사용하여 1~3년 동안 용량을 예약합니다. | SQL Database에 대한 컴퓨팅 비용을 줄이기 위해 컴퓨팅 리소스를 미리 구매합니다. 1년 예약은 최대 40개의%절약할 수 있으며, 3년 예약은 최대 60개의%절약할 수 있습니다. |
Software Assurance 지원 SQL Server 라이선스를 Azure 하이브리드 혜택과 교환하여 SQL 라이선스 비용을 절감합니다. | Azure 하이브리드 혜택은 SQL Database의 라이선스 비용을 최대 30% 절약할 수 있습니다. 또한 데이터베이스를 Azure로 마이그레이션할 때 기존 Software Assurance 계약을 활용할 수 있습니다. |
탄력적 풀을 사용하여 여러 데이터베이스를 관리하고 크기를 조정합니다. | SQL Database 탄력적 풀은 다양하고 예측할 수 없는 사용 요구 사항이 있는 여러 데이터베이스를 관리하고 크기를 조정하는 간단하고 비용 효율적인 솔루션입니다. 탄력적 풀의 데이터베이스는 단일 서버에 있으며 설정된 가격에 일정한 수의 리소스를 공유합니다. |
운영 우수성
운영 우수성 원칙은 워크로드의 운영 요구 사항에 대한 목표를 달성하기 위한 높은 수준의 디자인 전략을 제공합니다.
디자인 검사 목록
SQL Database와 관련된 관찰성, 테스트 및 배포에 대한 프로세스를 정의하기 위한 운영 우수성에 대한 디자인 검토 검사 목록을 기반으로 디자인 전략을 시작합니다.
SQL Database 운영 우수성 리소스에 대해 숙지합니다.SQL Database 문서에서 모니터링 및 성능 튜닝을 검토합니다. 이 문서에는 쿼리 성능 모니터링, 경고 구성 및 자동 튜닝을 사용하여 효율성을 높이기 위한 권장 사항을 포함하여 자세한 모니터링 지침이 포함되어 있습니다.
IaC(Infrastructure as Code) 기술을 사용합니다.Bicep 및 Azure Resource Manager 템플릿과 같은 IaC 기술을 사용하여 일관된 결과를 달성하고 재사용성을 활용하기 위해 Azure SQL 데이터베이스를 배포합니다.
최신 버전의 Resource Manager API를 사용하여 최신 기능, 보안 업데이트 및 성능 향상을 활용합니다.
SQL Database 모니터링: 모니터링을 사용하여 안정성 인시던트 검색 및 성능 최적화 먼저 워크로드에서 사용하는 CPU 및 입력/출력 리소스를 모니터링합니다. 워크로드에 대한 안정성 및 상태 모니터링 솔루션을 디자인하는 데 도움이 되도록 워크 로드에 대한 상태 모델링을 참조하세요.
비즈니스 연속성 및 재해 복구 관리를 최적화 합니다. Azure Backup을 사용하여 SQL Database를 보호하고 백업 전략을 정기적으로 테스트합니다.
네이티브 데이터베이스 관리 기능 사용: SQL Database를 채택하여 인프라 관련 관리, 백업 관리, 고가용성 및 재해 복구 작업과 같은 많은 기존 작업의 데이터베이스 관리자를 완화합니다. 그들이 데이터 코드 사고 방식을 채택할 때 클라우드 네이티브 관리 및 DevOps 팀과의 협업에서 성장을 장려하십시오.
권장 사항
추천 | 이익 |
---|---|
데이터베이스 감시자와 같은 도구를 사용하여 SQL Database를 모니터링하여 안정성 인시던트 검색 | 안정성 인시던트에 대한 빠른 검색을 통해 성능 문제를 신속하게 식별하고 해결할 수 있으므로 워크로드 중단을 최소화할 수 있습니다. |
지속적인 통합 및 지속적인 배포 워크플로를 사용하여 SQL 프로젝트의 배포 프로세스를 간소화합니다. | 변경 내용을 해제하는 반복 가능한 워크플로는 사용자 개입의 필요성을 최소화하고 오류 가능성을 줄입니다. 이 방법은 보다 안정적이고 효율적인 배포 프로세스를 보장합니다. |
Azure Backup을 사용하여 SQL Database 서버를 백업합니다. | Azure Backup을 사용하면 백업 작업을 효율적으로 감독할 수 있도록 비즈니스 연속성 및 재해 복구를 중앙 집중식으로 관리할 수 있습니다. Azure Backup은 데이터가 장기간 보존되도록 복구 지점의 장기 보존을 지원합니다. 또한 지역 간 및 구독 간 복원을 수행하여 백업 전략의 유연성과 복원력을 향상시킵니다. |
성능 효율성
성능 효율성은 용량을 관리하여 부하 증가하는 경우에도 사용자 환경을 유지 관리합니다. 이 전략에는 리소스 크기 조정, 잠재적인 병목 현상 식별 및 최적화, 최고 성능 최적화가 포함됩니다.
성능 효율성 디자인 원칙은 예상 사용량에 대해 이러한 용량 목표를 달성하기 위한 높은 수준의 디자인 전략을 제공할 있습니다.
디자인 검사 목록
SQL Database의 주요 성능 지표를 기반으로 기준을 정의하기 위한 성능 효율성에 대한 디자인 검토 검사 목록을 기반으로 디자인 전략을 시작합니다.
SQL Database 성능 효율성 리소스를 익히세요.SQL Server 데이터베이스 엔진과 SQL Database의 성능 센터 및 애플리케이션과 데이터베이스의 성능을 튜닝하는 방법에 대한 문서를 검토하세요. 이 문서에서는 서버 구성 및 쿼리 성능을 최적화하기 위한 권장 사항을 포함하여 SQL Database의 성능을 개선하는 방법에 대한 인사이트를 제공합니다.
올바른 계층, 기능 및 청구 모델을 선택합니다. Microsoft는 최신 vCore 기반 구매 모델을 권장합니다.
리소스 제한을 검토합니다. 각 가격 책정 계층의 singe 데이터베이스에 대한 리소스 제한을 서비스 목표라고도 합니다. 자세한 내용은 vCore 기반 단일 데이터베이스 리소스 제한을 참조하세요. 탄력적 풀 리소스 제한은 vCore 기반 탄력적 풀 리소스 제한을 참조하세요.
MAXDOP(기본 최대 병렬 처리 수준)를 검토하고 마이그레이션되거나 예상되는 워크로드에 따라 필요에 따라 구성합니다.
성능을 위해 워크로드 디자인 및 애플리케이션 코드를 최적화합니다 . 읽기 전용 작업을 읽기 전용 복제본으로 오프로드하는 것이 좋습니다.
SQL Database에 연결하는 애플리케이션은 최신 연결 공급자(예: 최신 OLE DB 드라이버 또는 ODBC 드라이버)를 사용해야 합니다.
탄력적 풀을 사용하는 경우 리소스 거버넌스를 숙지합니다.
권장 사항
추천 | 이익 |
---|---|
성능 권장 사항을 적용하여 SQL Database를 최적화하거나 워크로드 문제를 해결합니다. | 이러한 권장 사항을 사용하여 데이터베이스 성능을 향상시킵니다. |
데이터베이스 성능을 자동으로 최적화하도록 자동 튜닝 을 구성합니다. 자동 튜닝은 쿼리를 모니터링하고, 변화하는 워크로드에 적응하고, 튜닝 권장 사항을 자동으로 적용하는 기능입니다. | AI 및 기계 학습을 기반으로 하는 지속적인 성능 조정은 성능을 최적화하고 워크로드를 안정화할 수 있습니다. |
쿼리 저장소를 사용하여 쿼리 성능을 최적화할 수 있습니다. 쿼리 저장소를 사용하면 쿼리 계획 변경으로 인해 발생하는 성능 차이를 빠르게 찾을 수 있으므로 성능 문제 해결이 간소화됩니다. | 쿼리 저장소는 모든 쿼리에 대한 자세한 정보를 지속적으로 수집합니다. 이 기능은 이 정보를 사용하여 쿼리 성능 문제를 신속하게 진단하고 해결할 수 있으므로 쿼리 성능 문제 해결을 간소화합니다. |
쿼리 성능 인사이트 도구를 사용하여 워크로드에서 리소스 소비 및 장기 실행 쿼리를 확인합니다. 쿼리 성능 인사이트는 CPU, 기간 및 구현 횟수별로 데이터베이스 쿼리에 대한 세부 정보를 제공합니다. 또한 리소스 사용 기록을 볼 수 있습니다. | 쿼리 성능 인사이트는 CPU, 기간 및 구현 수와 같은 데이터베이스 쿼리 메트릭에 대한 심층 인사이트를 제공합니다. 이 기능은 데이터베이스 성능 문제 해결에 소요되는 시간을 줄입니다. |
기본 제공 도구를 사용하여 높은 CPU 사용량을 진단하고 문제를 해결합니다. 이러한 도구는 높은 CPU 사용의 원인을 식별하고 Transact-SQL 쿼리를 최적화하는 데 도움이 될 수 있습니다. | 제대로 조정된 애플리케이션 및 데이터베이스는 보다 효율적인 작업으로 이어지고 비용을 절감할 수 있습니다. |
차단 및 교착 상태 문제가 데이터베이스 성능에 미치는 영향을 이해합니다. | 차단 및 교착 상태 문제를 해결하면 데이터베이스가 보다 효율적으로 작동하고 병목 현상이 제거되며 성능이 향상됩니다. |
Azure Portal 사용 현황 보고를 검토하고 필요에 따라 단일 데이터베이스 또는 탄력적 풀의 크기를 조정합니다. | 사용 현황 보고서를 정기적으로 검토하여 리소스를 효율적으로 사용하는지 확인합니다. 이 방법은 사용되지 않는 리소스를 식별하여 비용을 절감할 수 있도록 도와줍니다. |
메모리 내 데이터베이스 개체를 사용하여 고성능 온라인 트랜잭션 처리 애플리케이션 및 실시간 분석과 같은 시나리오에서 워크로드의 성능을 향상시킵니다. | 메모리 내 기술을 사용하면 워크로드의 성능을 개선하고 데이터베이스 비용을 줄일 수 있습니다. |
Azure 정책
Azure는 SQL Database와 관련된 광범위한 기본 제공 정책 집합을 제공합니다. Azure 정책 집합은 이전 권장 사항 중 일부를 감사할 수 있습니다. 예를 들어 다음을 확인할 수 있습니다.
- Microsoft Entra 전용 인증은 만드는 동안 기본적으로 사용하도록 설정됩니다.
- 영역 중복은 가용성 및 복원력을 향상시키기 위해 활성화됩니다.
- Azure SQL 데이터베이스에 대해 장기 지역 중복 백업을 사용하도록 설정해야 합니다.
- 최소 TLS 버전을 1.2로 설정하면 TLS 1.2를 사용하는 클라이언트에서만 SQL Database에 액세스할 수 있도록 하여 보안을 향상시킵니다. 잘 문서화된 보안 취약성이 있으므로 이전 버전의 TLS를 사용하지 마세요.
- SQL 서버에는 SQL 자산에 대해 수행된 작업을 캡처할 수 있도록 감사를 사용하도록 설정해야 합니다.
포괄적인 거버넌스를 위해 Azure Policy 기본 제공 정의에 나열된 SQL Database 정책에 대한 기본 제공 정의를 검토합니다.