Azure SQL Database 만들기 및 구성
코드를 사용하거나 Azure Portal을 통해 수동으로 Azure SQL Database를 만들 수 있습니다. 또한 데이터베이스 만들기를 자동화된 CI(연속 통합) 프로세스에 통합할 수 있습니다. 데이터베이스를 만드는 코드를 작성하면 매번 정확히 동일한 사양을 항상 생성할 수 있으므로 이 접근 방식은 일관성을 유지하는 데 유용합니다.
코드를 사용하여 Azure SQL Database를 만드는 경우 다음 네 가지 주요 단계를 따릅니다.
- 리소스 그룹 만들기
- SQL 서버 만들기
- 방화벽 규칙 구성
- 데이터베이스 만들기
리소스 그룹 만들기
Azure의 모든 리소스는 리소스 그룹 내에서 만들어집니다. 코드를 사용하여 리소스 그룹을 만드는 경우 Portal에서 데이터베이스를 만들 때와 동일한 가시성을 가질 수 없습니다. 자동화된 배포에 리소스 그룹 만들기를 포함해야 하는 경우 임의 이름을 사용하는 것이 좋습니다. 이 접근 방식을 사용하면 테넌트에서 기존 리소스 그룹 이름과 중복되는 것을 방지할 수 있습니다.
참고 항목
$RANDOM은(는) 0에서 32767 범위의 의사 난수 정수를 반환하는 Bash 함수입니다.
Get-Random PowerShell에서 반환한 범위보다 작은 범위입니다. 고유성을 보장하기 위해 두 $RANDOM 결과를 함께 곱할 수 있습니다.
코드를 사용하여 리소스 그룹을 만드는 방법에 관한 자세한 내용은 Azure CLI를 사용하여 Azure 리소스 그룹 관리 또는 Azure PowerShell을 사용하여 Azure 리소스 그룹 관리를 참조하세요.
SQL 서버 만들기
SQL 서버를 만드는 경우 서버 이름도 고유해야 하며, 강력한 암호를 사용하여 관리자 사용자를 만들어야 합니다.
이 예제에서는 Azure CLI를 사용하여 SQL 서버를 만듭니다.
serverName="svr-$randomId"
adminUser="azureadmin"
adminPassword="pw-$randomId"
az sql server create --name $serverName --resource-group $resourceGroup --location $location \
--admin-user $adminUser --admin-password $adminPassword
이 예제에서는 PowerShell을 사용하여 SQL 서버를 만듭니다.
$serverName = "svr-$randomId"
$adminUser = "azureadmin"
$adminPassword = "pw-$randomId"
$credentials = New-Object -TypeName System.Management.Automation.PSCredential `
-ArgumentList $adminUser, $(ConvertTo-SecureString -String $adminPassword -AsPlainText -Force)
$server = New-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup `
-Location $location -SqlAdministratorCredentials $credentials
$server
방화벽 규칙 구성
방화벽 규칙은 서버에 대한 액세스가 허용되거나 거부되는 트래픽을 지정합니다.
이 예제에서는 Azure CLI를 사용하여 방화벽 규칙을 추가합니다.
startIpAddress="0.0.0.0"
endIpAddress="0.0.0.0"
firewallRuleName="AllowedIPRange"
az sql server firewall-rule create --server $serverName \
--resource-group $resourceGroup \
--name $firewallRuleName --start-ip-address $startIpAddress --end-ip-address $endIpAddress
이 예제에서는 PowerShell을 사용하여 방화벽 규칙을 추가합니다.
$startIpAddress = "0.0.0.0"
$endIpAddress = "0.0.0.0"
$firewallRuleName = "AllowedIPRange"
$serverFirewallRule = New-AzSqlServerFirewallRule -ServerName $serverName `
-ResourceGroupName $resourceGroup `
-FirewallRuleName $firewallRuleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
$serverFirewallRule
데이터베이스 만들기
이제 내가 만든 서버에서 Azure SQL Database를 만들 준비가 되었습니다. 이 코드 예제에서는 AdventureWorksLT 샘플 데이터베이스를 만듭니다. 빈 데이터베이스를 만들려면 데이터베이스 이름을 변경하고 --sample-name 매개 변수를 사용하여 줄을 제거하세요.
다음 코드 조각은 Azure CLI를 사용하여 AdventureWorksLT 데이터베이스를 만듭니다.
az sql db create --name AdventureWorksLT
\ --resource-group $resourceGroup --server $serverName
\ --sample-name AdventureWorksLT
\ --edition GeneralPurpose --compute-model serverless --family Gen5 --capacity 2
다음 코드 조각은 PowerShell을 사용하여 AdventureWorksLT 데이터베이스를 만듭니다.
New-AzSqlDatabase -DatabaseName AdventureWorksLT `
-ResourceGroupName $resourceGroup -ServerName $serverName `
-SampleName AdventureWorksLT `
-Edition GeneralPurpose -ComputeModel Serverless -ComputeGeneration Gen5 -VCore 2
코드 조각은 하나의 특정 서비스 계층 및 컴퓨팅 계층에 대한 Azure SQL Database를 만드는 방법을 보여 줍니다. 사용 가능한 서비스와 컴퓨팅 계층에 관한 자세한 내용은 서비스 계층을 참조하세요.
데이터베이스 쿼리
Azure에서 리소스 그룹과 서버를 이미 만든 경우 T-SQL을 사용하여 Azure SQL Database를 만들 수 있습니다. T-SQL은 Azure 리소스를 만드는 기능을 제공하지 않습니다.
그러나 Azure SQL 대시보드로 이동하여 Azure Portal에서 쿼리 편집기를 사용하여 기존 데이터베이스를 쿼리할 수 있습니다.
시작하려면 Azure Portal에 로그인하여 데이터베이스로 이동합니다. 왼쪽 탐색 창에서 쿼리 편집기를 선택합니다. 그런 다음 SQL 관리자 로그인 정보를 사용하여 로그인합니다. 로그인한 후 AdventureWorksLT 데이터베이스에 대해 다음 T-SQL 쿼리를 실행합니다.
SELECT TOP 10 C.Name AS Category, SUM(S.OrderQty * S.UnitPrice) AS SalesValue
FROM [SalesLT].[ProductCategory] AS C
INNER JOIN [SalesLT].[Product] AS P
ON C.ProductCategoryID = P.ProductCategoryID
INNER JOIN [SalesLT].[SalesOrderDetail] AS S
ON P.ProductID = S.ProductID
GROUP BY C.Name
ORDER BY SalesValue DESC;
사용 가능한 Azure SQL Database 배포 모델에 관한 자세한 내용은 Azure SQL Database란?을 참조하세요.