SQL 데이터베이스 하이퍼스케일 이해

완료됨

Azure SQL Database는 수년간 데이터베이스당 4TB의 스토리지로 제한되었습니다. 이 제한은 Azure 인프라의 물리적인 제한 사항 때문에 발생합니다. Azure SQL Database Hyperscale은 이 패러다임을 변경하여 100TB 이상의 데이터베이스를 허용합니다. 하이퍼스케일은 데이터 크기가 증가함에 따라 컴퓨팅 노드를 추가하는 새로운 수평 스케일링 기술을 도입합니다. 하이퍼스케일의 비용은 Azure SQL Database와 동일하지만, 스토리지에 대한 테라바이트당 비용이 있습니다. Azure SQL Database를 하이퍼스케일로 변환하고 나면 “일반” Azure SQL Database로 다시 변환할 수 없습니다. 하이퍼스케일은 아키텍처가 필요에 따라 적절하게 크기를 조정할 수 있는 기능입니다.

Azure SQL Database 하이퍼스케일은 독립적으로 확장 가능한 컴퓨팅 및 스토리지 리소스를 사용하여 뛰어난 유연성과 고성능을 제공하는 뛰어난 옵션으로 대부분의 비즈니스 워크로드에 적합합니다.

하이퍼스케일은 여러 데이터 엔진의 의미 체계가 구분되어 있는 쿼리 처리 엔진을 데이터의 장기 스토리지 및 지속성을 제공하는 구성 요소와 구분합니다. 이러한 방식으로 스토리지 용량을 필요한 만큼 원활하게 스케일 아웃할 수 있습니다.

Azure SQL Database의 하이퍼스케일 서비스 계층은 vCore 기반 구매 모델의 최신 서비스 계층입니다. 이 서비스 계층은 Azure를 사용하여 범용 및 중요 비즈니스용 서비스 계층에 사용할 수 있는 제한을 초과하여 Azure SQL Database용 스토리지 및 컴퓨팅 리소스를 확장하는 확장성이 뛰어난 스토리지 및 컴퓨팅 성능 계층입니다.

이점

하이퍼스케일 서비스 계층은 클라우드 데이터베이스에서 기존에 확인되던 많은 실제 제한을 없애줍니다. 대부분의 다른 데이터베이스가 단일 노드에서 사용할 수 있는 리소스로 제한되지만 하이퍼스케일 서비스 계층의 데이터베이스에는 이러한 제한이 없습니다. 스토리지 아키텍처가 유연하기 때문에 필요에 따라 스토리지가 증가합니다. 실제로 하이퍼스케일 데이터베이스는 정의된 최대 크기로 만들어지지 않습니다. 하이퍼스케일 데이터베이스는 필요에 따라 확장되며, 사용하는 용량에 대해서만 요금이 청구됩니다. 읽기 집약적 워크로드의 경우 하이퍼스케일 서비스 계층에서 읽기 워크로드를 오프로드하는 데 필요한 추가 복제본을 프로비저닝하여 신속한 스케일 아웃을 제공합니다.

또한 데이터베이스 백업을 만들거나 규모 확대 또는 축소에 필요한 시간이 더 이상 데이터베이스의 데이터 볼륨과 관련되지 않습니다. 하이퍼스케일 데이터베이스는 동시에 백업할 수 있습니다. 몇 분 안에 수십 테라바이트의 데이터베이스 규모를 확대 또는 축소할 수도 있습니다. 이 기능은 초기 구성 선택에 따른 여러 가지 우려를 해소해줍니다. 하이퍼스케일은 또한 몇 시간 또는 며칠이 아닌 몇 분 안에 실행되는 빠른 데이터베이스 복원을 제공합니다.

하이퍼스케일은 워크로드 요구 사항에 따라 빠른 확장성을 제공합니다.

  • 스케일 업/다운 – CPU, 메모리 등의 리소스 측면에서 기본 컴퓨팅 크기를 스케일 업한 다음, 일정 시간 내에 스케일 다운할 수 있습니다. 스토리지가 공유되므로 확장 및 축소는 데이터베이스의 데이터 볼륨에 연결되지 않습니다.

  • 스케일링 인/아웃 – 읽기 요청을 처리하는 데 사용할 수 있는 하나 이상의 컴퓨팅 복제본을 프로비저닝할 수도 있습니다. 즉, 추가 컴퓨팅 복제본을 읽기 전용 복제본으로 사용하여 주 컴퓨팅 복제본에서 읽기 워크로드를 오프로드할 수 있습니다. 읽기 전용 외에도 이러한 복제본은 주 복제본에서 장애 조치(failover)하는 경우 상시 대기 역할도 수행합니다.

이러한 추가 컴퓨팅 복제본 각각에 대한 프로비저닝은 일정 시간에 수행할 수 있으며, 온라인 작업입니다. 연결 문자열의 ApplicationIntent 인수를 읽기 전용으로 설정하여 읽기 전용 컴퓨팅 복제본에 연결할 수 있습니다. 읽기 전용 애플리케이션 의도가 있는 모든 연결은 자동으로 읽기 전용 컴퓨팅 복제본 중 하나로 라우팅됩니다.

하이퍼스케일은 쿼리 처리 엔진을 데이터의 장기 스토리지 및 지속성을 제공하는 구성 요소와 구분합니다. 이 아키텍처는 필요한 만큼(초기 목표는 100TB) 스토리지 용량을 원활하게 스케일링할 수 있는 기능 및 컴퓨팅 리소스를 빠르게 스케일링하는 기능을 제공합니다.

Hyperscale Architecture

보안 고려 사항

하이퍼스케일 서비스 계층에 대한 보안은 다른 Azure SQL Database 계층과 동일한 뛰어난 기능을 공유합니다. 아래 그림에 나와 있는 계층형 심층 방어 방식으로 보호되며 외부에서 내부로 적용됩니다.

Hyperscale security

  • 네트워크 보안은 첫 번째 방어 계층이며 IP 방화벽 규칙을 사용하여 원래 IP 주소 및 Virtual Network 방화벽 규칙에 따라 액세스를 허용하여 가상 네트워크 내에서 선택한 서브넷에서 전송된 통신을 수락하는 기능을 허용합니다.

  • 액세스 관리는 사용자가 자신이 누구라고 주장하는지 확인하기 위해 아래 인증 방법을 통해 제공됩니다.

    • SQL 인증
    • Microsoft Entra 인증
    • Microsoft Entra 보안 주체(미리 보기)에 대한 Windows 인증

    Azure SQL Database 하이퍼스케일은 행 수준 보안도 지원합니다. RLS(행 수준 보안)를 사용하면 고객이 쿼리를 실행하는 사용자의 특성(예: 그룹 멤버 자격 또는 실행 컨텍스트)에 따라 데이터베이스 테이블의 행에 대한 액세스를 제어할 수 있습니다.

    Row-Level Security

  • 감사 및 위협 탐지 기능의 위협 방지 기능 SQL Database 및 SQL Managed Instance 감사는 데이터베이스 활동을 추적하며 고객이 소유한 Azure Storage 계정의 감사 로그에 데이터베이스 이벤트를 기록하여 보안 표준 규정 준수 상태를 유지할 수 있도록 지원합니다. 서버당 추가 요금으로 Advanced Threat Protection을 사용하도록 설정하고 로그를 분석하여 비정상적인 동작과 잠재적으로 유해한 데이터베이스 액세스 또는 악용 시도를 감지할 수 있습니다. 경고는 SQL 삽입, 잠재적 데이터 침입 및 무차별 암호 대입 공격(brute force attack)과 같은 의심스러운 활동이 감지되거나, 권한 상승 및 위반된 자격 증명 사용을 포착하기 위한 액세스 패턴에 이상이 생겼을 때 만들어집니다.

  • Information Protection은 다음과 같은 다양한 방법으로 제공됩니다.

    • 전송 계층 보안(전송 중 암호화)
    • 투명한 데이터 암호화(미사용 데이터 암호화)
    • Azure Key Vault으로 키 관리
    • Always Encrypted(사용 중인 데이터 암호화)
    • 동적 데이터 마스킹

성능 고려 사항

하이퍼스케일 서비스 계층은 대규모 온-프레미스 SQL Server 데이터베이스를 가지고 있고 클라우드로 이동하여 애플리케이션을 현대화하려는 고객 또는 Azure SQL Database를 이미 사용하고 있고 데이터베이스 확장 가능성을 크게 높이려는 고객을 대상으로 합니다. 하이퍼스케일은 고성능과 고가용성을 모두 원하는 고객에게도 적합합니다.

하이퍼스케일은 다음과 같은 성능 기능을 제공합니다.

  • 컴퓨팅 리소스에 대한 IO에 영향을 주지 않으면서 크기에 관계없이 거의 즉각적인 데이터베이스 백업(Azure Blob 스토리지에 저장된 파일 스냅샷 기반)
  • 몇 시간 또는 며칠이 아닌 몇 분 내에(데이터베이스 작업의 규모가 아닌) 빠른 데이터베이스 복원(파일 스냅샷 기반)
  • 데이터 볼륨에 관계없이 더 높은 트랜잭션 로그 처리량과 더 빠른 트랜잭션 커밋 시간으로 인한 더 높은 전체 성능
  • 빠른 스케일 아웃 - 읽기 워크로드를 오프로드하고 핫 대기로 사용하기 위해 하나 이상의 읽기 전용 복제본을 프로비저닝할 수 있습니다.
  • 빠른 스케일 업 - 필요할 때 과도한 워크로드를 수용하도록 컴퓨팅 리소스를 지속적으로 스케일 업한 다음, 필요하지 않을 때 컴퓨팅 리소스를 다시 스케일 다운할 수 있습니다.

참고

SQL Database 하이퍼스케일은 다음 기능을 지원하지 않습니다.

  • SQL Managed Instance
  • 탄력적 풀
  • 지역에서 복제
  • Query Performance Insight

Azure SQL Database 하이퍼스케일 배포

하이퍼스케일 계층을 사용하여 Azure SQL Database를 배포하려면

  1. SQL 배포 선택 옵션 페이지로 이동합니다.

  2. SQL 데이터베이스에서 리소스 유형단일 데이터베이스로 설정한 상태로 두고 만들기를 선택합니다.

    Deploying an Azure SQL Database Hyperscale

  3. SQL Database 만들기 페이지의 기본 사항 탭에서 원하는 구독, 리소스 그룹 및 데이터베이스 이름을 선택합니다.

  4. 서버에 대해 새로 만들기 링크를 선택하고 서버 이름, 서버 관리자 로그인 및 암호, 위치와 같은 새 서버 정보를 입력합니다.

  5. 컴퓨팅 + 스토리지에서 데이터베이스 구성 링크를 선택합니다.

    Configuring an Azure SQL Database Hyperscale

  6. 서비스 계층의 경우 하이퍼스케일을 선택합니다.

    Selecting Hyperscale service tier

  7. 하드웨어 구성에서 구성 변경 링크를 선택합니다. 사용 가능한 하드웨어 구성을 검토하고 데이터베이스에 가장 적합한 구성을 선택합니다. 이 예제에서는 Gen5 구성을 선택합니다.

  8. 확인을 선택하여 하드웨어 생성을 확인합니다.

  9. 필요에 따라 데이터베이스의 vCore 수를 늘리려면 vCore 슬라이더를 조정합니다. 이 예제에서는 2 vCores를 선택합니다.

  10. 고가용성 보조 복제본 슬라이더를 조정하여 HA(고가용성) 복제본 하나를 만듭니다. 적용을 선택합니다.

  11. 완료되면 다음: 네트워킹을 선택합니다.

    Network page when provisioning an Azure SQL Database Hyperscale

  12. 방화벽 규칙의 경우 네트워킹 탭에서 현재 클라이언트 IP 주소 추가로 설정합니다. Azure 서비스 및 리소스가 이 서버에 액세스할 수 있도록 허용아니요로 설정된 상태로 둡니다.

  13. 페이지 하단에서 다음: 보안을 선택합니다.

  14. 검토 + 만들기 탭에서 만들기를 선택합니다.

    Review and create page when provisioning an Azure SQL Database Hyperscale