Application Insights Profiler 및 스냅샷 디버거에 대한 BYOS 구성

Application Insights Profiler 또는 스냅샷 디버거를 사용하는 경우 애플리케이션에서 생성된 아티팩트는 기본적으로 공용 인터넷을 통해 Azure Storage 계정에 업로드됩니다. 이러한 아티팩트 및 스토리지 계정의 경우 Microsoft는 다음에 대한 비용을 제어하고 부담합니다.

  • 처리 및 분석
  • 미사용 암호화 및 수명 관리 정책

한편 자체 스토리지 계정(BYOS)을 구성하면 사용자만 다음 비용을 제어하고 부담하는 스토리지 계정에 아티팩트가 업로드됩니다.

  • 미사용 암호화 정책 및 수명 관리 정책
  • 네트워크 액세스.

참고 항목

Azure Private Link 또는 고객 관리형 키를 사용하도록 설정하는 경우 BYOS가 필요합니다.

이 가이드에서는 다음 작업 방법을 배웁니다.

  • 스토리지 계정에 대한 진단 서비스 액세스 권한을 부여합니다.
  • 스토리지 계정을 Application Insights 리소스와 연결합니다.
  • 스토리지 계정에 액세스하는 방법을 알아봅니다.

필수 조건

  • Application Insights 리소스와 동일한 위치에 스토리지 계정을 만들었는지 확인합니다.
  • Private Link를 사용하도록 설정한 경우 가상 네트워크에서 신뢰할 수 있는 Microsoft 서비스에 대한 연결을 허용합니다.

스토리지 계정에 진단 서비스 액세스 권한 부여

BYOS 스토리지 계정은 Application Insights 리소스에 연결됩니다. 먼저 스토리지 계정의 액세스 제어(IAM) 페이지를 통해 Diagnostic Services Trusted Storage Access라는 Microsoft Entra 애플리케이션에 Storage Blob Data Contributor 역할을 부여합니다.

  1. 액세스 제어(IAM) 를 선택합니다.

  2. 추가>역할 할당 추가를 선택하여 역할 할당 추가 페이지를 엽니다.

  3. 다음 역할을 할당합니다.

    설정
    역할 Storage Blob 데이터 Contributor
    다음에 대한 액세스 할당 사용자, 그룹 또는 서비스 주체
    멤버 Diagnostic Services Trusted Storage Access

    Screenshot that shows the Add role assignment page in the Azure portal.

    할당되면 역할 할당 섹션에서 역할을 볼 수 있습니다. Screenshot that shows the IAM screen after Role assignments.

참고 항목

Private Link도 사용하는 경우 가상 네트워크에서 신뢰할 수 있는 Microsoft 서비스에 대한 연결을 허용하려면 하나 이상의 구성이 필요합니다. 자세한 내용은 스토리지 네트워크 보안 설명서를 참조하세요.

프로파일러 및 스냅샷 디버거와 같은 코드 수준 진단을 위해 BYOS를 구성하는 세 가지 옵션이 있습니다.

  • Azure PowerShell cmdlet
  • Azure CLI
  • Azure Resource Manager 템플릿

시작하기 전에 Azure PowerShell 4.2.0 이상을 설치합니다.

  1. Application Insights PowerShell 확장을 설치합니다.

    Install-Module -Name Az.ApplicationInsights -Force
    
  2. Azure 계정 구독으로 로그인합니다.

    Connect-AzAccount -Subscription "{subscription_id}"
    

    로그인하는 방법에 대한 자세한 내용은 Connect-AzAccount 설명서를 참조하세요.

  3. Application Insights 리소스에 연결된 이전 스토리지 계정을 제거합니다.

    패턴:

    Get-AzApplicationInsights -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}" | Remove-AzApplicationInsightsLinkedStorageAccount
    

    예시:

    Get-AzApplicationInsights -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai" | Remove-AzApplicationInsightsLinkedStorageAccount
    
  4. 스토리지 계정을 Application Insights 리소스에 연결합니다.

    패턴:

    $storageAccount = Get-AzStorageAccount -ResourceGroupName "{resource_group_name}" -Name "{storage_account_name}"
    Get-AzApplicationInsights -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}" | New-AzApplicationInsightsLinkedStorageAccount -LinkedStorageAccountResourceId $storageAccount.Id
    

    예시:

    $storageAccount = Get-AzStorageAccount -ResourceGroupName "byos-test" -Name "byosteststoragewestus2"
    Get-AzApplicationInsights -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai" | New-AzApplicationInsightsLinkedStorageAccount -LinkedStorageAccountResourceId $storageAccount.Id
    

문제 해결

이 섹션에서는 BYOS 구성의 일반적인 문제에 대한 문제 해결 팁을 제공합니다.

시나리오: 템플릿 스키마 '{schema_uri}'는 지원되지 않습니다.

다음 예제와 유사한 오류가 발생했습니다.

New-AzResourceGroupDeployment : 11:53:49 AM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'Template schema
'https://schema.management.azure.com/schemas/2020-01-01/deploymentTemplate.json#' is not supported. Supported versions are
'2014-04-01-preview,2015-01-01,2018-05-01,2019-04-01,2019-08-01'. Please see https://aka.ms/arm-template for usage details.'.

해결 방법

  • 템플릿의 $schema 속성이 유효한지 확인합니다. 다음 패턴을 따라야 합니다.

    https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#
    
  • 템플릿의 schema_version이 유효한 값 범위에 있는지 확인합니다. 2014-04-01-preview, 2015-01-01, 2018-05-01, 2019-04-01, 2019-08-01.

시나리오: 위치 '{location}'에 등록된 리소스 공급자를 찾을 수 없음

다음 예제와 유사한 오류가 발생했습니다.

New-AzResourceGroupDeployment : 6:18:03 PM - Resource microsoft.insights/components 'byos-test-westus2-ai' failed with message '{
  "error": {
    "code": "NoRegisteredProviderFound",
    "message": "No registered resource provider found for location 'westus2' and API version '2020-03-01-preview' for type 'components'. The supported api-versions are '2014-04-01,
2014-08-01, 2014-12-01-preview, 2015-05-01, 2018-05-01-preview'. The supported locations are ', eastus, southcentralus, northeurope, westeurope, southeastasia, westus2, uksouth,
canadacentral, centralindia, japaneast, australiaeast, koreacentral, francecentral, centralus, eastus2, eastasia, westus, southafricanorth, northcentralus, brazilsouth, switzerlandnorth,
australiasoutheast'."
  }
}'

해결 방법

  • 리소스 microsoft.insights/componentsapiVersion2015-05-01인지 확인합니다.
  • 리소스 linkedStorageAccountapiVersion2020-03-01-preview인지 확인합니다.

시나리오: 스토리지 계정 위치는 Application Insights 구성 요소 위치와 일치해야 함

다음 예제와 유사한 오류가 발생했습니다.

New-AzResourceGroupDeployment : 1:01:12 PM - Resource microsoft.insights/components/linkedStorageAccounts 'byos-test-centralus-ai/serviceprofiler' failed with message '{
  "error": {
    "code": "BadRequest",
    "message": "Storage account location should match AI component location",
    "innererror": {
      "trace": [
        "System.ArgumentException"
      ]
    }
  }
}'

솔루션

Application Insights 리소스의 위치가 스토리지 계정과 동일한지 확인합니다.

자주 묻는 질문

이 섹션에서는 프로파일러 및 스냅샷 디버거용 BYOS 구성에 대한 일반적인 질문에 대한 답변을 제공합니다.

Profiler/스냅샷 디버거 및 BYOS를 사용하도록 설정한 경우 내 데이터가 내 스토리지 계정으로 마이그레이션되나요?

아니요, 그렇지 않습니다.

BYOS가 미사용 데이터 암호화와 고객 관리형 키에서 작동하나요?

예. 정확하게 말하면 BYOS는 Profiler/스냅샷 디버거를 고객-관리자 키로 사용하도록 설정해야 합니다.

BYOS는 인터넷과 격리된 환경에서 작동하나요?

예. BYOS는 격리된 네트워크 시나리오에 대한 요구 사항입니다.

예, 전송할 수 있습니다.

BYOS를 사용하도록 설정한 경우 Diagnostic Services 스토리지 계정을 사용하여 수집된 데이터를 저장할 수 있나요?

예, 가능합니다. 그러나 현재 BYOS로부터의 데이터 마이그레이션은 지원하지 않습니다.

예.

스토리지 계정에 액세스하는 방법은 무엇인가요?

  1. 가상 머신 또는 Azure App Service에서 실행되는 에이전트는 아티팩트(프로필, 스냅샷 및 기호)를 계정의 Blob 컨테이너에 업로드합니다.

    이 프로세스에는 프로파일러 또는 스냅샷 디버거에 연결하여 스토리지 계정의 새 Blob에 대한 공유 액세스 서명 토큰을 가져오는 작업이 포함됩니다.

  2. 프로파일러 또는 스냅샷 디버거:

    • 들어오는 Blob을 분석합니다.
    • 분석 결과와 로그 파일을 Blob 스토리지에 다시 씁니다.

    사용 가능한 컴퓨팅 용량에 따라 업로드 후 언제든지 이 프로세스가 발생할 수 있습니다.

  3. Profiler 추적 또는 스냅샷 디버거 분석을 볼 때 서비스에서 Blob 스토리지로부터 분석 결과를 가져옵니다.

다음 단계