다음을 통해 공유


Azure CLI를 사용하여 스토리지 계정의 Azure Blob 백업

이 문서에서는 Azure CLI를 사용하여 Azure Blob을 백업하는 방법을 설명합니다. 이제 Azure Backup을 사용하여 스토리지 계정의 블록 Blob을 보호하기 위해 운영 자격 증명 모음 백업을 수행할 수 있습니다.

Azure Blob 지역 가용성, 지원되는 시나리오 및 제한 사항에 대한 자세한 내용은 지원 매트릭스를 참조하세요.

시작하기 전에

시작하기 전에 필수 조건지원 매트릭스를 참조하세요.

Backup 자격 증명 모음 만들기

Backup 자격 증명 모음은 Azure Database for PostgreSQL 서버 및 스토리지 계정의 Blob 및 Azure Disk와 같이 Azure Backup이 지원하는 다양한 최신 워크로드에 대한 백업 데이터를 보유하는 Azure의 스토리지 엔터티입니다. 백업 자격 증명 모음을 사용하면 관리 오버헤드를 최소화하면서 백업 데이터를 쉽게 구성할 수 있습니다. Backup 자격 증명 모음은 Azure의 Azure Resource Manager 모델을 기반으로 하며 백업 데이터를 보호할 수 있도록 하는 향상된 기능을 제공합니다.

Backup 자격 증명 모음을 만들기 전에 자격 증명 모음 내에서 데이터의 스토리지 중복도를 선택합니다. 그런 다음, 해당 스토리지 중복도 및 위치를 사용하여 Backup 자격 증명 모음을 만듭니다. 이 문서에서는 리소스 그룹 testBkpVaultRG 아래에서 westus 지역에 Backup 자격 증명 모음 TestBkpVault를 만듭니다. az dataprotection vault create 명령을 사용하여 Backup 자격 증명 모음을 만듭니다. 백업 자격 증명 모음 만들기에 대해 자세히 알아보세요.

az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"

{
  "eTag": null,
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
  "identity": {
    "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "type": "SystemAssigned"
  },
  "location": "westus",
  "name": "TestBkpVault",
  "properties": {
    "provisioningState": "Succeeded",
    "storageSettings": [
      {
        "datastoreType": "VaultStore",
        "type": "LocallyRedundant"
      }
    ]
  },
  "resourceGroup": "testBkpVaultRG",
  "systemData": null,
  "tags": null,
  "type": "Microsoft.DataProtection/backupVaults"
}

Important

자격 증명 모음의 Backup 스토리지 중복성이 표시되지만 Blob의 운영 백업에는 중복성이 적용되지 않습니다. 이는 백업은 본질적으로 로컬이고 데이터가 Backup 자격 증명 모음에 저장되지 않기 때문입니다. 여기서 Backup 자격 증명 모음은 스토리지 계정에서 블록 Blob의 보호를 관리하는 데 도움이 되는 관리 엔터티입니다.

자격 증명 모음을 만든 후에 스토리지 계정에서 Azure Blob을 보호하는 Backup 정책을 만들어 보겠습니다.

백업 정책 만들기

Azure CLI를 사용하여 Azure Blob에 대한 운영 백업자격 증명 모음 백업에 대한 백업 정책을 만들 수 있습니다.

백업 계층 선택:

정책을 만들고 Azure Blob에 대한 백업을 구성하기 전에 필수 구성 요소를 참조하세요.

Azure Blob 백업에 대한 Backup 정책의 내부 구성 요소를 이해하려면 az dataprotection backup-policy get-default-policy-template 명령을 사용하여 정책 템플릿을 검색합니다. 이 명령은 지정된 데이터 원본 형식에 관한 기본 정책 템플릿을 반환합니다. 이 정책 템플릿을 사용하여 새 정책을 만듭니다.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob

{
  "datasourceTypes": [
    "Microsoft.Storage/storageAccounts/blobServices"
  ],
  "name": "BlobPolicy1",
  "objectType": "BackupPolicy",
  "policyRules": [
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P30D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]
}

정책 템플릿은 수명 주기(백업을 삭제/복사/이동할 시기 결정)만으로 구성됩니다. Blob의 운영 백업은 본질적으로 연속적이므로 백업을 수행하기 위한 일정이 필요하지 않습니다.

"policyRules": [
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P30D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]

참고 항목

오랜 기간에 걸쳐 복원하면 복원 작업을 완료하는 데 시간이 더 오래 걸립니다. 또한 일련의 데이터를 복원하는 데 걸리는 시간은 복원 기간 중에 수행된 쓰기 및 삭제 작업의 건수에 따라 달라집니다. 예를 들어 100만 개의 개체에 하루에 3천 개의 개체가 추가되고 1천 개의 개체가 삭제되는 계정의 경우 30일 전의 시점으로 복원하는 데 약 2시간이 소요됩니다.

변동률이 이와 같은 계정의 보존 기간 및 복원 범위는 과거 90일을 초과하지 않는 것이 좋습니다.

정책 JSON에 원하는 값이 모두 있으면 계속해서 az dataprotection backup-policy create 명령을 사용하여 정책 개체에서 새 정책을 만듭니다.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n BlobBackup-Policy --policy policy.json

{
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
    "name": "BlobBackup-Policy",
    "properties": {
      "datasourceTypes": [
        "Microsoft.Storage/storageAccounts/blobServices"
      ],
      "objectType": "BackupPolicy",
      "policyRules": [
        {
          "isDefault": true,
          "lifecycles": [
            {
              "deleteAfter": {
                "duration": "P2D",
                "objectType": "AbsoluteDeleteOption"
              },
              "sourceDataStore": {
                "dataStoreType": "OperationalStore",
                "objectType": "DataStoreInfoBase"
              },
              "targetDataStoreCopySettings": []
            }
          ],
          "name": "Default",
          "objectType": "AzureRetentionRule"
        }
      ]
    },
    "resourceGroup": "testBkpVaultRG",
    "systemData": null,
    "type": "Microsoft.DataProtection/backupVaults/backupPolicies"
  }

백업 구성

자격 증명 모음과 정책이 생성된 후 스토리지 계정 내 모든 Azure Blob을 보호하기 위해 고려해야 할 두 가지 중요한 사항이 있습니다.

  • 주요 엔터티
  • 사용 권한

주요 엔터티

  • 보호할 Blob을 포함하는 스토리지 계정: 보호할 Blob이 포함된 스토리지 계정의 Azure Resource Manager ID를 가져옵니다. 이 ID는 스토리지 계정의 식별자로 사용됩니다. 동남 아시아 지역에 있는 다른 구독의 리소스 그룹 blobrg 아래에서 CLITestSA라는 스토리지 계정의 예제를 사용합니다.

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
    
  • 백업 자격 증명 모음: 스토리지 계정 내에 있는 Blob에서 백업을 사용하려면 백업 자격 증명 모음에는 스토리지 계정에 대한 권한이 있어야 합니다. 자격 증명 모음의 시스템이 할당한 관리 ID는 해당 권한을 할당하는 데 사용됩니다.

권한 할당

생성된 자격 증명 모음(자격 증명 모음 MSI로 표시)과 관련 스토리지 계정에 Azure RBAC를 통해 몇 가지 권한을 할당해야 합니다. 이 작업은 포털 또는 PowerShell을 통해 수행할 수 있습니다. 모든 관련 권한에 관해 자세히 알아보세요.

Blob 백업을 구성하기 위한 요청 준비

모든 관련 권한이 설정되면 다음 명령을 실행하여 백업을 구성합니다.

  1. az dataprotection backup-instance initialize 명령을 사용하여 관련 자격 증명 모음, 정책, 스토리지 계정을 사용하여 관련 요청을 준비합니다.

    az dataprotection backup-instance initialize --datasource-type AzureBlob  -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" > backup_instance.json
    
  2. az dataprotection backup-instance create 명령을 사용하여 요청을 제출합니다.

    az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
    
    {
        "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
        "name": "CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
        "properties": {
          "currentProtectionState": "ProtectionConfigured",
          "dataSourceInfo": {
            "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
            "objectType": "Datasource",
            "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
            "resourceLocation": "southeastasia",
            "resourceName": "CLITestSA",
            "resourceType": "Microsoft.Storage/storageAccounts",
            "resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
          },
          "dataSourceSetInfo": null,
          "friendlyName": "CLITestSA",
          "objectType": "BackupInstance",
          "policyInfo": {
            "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
            "policyParameters": {
              "dataStoreParametersList": [
                {
                  "dataStoreType": "OperationalStore",
                  "objectType": "AzureOperationalStoreParameters",
                  "resourceGroupId": ""
                }
              ]
            },
            "policyVersion": ""
          },
          "protectionErrorDetails": null,
          "protectionStatus": {
            "errorDetails": null,
            "status": "ProtectionConfigured"
          },
          "provisioningState": "Succeeded"
        },
        "resourceGroup": "testBkpVaultRG",
        "systemData": null,
        "type": "Microsoft.DataProtection/backupVaults/backupInstances"
      }
    

Important

스토리지 계정이 Blob 백업용으로 구성되면 변경 피드 및 삭제 잠금과 몇 가지 기능이 영향을 받습니다. 자세히 알아보기.

백업 인스턴스 업데이트

백업을 구성한 후에는 백업 인스턴스를 사용하여 연결된 정책을 변경할 수 있습니다. 자격 증명 모음 백업의 경우 백업에 대해 선택한 컨테이너를 변경할 수도 있습니다.

백업 인스턴스를 업데이트하려면 다음 명령을 실행합니다.

  1. az dataprotection backup-instance validate-for-backup 명령을 사용하여 백업 인스턴스가 백업 을 구성할 준비가 되었는지 확인합니다. 백업 인스턴스가 준비되지 않은 경우 명령이 실패합니다.
  2. az dataprotection backup-instance 업데이트를 사용하여 Azure Blob을 백업하는 데 사용되는 Backup 정책을 변경합니다. 관련 백업 항목 및 새 백업 정책을 지정합니다.

다음 단계

Azure CLI를 사용하여 Azure Blob 복원