Azure Arc에서 사용하도록 설정된 SQL Server 구성

적용 대상:SQL Server

각 Azure Arc 지원 서버에는 해당 서버에 설치된 모든 SQL Server 인스턴스에 적용되는 속성 집합이 포함되어 있습니다. SQL Server용 Azure 확장이 컴퓨터에 설치된 후 이러한 속성을 구성할 수 있습니다. 그러나 이 속성은 SQL Server 인스턴스 또는 인스턴스가 설치된 경우에만 적용됩니다. Azure Portal에서 Azure Arc 개요 에서 사용하도록 설정된 SQL Server는 SQL Server 구성이 특정 인스턴스에 미치는 영향을 반영합니다.

Azure Portal SQL Server 구성을 사용하면 다음 관리 작업을 수행할 수 있습니다.

  1. SQL Server 라이선스 유형 구성
  2. 확장 보안 업데이트 구독
  3. Azure Arc에 온보딩에서 SQL Server 인스턴스 제외

필수 조건

리소스 공급자를 등록하려면 다음 방법 중 하나를 사용합니다.

  1. 구독을 선택합니다.
  2. 구독 선택
  3. 설정 아래에서 리소스 공급자를 선택합니다.
  4. Microsoft.AzureArcDataMicrosoft.HybridCompute를 검색하고 등록을 선택합니다

라이선스 유형

적용 대상:SQL Server

SQL Server 라이선스 유형은 특정 가상 머신 또는 물리적 서버의 SQL Server 인스턴스에 대한 라이선스 유형을 식별합니다. 여기에는 종량제 청구를 사용하여 Microsoft Azure를 통해 직접 SQL 소프트웨어 사용량에 대한 요금을 지불하는 옵션이 포함되어 있습니다.

라이선스 유형 은 SQL Server용 Azure Extension을 설치할 때 필수 매개 변수이며 지원되는 각 온보딩 방법에는 라이선스 유형 옵션이 포함됩니다. Azure Resource Graph를 사용하여 SQL Server 라이선스 인벤토리를 추적할 수 있습니다. Cost Management + 청구 포털에서 소프트웨어 사용량을 추적할 수도 있습니다.

편의를 위해 각 Arc 지원 SQL Server 리소스 개요에는 호스트 라이선스 유형 아래의 라이선스 유형이 표시됩니다.

참고 항목

SQL Server 2022(16.x)를 사용하면 설치 중에 종량제 청구 옵션을 포함하여 라이선스 유형을 선택할 수 있습니다. 설치 마법사에서 SQL Server용 Azure 확장 설치를 참조하세요.

지원되는 라이선스 유형은 다음과 같습니다.

라이선스 유형 자세한 설명 간단한 설명
PAYG Microsoft Azure를 통한 종량제 청구가 있는 Standard 또는 Enterprise 버전 종량제
유료 Software Assurance 또는 SQL 구독을 사용하여 표준 또는 Enterprise 버전 라이선스 소프트웨어 보증 라이선스
LicenseOnly Software Assurance가 없는 개발자, 평가판, Express, Web, Standard 또는 Enterprise Edition 라이선스 라이선스 전용
  • PAYG: Microsoft Azure를 통해 SQL Server 소프트웨어 사용량에 대한 요금을 지불합니다. SQL Server 가격 및 라이선스를 참조하세요.

    Important

    AZURE Arc PAYG(종량제)에서 사용하도록 설정된 SQL Server는 SQL Server에 대한 유연한 구독 기반 액세스를 제공합니다. PAYG를 사용하는 SQL Server 인스턴스가 있는 서버는 Azure에 지속적으로 연결되어야 합니다. 기본 제공 복원력으로 최대 30일 동안 간헐적인 연결 중단이 허용됩니다. 30일의 디스코네이션 후에 PAYG 구독이 만료됩니다. 구독이 만료되면 소프트웨어를 사용할 권한이 없음을 알려주세요.

  • 유료LicenseOnly: 기존 사용권 계약을 사용합니다. 사용법은 필요한 라이선스가 이미 있음을 의미합니다. 이러한 경우 무료 미터를 사용하여 소프트웨어 사용량이 보고됩니다. Cost Management + 청구 포털에서 사용량을 분석하여 설치된 모든 SQL Server 인스턴스에 대한 충분한 라이선스가 있는지 확인할 수 있습니다.

다음 표에서는 라이선스 유형에 따라 사용하도록 설정된 기능을 식별합니다.

기능 라이선스만 1 Software Assurance를 사용하여 라이선스
또는 SQL 구독
종량제
Azure에 연결
SQL Server 인벤토리
모범 사례 평가
마이그레이션 평가(미리 보기)
자세한 데이터베이스 인벤토리
Microsoft Entra ID 인증
Microsoft Defender for Cloud
Microsoft Purview를 통해 관리
로컬 스토리지에 대한 자동화된 백업(미리 보기)
지정 시간 복원(미리 보기)
자동화된 패치
장애 조치(failover) 클러스터 인스턴스(미리 보기)
Always On 가용성 그룹(미리 보기)
모니터링(미리 보기)
최소 권한으로 작동(미리 보기)

1 라이선스에는 개발자, Express, Web 또는 Evaluation Edition인 SQL Server 인스턴스와 서버/CAL 라이선스를 사용하는 인스턴스만 포함됩니다.

SQL Server 소프트웨어에 대한 청구

라이선스 유형은 SQL Server 라이선스가 이미 있는지 아니면 종량제 방법으로 비용을 지불하는 것을 선호하는지를 나타냅니다. 라이선스가 이미 있거나 무료 SQL Server 버전을 사용하는 경우 무료 미터를 사용하여 소프트웨어 사용량이 보고됩니다. 종량제 방법을 선택한 경우 0이 아닌 종량제 미터가 사용됩니다.

청구 세분성은 1시간입니다. 종량제 요금은 SQL Server 버전 및 해당 시간 동안 호스팅 서버의 크기를 기준으로 계산됩니다. SQL Server 인스턴스가 물리적 서버에 설치된 경우 크기는 코어 단위로 측정되고, SQL Server 인스턴스가 가상 머신에 설치된 경우 vCore(논리 코어) 단위로 측정됩니다. SQL Server의 여러 인스턴스가 동일한 OS에 설치된 경우 다음 규칙이 적용됩니다.

  • 최소 코어 크기에 따라 호스트의 전체 크기에 대해 OS당 하나의 인스턴스만 라이선스를 부여해야 합니다. 자세한 내용은 SQL Server 라이선스 가이드를 참조하세요. 다음 규칙이 적용됩니다.

  • 가장 높은 버전이 있는 인스턴스는 필요한 라이선스를 정의합니다.

  • 동일한 버전의 인스턴스가 두 개 이상 설치된 경우 첫 번째 인스턴스는 사전순으로 요금이 청구됩니다.

  • 호스트 라이선스 유형과 우승 SQL Server 버전의 조합은 매시간 전송되는 청구 미터를 정의합니다.

다음 표에서는 다양한 라이선스 유형 및 SQL Server 버전에 사용되는 미터 SKU를 보여 줍니다.

설치된 버전 Projected Edition 라이선스 유형 AG 복제본 미터 SKU
엔터프라이즈 코어 Enterprise PAYG 아니요 Ent edition - PAYG
엔터프라이즈 코어 Enterprise 유료 아니요 Ent edition - AHB
엔터프라이즈 코어 Enterprise LicenseOnly 예 또는 아니요 Ent edition - 라이선스 전용
엔터프라이즈 코어 Enterprise PAYG 또는 Pay Ent edition - DR 복제본(replica)
Enterprise 1 Enterprise PAYG 아니요 Ent edition - PAYG
Enterprise 1 Enterprise 유료 아니요 Ent edition - AHB
Enterprise 1 Enterprise LicenseOnly 예 또는 아니요 Ent edition - 라이선스 전용
Enterprise 1 Enterprise PAYG 또는 Pay Ent edition - DR 복제본(replica)
Standard Standard PAYG 아니요 Std edition - PAYG
Standard Standard 유료 아니요 Std edition - AHB
Standard Standard LicenseOnly 아니요 Std edition - 라이선스 전용
Standard Standard PAYG 또는 Pay Std edition - DR 복제본(replica)
평가 평가 LicenseOnly 예 또는 아니요 Eval Edition
개발자 개발자 LicenseOnly 예 또는 아니요 Dev Edition
LicenseOnly 해당 없음 웹 버전
Express Express LicenseOnly 해당 없음 Express Edition

1 Enterprise 버전이 설치되면 서버/CAL 라이선스 모델이 사용됨을 나타냅니다. 코어 기반 라이선스 모델로 변환할 때는 Enterprise Core로 업그레이드할 필요가 없으므로 이 버전을 Enterprise Core로 처리합니다. 코어 기반 모델로 변환되지 않았고 서버/CAL 라이선스를 사용하는 인스턴스는 라이선스 유형을 LicenseOnly로 설정해야 합니다.

라이선스 유형은 청구 차이 외에도 Arc 지원 SQL Server에서 사용할 수 있는 기능을 결정합니다. LicenseOnly 라이선스 유형을 선택하면 다음 기능이 포함되지 않습니다.

  • 장애 조치(failover) 서버에 대한 라이선스 혜택입니다. SQL Server용 Azure 확장은 무료 장애 조치(failover) 서버를 지원합니다. 특히 확장은 다음과 같습니다.

    • 인스턴스가 가용성 그룹에서 복제본(replica) 호스트하는지 자동으로 감지합니다.
    • 별도의 측정기를 사용하여 사용량 보고

    이 혜택을 받으려면 복제본(replica) 완전히 수동적이어야 합니다. 모든 해당 데이터베이스는 동일한 그룹의 일부여야 합니다. 하나 이상의 데이터베이스가 그룹에 속하지 않는 경우 인스턴스는 활성으로 처리되고 해당 버전에 따라 요금이 청구됩니다. 자세한 내용은 SQL Server 라이선스 가이드를 참조하세요.

  • 자세한 데이터베이스 인벤토리. Azure Portal에서 SQL 데이터베이스 인벤토리를 관리할 수 있습니다. 자세한 내용은 데이터베이스 보기를 참조 하세요 .

  • Azure에서 SQL Server의 자동 업데이트 관리

  • 모범 사례 평가. SQL Server 구성을 정기적으로 검사하여 모범 사례 보고서 및 권장 사항을 생성합니다. 모범 사례 평가에 대한 SQL Server 인스턴스 구성을 참조하세요.

확장 보안 업데이트 구독

ESU(확장 보안 업데이트)는 라이선스를 소프트웨어 보증 또는 종량제 라이선스 유형으로 사용하는 정규화된 SQL Server 인스턴스에 사용할 수 있습니다. 라이선스 유형이 라이선스만인 경우 ESU 구독을 활성화하는 옵션을 사용할 수 없습니다. SQL Server에 대한 확장 보안 업데이트 참조하세요.

참고 항목

ESU를 사용하는 경우 ESU 구독이 취소될 때까지 라이선스 유형을 변경할 LicenseOnly 수 없습니다.

인스턴스 제외

Azure 정책 또는 자동 온보딩 프로세스에 의해 구동되는 대규모 온보딩 작업에서 특정 인스턴스를 제외할 수 있습니다. 이러한 작업에서 특정 인스턴스를 제외하려면 인스턴스 이름을 Skip Instances 목록에 추가합니다 . 대규모 온보딩 옵션에 대한 자세한 내용은 Azure Arc에서 사용하도록 설정된 SQL Server에 대한 대체 배포 옵션을 참조 하세요.

주의

PAYG(종량제)를 사용하는 SQL Server 인스턴스는 제외할 수 없습니다.

SQL Server 구성 수정

Azure Portal, PowerShell 또는 CLI를 사용하여 특정 Arc 지원 서버의 구성 설정을 모두 또는 일부 원하는 상태로 변경할 수 있습니다.

리소스 그룹, 구독 또는 단일 명령으로 여러 구독과 같은 더 큰 범위에 대한 SQL Server 구성을 수정하려면 SQL Server 구성 PowerShell 수정 스크립트를 사용합니다. 오픈 소스 SQL Server 샘플로 게시되며 단계별 지침을 포함합니다.

필요한 Azure PowerShell 모듈이 미리 설치되어 있고 자동으로 인증되므로 Azure Cloud Shell에서 스크립트를 실행합니다. 자세한 내용은 Cloud Shell을 사용하여 스크립트 실행을 참조하세요.

Azure Portal에서 SQL Server 호스트를 구성하는 방법에는 두 가지가 있습니다.

  • Arc 지원 서버 개요 페이지를 열고 표시된 대로 SQL Server 구성을 선택합니다.

    Screenshot of the SQL Server enabled by Azure Arc in Azure portal.

    또는

  • Arc 지원 SQL Server 개요 페이지를 열고 속성을 선택합니다. SQL Server 구성에서 수정해야 하는 설정을 선택합니다.

    • 라이선스 유형
    • ESU 구독
    • 자동화된 패치

    Screenshot of Azure portal SQL Server instance configuration.

라이선스 유형 속성 설정

라이선스 유형 중 하나를 선택합니다. 설명은 라이선스 유형을 참조하세요.

확장 보안 업데이트 속성 설정

ESU를 사용하거나 사용하지 않도록 설정할 수 있습니다. 이 설정은 선택 사항이며 정규화된 SQL Server 버전에만 적용됩니다. 자세한 내용은 SQL Server용 확장 보안 업데이트란?을 참조하세요.

참고 항목

ESU 구독을 활성화하려면 라이선스 유형을 종량제 또는 소프트웨어 보증 라이선스로 설정해야 합니다. 라이선스로만 설정된 경우 확장 보안 업데이트 옵션이 비활성화됩니다.

인스턴스 제외 목록에 추가

Azure 정책 또는 자동화된 온보딩 프로세스에 의해 구동되는 대규모 온보딩 작업에서 특정 인스턴스를 제외하려면 Skip Instances 아래에 해당 인스턴스를 추가합니다. 이 설정은 선택 사항입니다.

업데이트된 구성 저장

라이선스 유형, ESU 설정 및 제외할 인스턴스를 확인한 후 저장을 선택하여 변경 내용을 적용합니다.

SQL Server 구성 쿼리

Azure Resource Graph를 사용하여 선택한 범위 내에서 SQL Server 구성 설정을 쿼리할 수 있습니다. 다음 예를 참조하세요.

라이선스 유형별 개수

이 예제에서는 라이선스 유형별로 개수를 반환합니다.

resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| extend licenseType = iff(properties.settings.LicenseType == '', 'Configuration needed', properties.settings.LicenseType)
| summarize count() by tostring(licenseType)

라이선스 유형이 정의되지 않은 인스턴스 식별

이 쿼리는 라이선스 유형이 null인 인스턴스 목록을 반환합니다.

resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| where isnull(properties.settings.LicenseType)
| project ['id'], resourceGroup, subscriptionId

각 SQL Server 인스턴스에 대한 구성 세부 정보 나열

이 쿼리는 라이선스 유형, ESU 설정 및 사용 기능을 포함하여 각 인스턴스에 대한 많은 세부 정보를 식별합니다.

resources
| where type == "microsoft.hybridcompute/machines"| where properties.detectedProperties.mssqldiscovered == "true"| extend machineIdHasSQLServerDiscovered = id
| project name, machineIdHasSQLServerDiscovered, resourceGroup, subscriptionId
| join kind= leftouter (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"    | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
    | extend machineIdHasSQLServerExtensionInstalled = iff(id contains "/extensions/WindowsAgent.SqlServer" or id contains "/extensions/LinuxAgent.SqlServer", substring(id, 0, indexof(id, "/extensions/")), "")
    | project Extension_State = properties.provisioningState,
    License_Type = properties.settings.LicenseType,
    ESU = iff(notnull(properties.settings.enableExtendedSecurityUpdates), iff(properties.settings.enableExtendedSecurityUpdates == true,"enabled","disabled"), ""),
    Extension_Version = properties.instanceView.typeHandlerVersion,
    Excluded_instances = properties.ExcludedSqlInstances,
    Purview = iff(notnull(properties.settings.ExternalPolicyBasedAuthorization),"enabled",""),
    Entra = iff(notnull(properties.settings.AzureAD),"enabled",""),
    BPA = iff(notnull(properties.settings.AssessmentSettings),"enabled",""),
    machineIdHasSQLServerExtensionInstalled)on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isnotempty(machineIdHasSQLServerExtensionInstalled)
| project-away machineIdHasSQLServerDiscovered, machineIdHasSQLServerExtensionInstalled

SQL Server 인스턴스가 있는 Arc 지원 서버 나열

이 쿼리는 SQL Server 인스턴스가 검색된 Azure Arc 지원 서버를 식별합니다.

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
//| summarize count()

이 쿼리는 SQL Server 인스턴스가 있지만 Arc SQL Server 확장이 설치되지 않은 Azure Arc 지원 서버를 반환합니다. 이 쿼리는 Windows 서버에만 적용됩니다.

resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
| project machineIdHasSQLServerDiscovered = id
| join kind= leftouter (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | where properties.type == "WindowsAgent.SqlServer"
    | project machineIdHasSQLServerExtensionInstalled = substring(id, 0, indexof(id, "/extensions/WindowsAgent.SqlServer")))
on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isempty(machineIdHasSQLServerExtensionInstalled)
| project machineIdHasSQLServerDiscoveredButNotTheExtension = machineIdHasSQLServerDiscovered

Azure Resource Graph 쿼리에 대한 자세한 예제는 시작 Resource Graph 쿼리를 참조 하세요.