프라이빗 링크를 사용하여 Azure SQL Database 가져오기 또는 내보내기
적용 대상: Azure SQL Database
이 문서에서는 Azure Portal 또는 Azure PowerShell을 통해 프라이빗 링크를 사용하여 Azure SQL 데이터베이스를 가져오거나 내보내고 Azure SQL 논리 서버에서 Azure Services에 대한 액세스 허용을 OFF로 설정하는 방법을 설명합니다.
가져오기 또는 내보내기를 실행하려면 Azure 서비스에 대한 액세스 허용을 ON으로 설정해야 합니다. 그렇지 않으면 오류로 인해 가져오기 또는 내보내기 작업이 실패합니다. 종종 사용자는 모든 Azure 서비스에 액세스할 필요 없이 프라이빗 엔드포인트를 사용하여 가져오기 또는 내보내기를 수행하려고 합니다.
참고 항목
Azure SQL Database용 프라이빗 링크를 사용한 가져오기/내보내기는 현재 미리 보기 상태입니다.
가져오기/내보내기 프라이빗 링크란 무엇인가요?
데이터베이스 가져오기/내보내기 프라이빗 링크는 Microsoft에서 만든 서비스 관리형 프라이빗 엔드포인트이며 데이터베이스 가져오기/내보내기 프로세스, Azure SQL 데이터베이스 및 관련 Azure Storage 서비스의 모든 통신에 독점적으로 사용됩니다. 서비스 관리 프라이빗 엔드포인트는 특정 가상 네트워크 및 서브넷 내의 개인 IP 주소입니다.
프라이빗 엔드포인트는 이 자습서에 포함된 세부 정보와 함께 별도의 단계로 Azure SQL 논리 서버와 Azure Blob Storage 모두에 대해 수동으로 승인되어야 합니다.
Azure Portal을 사용하여 Import-Export Private Link 구성
Import-Export Private Link는 Azure Portal, PowerShell을 통해 또는 REST API를 사용하여 구성할 수 있습니다.
1. Azure Portal을 사용하여 Import/Export 프라이빗 링크 구성
가져오기 프라이빗 링크 만들기
- 데이터베이스를 가져올 Azure SQL 논리 서버의 개요 페이지로 이동합니다. 도구 모음에서 데이터베이스 가져오기를 선택합니다.
- 데이터베이스 가져오기 페이지에서 프라이빗 링크 사용 옵션 확인란을 선택합니다.
- 스토리지 계정, 인증 자격 증명, 데이터베이스 세부 정보를 입력하고 확인을 선택합니다.
내보내기 프라이빗 링크 만들기
- 내보낼 Azure SQL 데이터베이스의 개요 페이지로 이동합니다. 도구 모음에서 내보내기를 선택합니다.
- 데이터베이스 내보내기 페이지에서 프라이빗 링크 사용 옵션 확인란을 선택합니다.
- 스토리지 계정, 인증 자격 증명, 데이터베이스 세부 정보를 입력하고 확인을 선택합니다.
2. Azure SQL 논리 서버에 대한 프라이빗 링크 승인
새 프라이빗 엔드포인트는 Private Link 센터 또는 Azure SQL Database의 사용자가 승인해야 합니다.
선택 사항 1: Azure 포털의 Private Link 센터에서 프라이빗 엔드포인트 승인
- Azure Portal에서 Private Link 센터로 이동합니다. Azure 검색 상자에서 "Private Link"를 검색합니다.
- Private Link 센터의 프라이빗 엔드포인트 페이지로 이동합니다.
- Import/Export 서비스를 사용하여 만든 프라이빗 엔드포인트를 승인합니다.
선택 사항 2: Azure 포털의 Azure SQL Database에서 프라이빗 엔드포인트 연결 승인
데이터베이스를 호스트하는 Azure SQL 논리 서버로 이동합니다.
보안 아래의 네트워킹 페이지로 이동합니다.
프라이빗 액세스 탭을 선택합니다.
승인하려는 프라이빗 엔드포인트를 선택합니다.
승인을 선택하여 연결을 승인합니다.
3. Azure Storage에서 프라이빗 엔드포인트 연결 승인
Azure Storage에서 데이터베이스 가져오기 BACPAC 파일에 대한 새 프라이빗 엔드포인트 연결을 승인합니다.
- BACPAC(
.bacpac
) 파일이 있는 Blob 컨테이너를 호스트하는 스토리지 계정으로 이동합니다. - 보안 메뉴에서 프라이빗 엔드포인트 연결 페이지를 엽니다.
- 가져오기/내보내기 서비스에 대한 프라이빗 엔드포인트를 선택합니다.
- 승인을 선택하여 연결을 승인합니다.
4. 가져오기/내보내기 상태 확인
- 프라이빗 엔드포인트가 승인되면 Azure SQL Server와 Azure Storage 계정 모두에서 데이터베이스 가져오기 또는 내보내기 작업이 시작됩니다. 그때까지는 작업이 보류됩니다.
- Azure SQL Server 페이지의 데이터 관리 섹션 아래에 있는 Import/Export 기록 페이지에서 데이터베이스 가져오기 또는 내보내기 작업의 상태를 확인할 수 있습니다.
PowerShell을 사용하여 가져오기/내보내기 프라이빗 링크 구성
PowerShell에서 프라이빗 링크를 사용하여 데이터베이스 가져오기
New-AzSqlDatabaseImport cmdlet을 사용하여 Azure에 데이터베이스 가져오기 요청을 제출합니다. 데이터베이스 크기에 따라 가져오기를 완료하는 데 다소 시간이 걸릴 수 있습니다. DTU 기반 프로비저닝 모델은 각 계층에 대한 데이터베이스 최대 크기 값을 선택할 수 있도록 해줍니다. 데이터베이스를 가져올 때 지원되는 값 중 하나를 사용합니다.
$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" `
-ServerName "<serverName>" -DatabaseName "<databaseName>" `
-DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
-StorageKey $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName `
-StorageAccountName "<storageAccountName>").Value[0]
-StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
-Edition "Standard" -ServiceObjectiveName "P6" ` -UseNetworkIsolation $true `
-StorageAccountResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourcegroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>" `
-SqlServerResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>" `
-AdministratorLogin "<userID>" `
-AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
PowerShell에서 프라이빗 링크를 사용하여 데이터베이스 내보내기
New-AzSqlDatabaseExport cmdlet을 사용하여 Azure SQL Database 서비스에 데이터베이스 내보내기 요청을 제출합니다. 데이터베이스 크기에 따라 내보내기 작업을 완료하는 데 다소 시간이 걸릴 수 있습니다.
$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName "<resourceGroupName>" `
-ServerName "<serverName>" -DatabaseName "<databaseName>" `
-StorageKeyType "StorageAccessKey" `
-StorageKey $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName `
-StorageAccountName "<storageAccountName>").Value[0]
-StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
-UseNetworkIsolation $true `
-StorageAccountResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourcegroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>" `
-SqlServerResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>" `
-AdministratorLogin "<userID>" `
-AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
REST API를 사용하여 가져오기/내보내기 프라이빗 링크 만들기
가져오기 및 내보내기 작업을 수행하는 기존 API가 Private Link를 지원하도록 향상되었습니다. 데이터베이스 API 가져오기 참조
제한 사항
현재 가져오기/내보내기용 프라이빗 링크에는 다음과 같은 제한 사항이 있습니다.
Import/Export에서 Private Link를 사용하려면 사용자 데이터베이스 및 Azure Storage Blob 컨테이너를 동일한 유형의 Azure Cloud에서 호스트해야 합니다. 예를 들어, Azure Commercial에서 두 항목을 또는 Azure Gov에서 두 항목을 호스트해야 합니다. 클라우드 유형 간 호스팅은 지원되지 않습니다.
PowerShell을 사용하여 Azure SQL Managed Instance에서 데이터베이스 가져오기 또는 내보내기는 현재 지원되지 않습니다.
사용자 데이터베이스 또는 Azure Storage 계정이 리소스 잠금으로 보호되는 경우 Import/Export Private Link를 사용하면 안 됩니다.
내보내기 작업을 완료하려면 새 프라이빗 엔드포인트 연결에 대한 수동 승인이 필요합니다. 내보내기를 시작한 후 Private Link 센터의 "보류 중인 연결"로 이동하여 연결을 승인합니다. 이 연결이 표시되려면 몇 분 정도 걸릴 수 있습니다.
Private Link를 사용한 가져오기는 새 데이터베이스를 만드는 동안 백업 스토리지 중복도를 지정하는 것을 지원하지 않으며 기본 지역 중복 백업 스토리지 중복도를 사용하여 만듭니다. 이 문제를 해결하려면 먼저 Azure Portal 또는 PowerShell을 사용하여 원하는 백업 스토리지 중복성이 있는 빈 데이터베이스를 만든 다음, BACPAC 파일을 이 빈 데이터베이스로 가져옵니다.
프라이빗 링크가 있는 REST API를 사용한 가져오기는 API에서 데이터베이스 확장을 사용하므로 기존 데이터베이스에 대해서만 완료할 수 있습니다. 이 문제를 해결하려면 원하는 이름으로 빈 데이터베이스를 만든 다음, 프라이빗 링크를 사용하여 REST API 가져오기를 호출합니다.