연습 - Azure SQL Database 구성

완료됨

지금까지 Azure Data Studio에서 Azure Portal, SSMS(SQL Server Management Studio), SQL Notebooks를 살펴보았습니다. Azure SQL을 관리하는 데는 다른 도구를 사용할 수 있습니다. 가장 인기 있는 두 가지 도구는 Azure CLI 및 Azure PowerShell입니다. 기능면에서 유사합니다. 이 작업은 Azure CLI에 중점을 둡니다.

이 활동을 완료하려면 SQL Notebook과 개념적으로 동일하지만 코딩 언어가 PowerShell인 PowerShell Notebook을 사용할 수 있습니다. PowerShell Notebooks를 사용하여 Azure CLI 또는 Azure PowerShell을 활용할 수 있습니다. 이 문서에서는 Azure CLI 명령에 중점을 둡니다. 두 도구의 경우 Azure Portal에서 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 사용할 수도 있습니다.

이 연습에서는 Cloud Shell을 사용합니다. 이미 Azure CLI 및 Azure PowerShell 모듈이 포함되어 있습니다.

Azure Cloud Shell 및 Azure CLI를 사용하여 연결

다음 예에서는 Azure SQL에서 다른 연결 정책을 사용할 때의 대기 시간 효과를 살펴봅니다.

Cloud Shell을 사용하여 모든 명령을 실행합니다. 손쉽게 명령을 복사한 후 Shift+Insert를 선택하여 터미널에 붙여넣을 수 있습니다.

참고 항목

Azure Cloud Shell을 사용하는 PowerShell에서는 PowerShell Az 모듈 또는 Azure CLI를 사용할 수 있습니다. 이 작업에서는 Azure CLI를 탐색하지만 PowerShell Az 모듈에도 유사한 명령을 사용할 수 있습니다.

  1. 메시지가 나타나면 shell.azure.com으로 이동하여 Azure 계정에 로그인합니다.

  2. 기본 리소스 그룹 및 Azure SQL Database 논리 서버를 구성하므로, 모든 az 명령에서 지정할 필요가 없습니다. 다음 명령을 실행하여 일부 변수를 설정합니다. <resource-group><your-server>를 이전 연습에서 SQL 인스턴스를 만들 때 사용한 값으로 바꿉니다.

    resourceGroup="<resource-group>"
    logical_server="<your-server>"
    databaseName="AdventureWorks"
    
  3. Cloud Shell에서 기본값을 설정하여 기본 리소스 그룹 및 Azure SQL Database 논리 서버를 지정합니다.

    az configure --defaults group=$resourceGroup sql-server=$logical_server
    
  4. 다음 명령을 실행하여 기본값이 설정되어 있는지 확인합니다.

    az configure --list-defaults
    
  5. 다음 명령을 실행하여 Azure SQL Database 논리 서버에 있는 모든 데이터베이스를 표시합니다.

    az sql db list
    
  6. 데이터베이스 목록은 많은 정보를 나타냅니다. AdventureWorks 데이터베이스의 세부 정보를 보려면 다음 명령을 실행합니다.

    az sql db show --name $databaseName
    
  7. 다음 명령을 실행하여 데이터베이스 크기 및 사용량을 결정합니다.

    az sql db list-usages --name $databaseName
    

이 예에서는 az sql db 명령을 사용합니다. Azure SQL Database 논리 서버와 관련된 명령도 있습니다. 이는 az sql server 아래 있습니다.

az sql miaz sql midb에 대한 유사한 명령이 있습니다. 관리형 데이터베이스라고도 하는 관리되는 인스턴스 내의 데이터베이스용 명령입니다.

사용 가능한 모든 명령에 관한 자세한 내용은 Azure CLI 설명서를 참조하세요.

Azure CLI를 사용하여 연결 정책 관리

Azure CLI 또는 Azure PowerShell 명령을 사용할 수 있는 한 가지 방법은 연결 정책을 업데이트하는 것입니다. 이 업데이트는 Azure CLI와 같은 도구를 사용하여 Azure SQL을 관리할 수 있는 방법의 예입니다. 이 예에서는 연결 정책을 관리하기 위해 Azure SQL Database 및 해당 명령을 살펴보겠습니다. 구현은 Azure SQL Managed Instance와 비슷합니다.

  1. Azure CLI를 사용하여 현재 정책을 알아봅니다.

    az sql server conn-policy show
    

    결과를 보면 연결 형식이 Default임을 알 수 있습니다.

  2. 연결 정책을 Proxy로 설정하고 왕복 시간을 확인합니다.

    # update policy
    az sql server conn-policy update --connection-type Proxy
    # confirm update
    az sql server conn-policy show
    
  3. 왕복 시간을 테스트하려면 SSMS를 사용하여 연결합니다. 디바이스에서 SSMS를 열고 데이터베이스에 연결합니다. 데이터베이스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 선택합니다. 다음 텍스트를 사용하여 새 쿼리를 만든 다음, 쿼리>클라이언트 통계 포함을 선택합니다. 결과에서 네트워크 대기 시간을 가장 잘 나타내는 지표는 서버 응답에 대한 대기 시간입니다. 이 쿼리를 여러 번 실행하여 유용한 평균을 얻을 수 있습니다.

    -- Proxy
    SELECT * FROM SalesLT.Product
    GO 10
    

    10회 평가한 후 서버 응답의 평균 대기 시간은 46.6000과 같을 수 있습니다. 인터넷 연결 상태에 따라 결과가 달라질 수 있습니다. 관찰된 시간을 기록해 둡니다.

  4. 대기 시간을 줄일 수 있도록 모든 항목을 Redirect하려면 어떻게 해야 하나요?

    항목이 Azure 외부에 있는 경우 11000~11999 범위의 포트에서 인바운드 통신과 아웃바운드 통신을 허용해야 합니다. Redirect 연결 정책을 위해 이러한 포트를 열어야 합니다.

    참고

    해당 설정은 로컬 디바이스에 이미 구성되어 있을 수 있습니다. 다음 단계에서 오류가 발생하면 앞에서 설명한 포트를 사용하도록 설정해야 할 수 있습니다. 자세한 내용은 ADO.NET 4.5용 1433 이상의 포트를 참조하세요.

    연결 정책을 업데이트하고 다음 두 명령을 사용하여 업데이트를 확인합니다.

    # update policy
    az sql server conn-policy update --connection-type Redirect
    # confirm update
    az sql server conn-policy show
    
  5. Redirect 정책에서 네트워크 대기 시간을 테스트하려면 로컬 디바이스에서 SSMS를 사용하여 연결합니다. 다음 텍스트를 사용하여 새 쿼리를 만들고 결과에서 클라이언트 통계 포함을 선택합니다. 서버 응답에 대한 대기 시간Proxy에 대한 쿼리와 비교합니다.

    -- Redirect
    SELECT * FROM SalesLT.Product
    GO 10
    

    10회 평가한 후에 서버 응답에 대한 평균 대기 시간은 25.8000 정도일 수 있으며, 해당 값은 프록시 연결 정책에 지정된 평균 대기 시간의 절반 정도에 불과합니다. 정확한 시간은 연결 상태에 따라 다릅니다. 이전 프록시 테스트에 비해 시간이 크게 단축됩니다.

  6. 다음 연습을 위해 다음 명령을 사용하여 정책을 기본값으로 다시 설정합니다.

    # update policy
    az sql server conn-policy update --connection-type Default
    # confirm update
    az sql server conn-policy show
    

초기 연결 후에 게이트웨이를 우회하고 데이터베이스로 바로 이동할 수 있으므로 리디렉션이 더 빨라집니다. 이러한 우회로 인해 홉 수가 감소되어 대기 시간이 짧아집니다. 대기 시간이 짧아지면 병목 현상을 방지하는 데 도움이 됩니다. 이는 사용량이 많은 애플리케이션에 특히 중요합니다. 성능 모듈에서는 성능을 개선하여 최적화하는 방법을 자세히 알아봅니다.