다음을 통해 공유


탄력적 작업 생성, 구성 및 관리

적용 대상: Azure SQL Database

이 문서에서는 Azure SQL 데이터베이스에 대한 탄력적 작업을 생성하고 구성하며 관리하기 위해 필요한 단계를 제공합니다. Azure Portal에서 T-SQL, PowerShell 및 REST API를 사용하여 이러한 많은 단계를 수행할 수 있습니다. 탄력적 작업을 사용하면 여러 데이터베이스에서 동시에 하나 이상의 T-SQL(Transact-SQL) 스크립트를 실행할 수 있습니다. 자세한 내용은 Azure SQL 데이터베이스의 작업 자동화 개념에 대해 자세히 알아보기 또는 Azure SQL Database의 탄력적 작업을 읽어 보세요.

탄력적 작업 에이전트 구성 및 만들기

  1. DTU 구매 모델을 사용하여 빈 S1 이상의 Azure SQL Database를 만들거나 식별합니다. 이 데이터베이스는 작업 에이전트와 동일한 서버에 있어야 합니다. 이 데이터베이스는 탄력적 작업 에이전트를 만드는 동안 작업 데이터베이스로 사용됩니다. Azure Portal이나 Azure CLI, Azure CLI (sql up), 또는 PowerShell을 사용하여 단일 데이터베이스를 만들 수 있습니다.

  2. Azure 포털 또는 PowerShell탄력적 작업 에이전트를 생성합니다.

    Azure Portal에서 탄력적 작업 에이전트를 생성하는 지침은 다음과 같습니다:

    1. Azure Portal에서 탄력적 작업 에이전트를 검색합니다. 만들기를 선택하여 새 탄력적 작업 에이전트 리소스 프로비저닝을 시작합니다. 또는 이 링크를 따라 Azure Portal에서 탄력적 작업 에이전트를 생성합니다.
    2. 탄력적 작업 에이전트 이름을 제공합니다.
    3. 에이전트의 구독리소스 그룹을 선택합니다. 필요한 경우 새 리소스 그룹을 만듭니다. 탄력적 작업은 다른 리소스 그룹, 구독, 심지어 다른 Azure 지역의 데이터베이스를 대상으로 할 수 있습니다.
    4. 탄력적 작업 에이전트 서버가 되도록 Azure SQL Database 논리 서버를 선택합니다.
    5. 논리 서버에서 작업 데이터베이스탄력적 작업 에이전트 데이터베이스로 선택합니다. 일부 유효성 검사에서는 데이터베이스가 적합한지 확인합니다.
    6. 서비스 계층에서 JA 100을 선택합니다.
    7. 다음: ID를 선택합니다.
    8. 작업 에이전트가 서버/데이터베이스를 대상으로 하는 인증 방법, UMI(사용자 할당 관리 ID)를 사용한 Microsoft Entra 인증 또는 데이터베이스 범위 자격 증명에 대한 인증 방법에는 두 가지가 있습니다.
      1. 탄력적 작업 에이전트 프로비저닝 프로세스 외부에서 UMI를 만들거나 기존 UMI를 사용합니다. 사용자가 할당한 관리 ID 추가를 선택합니다. UMI를 선택합니다. 추가를 선택합니다.
      2. 데이터베이스 범위 자격 증명을 사용하려면 이 자습서의 뒷부분에 있는 단계를 참조하세요.
    9. 완료되면 다음: 태그를 선택합니다.
    10. Azure 태그 사용을 고려하세요. 예를 들어 리소스를 만든 사람을 식별하는 "소유자" 또는 "CreatedBy" 태그와 이 리소스가 프로덕션, 개발 등에 있는지 여부를 식별하는 환경 태그가 있습니다. 자세한 내용은 Azure 리소스에 대한 명명 및 태그 지정 전략 개발을 참조하세요.
    11. 검토 + 만들기를 선택합니다.
    12. 검토 + 만들기 페이지에서 새 탄력적 작업 에이전트 선택 항목의 유효성을 검사한 다음 만들기를 선택합니다.
    13. 대상 서버/데이터베이스에 인증하려면 추가 단계가 필요합니다. 이 자습서 문서의 다음 섹션에 있는 단계를 계속합니다.

작업 에이전트 인증 만들기

탄력적 작업 에이전트는 각 대상 서버 또는 데이터베이스를 인증할 수 있어야 합니다. 이 섹션에서는 탄력적 작업 에이전트가 대상 그룹의 서버/데이터베이스에 인증하는 데 필요한 단계를 설명합니다.

대상에 대한 탄력적 작업 에이전트의 인증을 위한 두 가지 옵션이 있습니다:

UMI(사용자 할당 관리 ID)로 Microsoft Entra 인증 사용

UMI(사용자 할당 관리 ID)를 사용하여 Microsoft Entra(이전의 Azure Active Directory) 인증을 사용합니다. 이는 권장하는 인증 방법입니다.

  1. 모든 작업 대상 논리 서버/데이터베이스 및 작업 출력 논리 서버에서 Microsoft Entra(이전의 Azure Active Directory) 인증을 사용하도록 설정합니다.
  2. 사용자 할당 관리 ID(UMI)를 만들거나 이미 존재하는 UMI를 사용합니다.
  3. 생성된 탄력적 작업 에이전트에 UMI를 할당합니다.
    • 탄력적 작업 에이전트를 만들 때 UMI를 할당하는 것이 좋습니다. 탄력적 작업 에이전트 만들기 및 구성의 단계를 참조하세요. Azure Portal에서 작업 에이전트를 만들 때 ID 탭에서 탄력적 작업 에이전트에 할당합니다.
    • UMI를 사용하도록 기존 탄력적 작업 에이전트를 업데이트하려면 탄력적 작업 에이전트에 대한 Azure Portal 페이지에서 리소스 메뉴의 보안 메뉴 아래 ID로 이동합니다. 탄력적 작업 에이전트에 UMI를 선택하고 할당합니다.
    • New-AzSqlElasticJobAgent 또는 Set-AzSqlElasticJobAgent PowerShell cmdlet을 사용하여 탄력적 작업 에이전트를 만들거나 업데이트하는 경우 다음 매개 변수 -IdentityType UserAssigned -IdentityID <identity resource path>(을)를 사용합니다. 예제:
      $parameters = @{
          Name = '<job agent name>'
          ResourceGroupName = '<Resource_Group_Name>'
          IdentityType = 'UserAssigned'
          IdentityID = '/subscriptions/fa58cf66-caaf-4ba9-875d-f1234/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UMI name here>'
      }
      Set-AzSqlElasticJobAgent @parameters
      
    • REST API를 사용하여 탄력적 작업 에이전트를 만들거나 업데이트할 수도 있습니다.
  4. 대상 그룹을 만들고 작업에 대한 대상을 추가합니다. PowerShell을 사용하여 대상 그룹 및 대상(작업을 실행할 데이터베이스)을 정의하거나 T-SQL을 사용하여 대상 그룹 및 대상을 정의합니다.
  5. 각 대상 서버/데이터베이스에서 T-SQL 또는 PowerShell을 사용하여 UMI 또는 데이터베이스 범위 자격 증명에 매핑된 포함된 사용자를 만듭니다:
    1. T-SQL을 사용하여 작업 인증을 만듭니다.
    2. PowerShell을 사용하여 작업 인증을 만듭니다.
  6. 출력 데이터베이스에서 UMI 작업 사용자에게 권한을 만들고 할당합니다. 출력 데이터베이스에 연결하고 jobuserUMI라는 사용자에 대해 다음 예제 스크립트를 실행합니다:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. 출력 매개 변수가 sp_add_jobstepthe @output_table_name argument 호출에서 지정된 경우 작업 에이전트 UMI 또는 데이터베이스 범위 자격 증명에 CREATE TABLE 및 INSERT 데이터에 대한 권한이 해당 출력 테이블에 부여되어야 합니다.
    GRANT CREATE TABLE TO [job_user];
    GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
    
  8. 각 대상 서버/데이터베이스에서 데이터베이스 사용자에게 작업 스크립트를 실행하는 데 필요한 권한을 부여합니다. 이러한 권한은 T-SQL 쿼리의 요구 사항에 따라 달라집니다.

데이터베이스 범위 자격 증명 사용하기

인증을 위해 작업 데이터베이스 및 각 대상 서버/데이터베이스에서 데이터베이스 범위 자격 증명을 사용할 수 있습니다. 이전에는 데이터베이스 범위 자격 증명이 탄력적 작업에서 사용할 수 있는 유일한 옵션이었습니다.

참고 항목

UMI가 작업 에이전트에 할당된 경우 SQL 인증은 대상에 연결하는 데 사용되지 않습니다. 작업 에이전트는 UMI와 함께 Microsoft Entra 인증만 사용하여 모든 대상 데이터베이스에 연결합니다.

  1. 작업 데이터베이스에서 데이터베이스 범위 자격 증명을 만듭니다.
    1. PowerShell을 사용하여 데이터베이스 범위 자격 증명 만들기
    2. T-SQL을 사용하여 데이터베이스 범위 자격 증명을 만듭니다.
  2. PowerShell을 사용하여 대상 그룹(작업을 실행하려는 데이터베이스)을 정의하거나 T-SQL을 사용하여 대상을 정의합니다.
  3. 작업이 실행될 각 대상 데이터베이스에 작업 에이전트 로그인/사용자를 만듭니다. 각 대상 서버/데이터베이스의 로그인/사용자는 작업 사용자에 대한 데이터베이스 범위 자격 증명의 ID와 이름이 동일하고 작업 사용자의 데이터베이스 범위 자격 증명과 동일한 암호를 가져야 합니다.
    1. PowerShell을 사용하여 각 대상 데이터베이스에 자격 증명 및 사용자를 추가합니다.
    2. 사용자를 추가하는 방법에 대한 자세한 내용은 로그인 및 사용자 계정을 사용하여 서버 및 데이터베이스 액세스 권한 부여를 참조하세요.
  4. 출력 데이터베이스에서 작업 사용자에게 권한을 만들고 할당합니다.
    1. 출력 데이터베이스를 호스트하는 논리 서버의 master 데이터베이스에 연결합니다. 아직 없는 경우 작업 사용자에 대한 데이터베이스 범위 자격 증명의 ID와 동일한 이름과 작업 사용자에 대한 데이터베이스 범위 자격 증명과 동일한 암호를 사용하여 SQL 인증 로그인을 만듭니다.
      CREATE LOGIN [job_user] WITH PASSWORD '<same_password_as_database-scoped_credential>'
      GO 
      
    2. 출력 데이터베이스에 연결하고 job_user라는 사용자에 대해 다음 예제 스크립트를 실행합니다:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. 출력 매개 변수가 @output_table_name 인수의 sp_add_jobstep 호출에 지정된 경우 작업 에이전트 UMI 또는 데이터베이스 범위 자격 증명에 CREATE TABLE 및 INSERT 데이터에 대한 권한이 해당 출력 테이블에 부여되어야 합니다.
      GRANT CREATE TABLE TO [job_user];
      GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
      
  5. 각 대상 서버/데이터베이스에서 데이터베이스 사용자에게 작업 스크립트를 실행하는 데 필요한 권한을 부여합니다. 이러한 권한은 T-SQL 쿼리의 요구 사항에 따라 달라집니다.

작업 만들기, 실행 및 관리

  1. PowerShell을 사용하여 작업을 만들거나 T-SQL을 사용하여 작업을 만듭니다.
  2. 각 탄력적 작업에 단계를 추가합니다. 각 작업 단계에 대해 대상 그룹을 선택해야 합니다. PowerShell을 사용하여 작업 단계를 추가하거나 T-SQL을 사용하여 작업 단계를 추가합니다.
  3. PowerShell을 사용하여 작업을 실행하거나 T-SQL을 사용하여 작업을 실행합니다.
  4. Azure 포털을 사용하여 작업 실행 상태를 모니터링하고, PowerShell로 작업을 모니터링하거나, T-SQL로 작업을 모니터링하세요.

Azure SQL 탄력적 작업 프라이빗 엔드포인트 구성하기

각 대상 서버는 서비스 관리 프라이빗 엔드포인트를 통해 도달하고, Microsoft에서 만들고 관리하며, 탄력적 작업에만 사용할 수 있습니다. 탄력적 작업 프라이빗 엔드포인트를 만들면 탄력적 작업과 대상 서버 간에 프라이빗 링크가 설정됩니다. 구성되면 탄력적 작업 에이전트와 대상 서버 간의 모든 통신이 프라이빗 엔드포인트를 통해 수행됩니다.

구성은 쉽습니다. 이 통신을 사용하려면 원하는 각 대상 서버와 작업 출력 서버에 대한 프라이빗 엔드포인트를 만들어야 합니다.

  1. 탄력적 작업 에이전트 탐색 메뉴의 보안 아래에서 프라이빗 엔드포인트를 선택합니다.
  2. 서버 추가를 선택하고 프라이빗 엔드포인트를 만듭니다.
  3. 프라이빗 엔드포인트 만들기 창을 엽니다.
    1. Azure의 모든 구독에서 대상 서버를 선택할 수 있습니다.
    2. 해당 구독에서 대상 Azure SQL Database 논리 서버를 선택합니다.
    3. 프라이빗 엔드포인트 이름을 제공합니다.
  4. 프라이빗 엔드포인트 만들기를 선택합니다. 배포에 몇 분 정도 걸릴 수 있습니다. 곧 프라이빗 엔드포인트 페이지의 연결 상태보류 중으로 표시됩니다.
  5. Azure Portal에서 Azure SQL 데이터베이스 논리 서버로 이동합니다.
  6. 해당 대상 Azure SQL Database 논리 서버의 관리자로 SQL server 탐색 메뉴의 보안 하의 네트워킹을 선택합니다.
  7. 프라이빗 액세스를 선택합니다.
  8. 프라이빗 엔드포인트 요청을 승인합니다.
  9. 프라이빗 엔드포인트 페이지의 연결 상태승인됨으로 표시됩니다. 이제 작업 에이전트와 해당 대상 Azure SQL Database 논리 서버의 모든 데이터베이스 또는 탄력적 풀 간의 통신은 서비스 관리 프라이빗 엔드포인트를 통과합니다.
  10. 해당 대상 Azure SQL Database 논리 서버의 관리자로 SQL Server 탐색 메뉴의 보안 하의 네트워킹을 선택합니다. 탄력적 작업의 목적을 위해 공용 액세스를 사용하도록 설정할 필요는 없습니다.

Azure Monitor를 사용하여 작업 에이전트 경고 구성

탄력적 작업 에이전트 리소스에 대한 Azure Monitor 경고를 구성하여 작업 실행 상태 알림을 받습니다. 예를 들어 사용자가 구성한 작업 그룹을 통해 작업의 실패/성공에 대한 알림을 받을 수 있습니다.

Azure Portal, PowerShell 또는 REST API를 사용하여 탄력적 작업 에이전트 경고를 만들 수 있습니다.

Azure 포털을 사용하여 작업 에이전트 경고 만들기

Azure Portal, Azure CLI, PowerShell 및 REST API를 사용하여 Azure Monitor 경고 규칙을 만듭니다. 탄력적 작업에 대한 경고 규칙은 Azure SQL Database와 같은 다른 경고 규칙과 유사하게 작동합니다.

Azure Portal을 진행하려면 다음을 수행합니다:

  1. 탄력적 작업 에이전트를 위한 Azure Portal 리소스 메뉴에서 모니터를 선택한 다음, 왼쪽 메뉴에서 경고를 선택합니다.
  2. 이 리소스 프롬프트의 경고 규칙 설정 아래에서 경고 규칙 만들기를 선택합니다.
  3. 경고 규칙 만들기 페이지에서 신호 선택 페이지가 열립니다. 탄력적 작업 메트릭 탄력적 작업 실행 실패, 탄력적 작업 실행 성공 또는 탄력적 작업 실행 시간 초과를 선택합니다. Azure 포털의 경고 규칙 페이지를 보여주고 있는 스크린샷입니다.
  4. 경고 논리에서 임계값, 집계 유형, 연산자단위를 기본값으로 둡니다.
  5. 임계값0로 설정합니다. 다른 설정은 기본값으로 유지할 수 있습니다.
  6. 다음: 작업을 선택합니다.
  7. 기존 작업 그룹을 선택하거나 작업 그룹 만들기를 선택합니다.
    1. 예를 들어 Azure Portal에서 Azure Monitor 경고 작업 그룹을 만들어 오류의 관리자 또는 개발자에게 알림 설정을 지정합니다.
    2. 경고 작업 그룹을 테스트합니다.
  8. 다음: 세부 정보를 선택합니다.
  9. 구독리소스 그룹프로젝트 세부 정보로 제공합니다.
  10. 경고 통신에 대한 경고 규칙 세부 정보를 제공합니다. 경고 규칙 이름을 제공합니다.
  11. 태그를 선택하고 이 경고에 대한 CreatedBy 또는 환경과 같은 메타데이터를 제공합니다.
  12. 검토 + 생성를 선택합니다. 만들기를 선택합니다. 경고 규칙이 Azure Portal에 표시되는 데 몇 분 정도 걸릴 수 있습니다.
  13. 필요에 따라 Azure Portal, Azure CLI 또는 PowerShell을 사용하여 Azure Monitor 경고 처리 규칙을 만듭니다. 경고 처리 규칙을 사용하여 알림을 표시하지 않거나 특정 유형의 경고에 특정 작업을 적용하는 등 경고가 트리거될 때 발생하는 작업을 결정합니다.

작업 에이전트 크기 조정

기본적으로 작업 에이전트는 JA100에서 생성되므로 최대 100개의 탄력적 작업 실행을 동시에 허용합니다. 서비스 수준 변경을 시작하는 것은 비동기 작업이며 짧은 프로비전 지연 후에 새 서비스 수준을 사용할 수 있게 됩니다.

탄력적 작업 에이전트의 동시 실행이 100개 이상 필요한 경우 더 높은 서비스 수준을 사용할 수 있습니다. 동시 용량 계층을 참조하세요. 현재 Azure Portal, PowerShell 또는 REST API를 통해 작업 에이전트의 서비스 수준을 변경할 수 있습니다.

동시 작업으로 서비스 수준을 초과하면 작업이 서비스 수준의 동시 작업 제한을 초과하여 시작되기 전에 큐 지연이 발생합니다.

Azure Portal을 사용하여 탄력적 작업 에이전트 크기 조정

  1. Azure Portal에서 탄력적 작업 에이전트 페이지로 이동합니다.
  2. 가격 책정 계층을 선택하거나 상황에 맞는 메뉴에서 스케일 업/다운을 선택합니다.
  3. 서비스 계층 드롭다운 목록에서 새 서비스 계층을 선택합니다.
  4. 비용 카드를 검토합니다.
  5. 업데이트를 선택합니다.

PowerShell을 사용하여 탄력적 작업 에이전트 크기 조정

Set-AzSqlElasticJobAgent에 대한 선택적 -ServiceObjective매개 변수를 사용하여 새 서비스 목표를 지정할 수 있습니다. 예제:

$parameters = @{
    Name = '<job agent name>'
    ResourceGroupName = '<Resource_Group_Name>'
    ServiceObjective = 'JA200'
}
Set-AzSqlElasticJobAgent @parameters

REST API를 사용하여 탄력적 작업 에이전트 크기 조정

작업 에이전트 REST API를 사용하여 작업 에이전트의 크기를 조정할 수 있습니다. 예제:

{ 
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/jobAgents/agent1", 
"name": "agent1", 
"type": "Microsoft.Sql/servers/jobAgents", 
"location": "southeastasia", 
"sku": {
"name": "JA100  ", 
"capacity": 100 
}, 
"properties": {  
"databaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/databases/db1"
}  
}