적용 대상:Azure SQL Database
이 문서에서는 Azure Portal 또는 Azure PowerShell에서 Private Link 를 사용하여 Azure SQL Database를 가져오거나 내보내는 방법을 설명합니다. Azure SQL 논리 서버에서 Azure 서비스에 대한 액세스 허용을 해제로 설정합니다.
Private Link를 사용하면 Azure 서비스에 대한 액세스 허용 을 켜기로 설정할 필요 없이 안전하게 가져오기 및 내보내기 작업을 수행할 수 있으며, 그렇지 않으면 표준 가져오기 및 내보내기 작업에 필요합니다.
참고 항목
Azure SQL Database에 대한 프라이빗 링크를 사용하여 가져오기 및 내보내기는 현재 미리 보기로 제공됩니다.
필수 조건
Private Link에서 가져오기 및 내보내기를 사용하기 전에 다음 리소스 및 구성이 있는지 확인합니다.
- 가상 네트워크에 프라이빗 엔드포인트 연결이 구성된 Azure SQL 논리 서버
- BACPAC 파일(가져오기용)을 포함하거나 내보낸 BACPAC 파일을 저장하는 Blob 컨테이너가 있는 Azure Storage 계정
- Azure SQL 논리 서버 및 스토리지 계정에는 동일한 가상 네트워크 또는 피어된 가상 네트워크 내에서 구성된 프라이빗 엔드포인트가 있어야 합니다.
- Azure SQL 논리 서버와 Storage 계정 모두에서 프라이빗 엔드포인트 연결을 승인할 수 있는 적절한 권한
가져오기/내보내기 프라이빗 링크란 무엇인가요?
데이터베이스 가져오기/내보내기 프라이빗 링크는 Microsoft에서 만든 서비스 관리 프라이빗 엔드포인트입니다. 가져오기 또는 내보내기 중에 프라이빗 링크 사용 옵션을 사용하도록 설정하면 서비스는 데이터베이스 가져오기/내보내기 프로세스, Azure SQL 데이터베이스 및 Azure Storage 서비스 간의 보안 통신을 용이하게 하기 위해 프라이빗 엔드포인트를 자동으로 만듭니다.
이러한 서비스 관리 프라이빗 엔드포인트는 기존 Azure SQL 논리 서버 프라이빗 엔드포인트가 있는 동일한 가상 네트워크 및 서브넷 내에 만들어집니다. 엔드포인트는 해당 서브넷의 주소 공간에서 개인 IP 주소를 수신하며 가져오기/내보내기 작업을 진행하기 전에 수동으로 승인해야 합니다.
중요합니다
Azure SQL 논리 서버 또는 Storage 계정에 프라이빗 엔드포인트가 이미 구성된 경우 가져오기/내보내기 서비스는 가져오기/내보내기 작업을 위해 서비스 관리형 프라이빗 엔드포인트를 추가로 만듭니다. 이러한 프라이빗 엔드포인트는 기존 프라이빗 엔드포인트와 별개이며 별도의 승인이 필요합니다.
별도의 단계에서 Azure SQL 논리 서버와 Azure Blob Storage 계정 모두에 대한 프라이빗 엔드포인트를 수동으로 승인해야 합니다. 이 자습서에는 세부 정보가 포함되어 있습니다.
Azure Portal을 사용하여 Import-Export Private Link 구성
Azure Portal, PowerShell 또는 REST API를 통해 Private Link 가져오기/내보내기를 구성할 수 있습니다.
참고 항목
서비스는 Azure SQL 논리 서버의 기존 프라이빗 엔드포인트와 동일한 가상 네트워크 및 서브넷에 프라이빗 엔드포인트를 자동으로 만듭니다. 가져오기/내보내기 프로세스 중에 가상 네트워크 또는 서브넷을 수동으로 지정할 필요가 없습니다. SQL Server에 프라이빗 엔드포인트가 구성되어 있지 않은 경우 Private Link에서 가져오기/내보내기를 사용하기 전에 먼저 설정해야 합니다.
1. Azure Portal을 사용하여 Import/Export 프라이빗 링크 구성
프라이빗 링크 가져오기 사용
가져오기 프라이빗 링크를 사용하도록 설정하고 승인해야 합니다. Azure는 자동으로 프라이빗 링크를 만듭니다.
데이터베이스를 가져오려는 Azure SQL 논리 서버의 개요 페이지로 이동합니다. 도구 모음에서 데이터베이스 가져오기 를 선택합니다.
데이터베이스 가져오기 페이지에서 프라이빗 링크 사용 옵션 확인란을 선택합니다.
스토리지 계정, 인증 자격 증명, 데이터베이스 세부 정보를 입력하고 확인을 선택합니다.
프라이빗 링크 내보내기 사용
내보내기 프라이빗 링크를 사용하도록 설정하고 승인해야 합니다. Azure는 자동으로 프라이빗 링크를 만듭니다.
- 내보내려는 Azure SQL 데이터베이스의 개요 페이지로 이동합니다. 도구 모음에서 내보내기를 선택합니다.
- 데이터베이스 내보내기 페이지에서 프라이빗 링크 사용 옵션 확인란을 선택합니다.
- 스토리지 계정, 인증 자격 증명, 데이터베이스 세부 정보를 입력하고 확인을 선택합니다.
2. Azure SQL 논리 서버에 대한 프라이빗 링크 승인
사용자는 Private Link 센터 또는 Azure SQL Database에서 새 프라이빗 엔드포인트를 승인해야 합니다. 각 Azure Portal 위치에서 두 프라이빗 링크를 개별적으로 승인할 수 있습니다.
팁 (조언)
Azure SQL 논리 서버 및 Storage 계정에 대해 프라이빗 엔드포인트가 이미 구성된 경우 새 서비스 관리 프라이빗 엔드포인트가 보류 중인 연결로 표시됩니다. 이러한 프라이빗 엔드포인트는 가져오기/내보내기 작업을 위해 특별히 사용되며 기존 프라이빗 엔드포인트와는 별개입니다. import/export 서비스에서 생성된 이름으로 식별되는 프라이빗 엔드포인트를 찾습니다.
선택 사항 1: Azure 포털의 Private Link 센터에서 프라이빗 엔드포인트 승인
Azure Portal에서 Private Link 센터로 이동합니다. Azure 검색 상자에서 Private Link를 검색합니다. 프라이빗 링크를 선택합니다.
프라이빗 링크 센터에서 보류 중인 연결을 선택합니다.
Import/Export 서비스를 사용하여 만든 프라이빗 엔드포인트를 모두 선택합니다. 승인을 선택합니다.
옵션 2: Azure Portal에서 프라이빗 엔드포인트 연결을 별도로 승인
데이터베이스를 호스트하는 Azure SQL 논리 서버로 이동합니다.
보안의 리소스 메뉴에서 네트워킹을 선택합니다.
프라이빗 액세스 탭을 선택합니다.
프라이빗 엔드포인트 연결 아래의 목록에서 Import/Export 서비스를 사용하여 만든 프라이빗 엔드포인트를 선택합니다.
승인을 선택합니다.
BACPAC(
.bacpac) 파일이 있는 Blob 컨테이너를 호스트하는 스토리지 계정으로 이동합니다.보안 + 네트워킹에서 네트워킹을 선택합니다.
프라이빗 엔드포인트 연결 탭을 선택합니다.
목록에서 가져오기/내보내기 서비스에 대한 프라이빗 엔드포인트를 선택합니다.
승인을 선택하여 연결을 승인합니다.
3. 가져오기/내보내기 상태 확인
Azure SQL Server와 Azure Storage 계정 모두에서 프라이빗 엔드포인트를 승인하면 데이터베이스 가져오기 또는 내보내기 작업이 시작됩니다. 그때까지 작업은 보류되어 있습니다.
Azure SQL Server 페이지의 데이터 관리 섹션 아래에 있는 Import/Export 기록 페이지에서 데이터베이스 가져오기 또는 내보내기 작업의 상태를 확인할 수 있습니다.
PowerShell을 사용하여 가져오기/내보내기 프라이빗 링크 구성
PowerShell을 사용하는 경우 서비스 관리 프라이빗 엔드포인트는 Azure SQL 논리 서버의 기존 프라이빗 엔드포인트와 동일한 가상 네트워크 및 서브넷에 자동으로 만들어집니다. 이러한 명령을 실행하기 전에 SQL Server에 프라이빗 엔드포인트 연결이 구성되어 있는지 확인합니다.
PowerShell에서 프라이빗 링크를 사용하여 데이터베이스 가져오기
New-AzSqlDatabaseImport cmdlet을 사용하여 Azure에 데이터베이스 가져오기 요청을 제출합니다. 데이터베이스 크기에 따라 가져오기를 완료하는 데 다소 시간이 걸릴 수 있습니다. DTU 기반 프로비저닝 모델은 각 계층에 대해 데이터베이스 최대 크기 값을 선택할 수 있습니다. 데이터베이스를 가져올 때 Azure SQL Database에 지원되는 버전 및 서비스 목표 값을 사용합니다.
다음 PowerShell 코드 샘플에서 <values>에 사용자의 값을 입력하세요. 이 샘플은 이름이 sample.bacpac인 .bacpac 파일을 가져오고 두 개의 일반용 vCore를 사용하여 Azure SQL 데이터베이스를 생성합니다.
$importRequestParams = @{
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 = "GeneralPurpose"
ServiceObjectiveName = "GP_Gen5_2"
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)
}
$importRequest = New-AzSqlDatabaseImport @importRequestParams
PowerShell에서 프라이빗 링크를 사용하여 데이터베이스 내보내기
New-AzSqlDatabaseExport cmdlet을 사용하여 Azure SQL Database 서비스에 데이터베이스 내보내기 요청을 제출합니다. 데이터베이스 크기에 따라 내보내기 작업을 완료하는 데 다소 시간이 걸릴 수 있습니다.
다음 PowerShell 코드 샘플에서 사용자 고유 <values> 의 코드를 제공합니다.
$exportRequestParams = @{
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)
}
$exportRequest = New-AzSqlDatabaseExport @exportRequestParams
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 가져오기를 호출합니다.