Azure PowerShell을 사용하여 스토리지 계정의 모든 Azure Blob 백업
이 문서에서는 Azure PowerShell을 사용하여 스토리지 계정 내 모든 Azure Blob을 백업하는 방법을 설명합니다. 이제 Azure Backup을 사용하여 스토리지 계정의 블록 Blob을 보호하기 위해 운영 및 자격 증명 모음 백업을 수행할 수 있습니다. REST API를 사용하여 백업을 구성할 수도 있습니다.
Azure Blob 지역 가용성, 지원되는 시나리오 및 제한 사항에 관한 자세한 내용은 지원 매트릭스를 참조하세요.
Important
Azure Blob에 대한 지원은 버전 Az 5.9.0부터 제공됩니다.
시작하기 전에
시작하기 전에 필수 조건 및 지원 매트릭스를 참조하세요.
Backup 자격 증명 모음 만들기
백업 자격 증명 모음은 Azure Database for PostgreSQL 서버 및 Azure Blob과 같이 Azure Backup이 지원하는 다양한 최신 워크로드에 대한 백업 데이터를 저장하는 Azure의 스토리지 엔터티입니다. 백업 자격 증명 모음을 사용하면 관리 오버헤드를 최소화하면서 백업 데이터를 쉽게 구성할 수 있습니다. Backup 자격 증명 모음은 Azure의 Azure Resource Manager 모델을 기반으로 하며 백업 데이터를 보호할 수 있도록 하는 향상된 기능을 제공합니다.
백업 자격 증명 모음을 만들기 전에 자격 증명 모음 내에서 데이터의 스토리지 중복도를 선택합니다. 그런 다음 해당 스토리지 중복도 및 위치를 사용하여 백업 자격 증명 모음을 만듭니다. 이 문서에서는 리소스 그룹 testBkpVaultRG 아래에서 westus 지역에 백업 자격 증명 모음 TestBkpVault를 만듭니다. New-AzDataProtectionBackupVault 명령을 사용하여 백업 자격 증명 모음을 만들 수 있습니다. 백업 자격 증명 모음 만들기에 대해 자세히 알아보세요.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag :
Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId :
IdentityType :
Location : westus
Name : TestBkpVault
ProvisioningState : Succeeded
StorageSetting : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type : Microsoft.DataProtection/backupVaults
자격 증명 모음을 만든 후에는 Azure Blob을 보호하는 백업 정책을 만들어 보겠습니다.
Important
자격 증명 모음의 백업 스토리지 중복성이 표시되지만 백업은 본질적으로 로컬이고 데이터가 백업 자격 증명 모음에 저장되지 않으므로 Blob의 운영 백업에는 중복성이 적용되지 않습니다. 여기서 백업 자격 증명 모음은 스토리지 계정에서 블록 Blob의 보호를 관리하는 데 도움이 되는 관리 엔터티입니다.
백업 정책 만들기
백업 계층 선택:
Important
정책을 계속 만들고 Azure Blob의 백업을 구성하기 전에 이 섹션을 읽어보세요.
Azure Blob 백업에 대한 백업 정책의 내부 구성 요소를 이해하려면 Get-AzDataProtectionPolicyTemplate 명령을 사용하여 정책 템플릿을 검색합니다. 이 명령은 지정된 데이터 원본 형식에 관한 기본 정책 템플릿을 반환합니다. 이 정책 템플릿을 사용하여 새 정책을 만듭니다.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureBlob
$policyDefn | fl
DatasourceType : {Microsoft.Storage/storageAccounts/blobServices}
ObjectType : BackupPolicy
PolicyRule : {Default}
$policyDefn.PolicyRule | fl
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api202101.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
정책 템플릿은 수명 주기(백업을 삭제/복사/이동할 시기 결정)만으로 구성됩니다. Blob의 운영 백업은 본질적으로 연속적이므로 백업을 수행하기 위한 일정이 필요하지 않습니다.
$policyDefn.PolicyRule.Lifecycle | fl
DeleteAfterDuration : P30D
DeleteAfterObjectType : AbsoluteDeleteOption
SourceDataStoreObjectType : DataStoreInfoBase
SourceDataStoreType : OperationalStore
TargetDataStoreCopySetting :
참고 항목
오랜 기간에 걸쳐 복원하면 복원 작업을 완료하는 데 시간이 더 오래 걸립니다. 또한 일련의 데이터를 복원하는 데 걸리는 시간은 복원 기간 중에 수행된 쓰기 및 삭제 작업의 건수에 따라 달라집니다. 예를 들어 100만 개의 개체에 하루에 3천 개의 개체가 추가되고 1천 개의 개체가 삭제되는 계정의 경우 30일 전의 시점으로 복원하는 데 약 2시간이 소요됩니다.
변동률이 이와 같은 계정의 보존 기간 및 복원 범위는 과거 90일을 초과하지 않는 것이 좋습니다.
정책 개체에 원하는 값이 모두 있으면 계속해서 New-AzDataProtectionBackupPolicy 명령을 사용하여 정책 개체에서 새 정책을 만듭니다.
New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name blobBkpPolicy -Policy $policyDefn
Name Type
---- ----
blobBkpPolicy Microsoft.DataProtection/backupVaults/backupPolicies
$blobBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "blobBkpPolicy"
백업 구성
자격 증명 모음과 정책이 생성된 후 스토리지 계정 내 모든 Azure Blob을 보호하기 위해 고려해야 할 두 가지 중요한 사항이 있습니다.
- 주요 엔터티
- 사용 권한
주요 엔터티
보호할 Blob을 포함하는 스토리지 계정: 보호할 Blob이 포함된 스토리지 계정의 Azure Resource Manager ID를 가져옵니다. 이 ID는 스토리지 계정의 식별자로 사용됩니다. 여기서는 다른 구독의 리소스 그룹 blobrg 아래 PSTestSA라는 스토리지 계정의 예를 사용하겠습니다.
$SAId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/PSTestSA"
백업 자격 증명 모음: 스토리지 계정 내에 있는 Blob에서 백업을 사용하려면 백업 자격 증명 모음에 스토리지 계정에 대한 권한이 있어야 합니다. 자격 증명 모음의 시스템이 할당한 관리 ID는 해당 권한을 할당하는 데 사용됩니다.
권한 할당
생성된 자격 증명 모음(자격 증명 모음 MSI로 표시)과 관련 스토리지 계정에 Azure RBAC를 통해 몇 가지 권한을 할당해야 합니다. 이 작업은 포털 또는 PowerShell을 통해 수행할 수 있습니다. 모든 관련 권한에 관해 자세히 알아보세요.
Blob 백업을 구성하기 위한 요청 준비
백업 계층 선택:
모든 관련 사용 권한을 설정하면 백업 구성은 2개의 단계로 수행됩니다. 먼저 Initialize-AzDataProtectionBackupInstance 명령을 사용하여 관련 자격 증명 모음, 정책, 스토리지 계정을 사용하여 관련 요청을 준비합니다. 그런 다음, New-AzDataProtectionBackupInstance 명령을 사용하여 스토리지 계정 내 Blob을 보호하기 위한 요청을 제출합니다.
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureBlob -DatasourceLocation $TestBkpvault.Location -PolicyId $blobBkpPol[0].Id -DatasourceId $SAId
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
blobrg-PSTestSA-3df6ac08-9496-4839-8fb5-8b78e594f166 Microsoft.DataProtection/backupVaults/backupInstances blobrg-PSTestSA-3df6ac08-9496-4839-8fb5-8b78e594f166
Important
스토리지 계정이 Blob 백업용으로 구성되면 변경 피드 및 삭제 잠금과 몇 가지 기능이 영향을 받습니다. 자세히 알아보기.
백업 인스턴스 업데이트
백업을 구성한 후에는 백업 인스턴스를 사용하여 연결된 정책을 변경할 수 있습니다. 자격 증명 모음 백업의 경우 백업에 대해 선택한 컨테이너를 변경할 수도 있습니다.
백업 인스턴스를 업데이트하려면 다음 cmdlet을 실행합니다.
Test-AzDataProtectionBackupInstanceReadiness 명령을 사용하여 백업 인스턴스가 백업을 구성할 준비가 되었는지 확인합니다. 백업 인스턴스가 준비되지 않은 경우 명령이 실패합니다.
이 명령을 사용하여 백업 자격 증명 모음에 백업을 구성하는 데 필요한 모든 권한이 있는지 확인할 수도 있습니다.
Update-AzDataProtectionBackupInstance를 사용하여 Azure Blob을 백업하는 데 사용되는 정책을 변경합니다. 관련 백업 항목 및 새 백업 정책을 지정합니다.
정책 또는 새 컨테이너를 기존 백업 항목으로 업데이트합니다.
cmdlet을 사용하여 스토리지 계정 컨텍스트를
New-AzStorageContext
만듭니다. Microsoft Entra 자격 증명을-UseConnectedAccount
사용하여 데이터 작업이 수행되도록 매개 변수를 제공합니다. 스토리지 계정 명령에 대해 자세히 알아봅니다.Create a context object using Azure AD credentials $ctx = New-AzStorageContext -StorageAccountName xxx -UseConnectedAccount
cmdlet을 사용하여 스토리지 컨테이너를
Get-AzStorageContainer
검색합니다. 단일 컨테이너를 검색하려면 매개 변수를-Name
제공합니다. 지정된 문자열로 시작하는 컨테이너 목록을 반환하려면 매개 변수의 값을-Prefix
지정합니다.
다음 예제에서는 개별 컨테이너와 컨테이너 리소스 목록을 모두 검색합니다.
# Create variables $containerName = "individual-container" $prefixName = "loop-" # Approach 1: Retrieve an individual container Get-AzStorageContainer -Name $containerName -Context $ctx Write-Host # Approach 2: Retrieve a list of containers $targetContainers = Get-AzStorageContainer -Context $ctx | Where-Object { $_.Name -match "cont" }
결과는 Blob 엔드포인트의 URI를 제공하고 이름 및 접두사로 검색된 컨테이너를 나열합니다.
Storage Account Name: demostorageaccount Name PublicAccess LastModified IsDeleted VersionId ---- ------------ ------------ --------- --------- individual-container 11/2/2021 5:52:08 PM +00:00 loop-container1 11/2/2021 12:22:00 AM +00:00 loop-container2 11/2/2021 12:22:00 AM +00:00 loop-container1 11/2/2021 12:22:00 AM +00:00 loop-container2 11/2/2021 12:22:00 AM +00:00 loop-container3 11/2/2021 12:22:00 AM +00:00 True 01D7E7129FDBD7D4 loop-container4 11/2/2021 12:22:00 AM +00:00 True 01D7E8A5EF01C787
업데이트해야 하는 백업 인스턴스를 가져옵니다.
C:\Users\testuser> $instance = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription "Demosub" -ResourceGroup Demo-BCDR-RG -Vault BCDR-BV-EastUS -DatasourceType AzureBlob PS C:\Users\testuser> $instance Output Name BackupInstanceName ---- ------------------ blobsa-blobsa-c7325e08-980d-43b2-863f-68feee4fd03c blobsa-blobsa-c7325e08-980d-43b2-863f-68feee4fd03c blobsavaulted-blobsavaulted-40c36519-f422-45aa-bbeb-3f0eedb440c7 blobsavaulted-blobsavaulted-40c36519-f422-45aa-bbeb-3f0eedb440c7 testdpp-testdpp-ff4254dd-7a70-437b-9a10-8c0d2223d037 testdpp-testdpp-ff4254dd-7a70-437b-9a10-8c0d2223d037
Backup 인스턴스에서 업데이트하려는 자격 증명 모음 정책의 이름으로 백업 정책을 가져옵니다. Backup 인스턴스에서 업데이트해야 하는 새 정책을 가져올 수도 있습니다.
$updatePolicy = Get-AzDataProtectionBackupPolicy -SubscriptionId "Demosub" -VaultName BCDR-BV-EastUS -ResourceGroupName Demo-BCDR-RG -name continer-1
백업 인스턴스를 새 컨테이너 목록(기존 백업된 컨테이너 및 새 컨테이너)으로 업데이트합니다.
PS C:\Users\testuser> $updateBI = Update-AzDataProtectionBackupInstance -ResourceGroupName Daya-BCDR-RG -VaultName DPBCDR-BV-EastUS -BackupInstanceName $instance[0].Name -SubscriptionId "ef4ab5a7-c2c0-4304-af80-af49f48af3d1" -PolicyId $updatePolicy.id -VaultedBackupContainer $targetContainers.name PS C:\Users\testuser> $updateBI.Property.PolicyInfo.PolicyId /subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/Daya-BCDR-RG/providers/Microsoft.DataProtection/backupVaults/DPBCDR-BV-EastUS/backupPolicies/continerdeltest-1 PS C:\Users\testuser> $updateBI.Property.PolicyInfo.PolicyParameter.BackupDatasourceParametersList[0].ContainersList cont-01 cont-02 cont-03 cont-04 cont-05 cont-06 cont-07 cont-08 cont-09 cont-10 cont-11