다음을 통해 공유


Azure App Service의 관리되는 인스턴스 구성(미리 보기)

Azure App Service의 관리되는 인스턴스(미리 보기)는 OS(운영 체제) 사용자 지정, 선택적 프라이빗 네트워킹 및 Azure 리소스와의 보안 통합이 필요한 Windows 웹앱에 대한 계획 범위 호스팅 옵션입니다. 이 문서에서는 주요 영역에서 Managed Instance를 구성하는 방법을 설명합니다.

  • 관리형 아이덴티티
  • 구성(설치) 스크립트
  • 스토리지 마운트
  • 레지스트리 키
  • RDP(원격 데스크톱 프로토콜) 액세스

중요합니다

Managed Instance는 미리 보기로 제공되며, 일부 지역의 Windows 웹앱에 사용할 수 있으며, Pv4 및 Pmv4 가격 책정 계획으로 제한됩니다. 따라야 할 지역이 더 있습니다. Linux 및 컨테이너는 지원되지 않습니다.

관리 ID 추가(App Service 요금제에)

계획 수준 관리 ID를 사용하면 시작 중에 Azure Storage에 액세스하는 구성(설치) 스크립트, Key Vault에서 비밀을 가져오는 레지스트리 어댑터, Azure Files에 인증하는 스토리지 탑재 등 플랫폼 계층에서 발생하는 인프라 작업에 대한 인증을 사용할 수 있습니다. 이러한 구성 요소는 계획의 여러 앱에서 사용하는 공유 리소스입니다. 예를 들어 계획 수준 ID를 사용하면 Managed Instance가 인프라 구성 요소에 대해 한 번 인증하는 반면 개별 앱은 데이터베이스 및 애플리케이션 비밀과 같은 앱별 리소스에 대한 자체 ID를 유지 관리할 수 있습니다.

App Service 요금제에 대한 관리 ID는 다음 시나리오에서 필요합니다.

  • Azure Storage에서 구성 스크립트에 안전하게 액세스하고 검색합니다.
  • Key Vault에 액세스하여 스토리지 탑재 및 레지스트리 키 어댑터에 대한 자격 증명 및 값을 제공합니다.

관리 ID를 만들려면 사용자 할당 관리 ID 관리를 참조하세요.

Managed Instance 계획에 관리 ID를 추가하려면 다음을 수행합니다.

  1. Azure Portal에서 Managed Instance로 이동합니다.
  2. 할당된>ID 사용자를 선택합니다.
  3. 을 선택하고을 추가합니다.
  4. 구독관리 ID를 선택합니다.
  5. 추가를 선택하여 계획에 ID를 추가합니다.

구성(설치) 스크립트 추가

구성(설치) 스크립트는 인스턴스 시작 시 실행되어 영구 사용자 지정을 적용합니다. 예를 들어 COM(구성 요소 개체 모델) 등록, MSI(Microsoft/Windows 설치 프로그램) 설치, IIS 서버(인터넷 정보 서비스) 구성, ACL 변경, Windows 기능 사용, 환경 변수 설정 등이 있습니다.

구성(설치) 스크립트를 사용하려면 다음이 필요합니다.

  • App Service 요금제에 할당된 관리 ID
  • 구성(설치) 스크립트 패키지(zip)를 보유하는 Blob 컨테이너가 있는 스토리지 계정입니다.
  • 루트에 Install.ps1(이)가 포함된 단일 zip 파일(진입점)
  • 스토리지 계정, 컨테이너 또는 리소스 그룹의 Storage Blob Data Reader 역할

구성 스크립트를 추가하려면 다음을 수행합니다.

  1. Azure Portal에서 Managed Instance App Service 요금제로 이동합니다.

  2. 구성>일반 설정을 선택합니다.

  3. 구성 스크립트 섹션에서 먼저 스크립트를 구성합니다.

    Setting 가치
    스토리지 계정 사용자의 스토리지 계정을 선택합니다.
    컨테이너 컨테이너 이름 입력
    Zip 파일 Zip 파일 이름 입력
    가치 이 값이 올바른지 확인
  4. 적용을 선택하여 변경 내용을 저장합니다.

구성 스크립트 모범 사례

  • 스크립트를 idempotent로 만듭니다(설치하기 전에 확인).
  • 파괴적인 작업을 보호합니다(보호된 Windows 시스템 디렉터리를 수정하지 마세요).
  • 시작 대기 시간을 줄이기 위해 대규모 설치에 시간 간격을 둡니다.

최소 zip 구조 예제:

Install.ps1
myInstallerfileNameGoesHere.msi
config.xml

구성 스크립트 예제:

# Install Components, for example Crystal Reports, Control Library, Database Driver
$ComponentInstaller = "myInstallerFileNameGoesHere.msi"
try {
    $Component = Join-Path $PSScriptRoot $ComponentInstaller
    Start-Process $Component -ArgumentList "/q" -Wait -ErrorAction Stop
} catch {
    Write-Error "Failed to install ${ComponentInstaller}: $_"
    exit 1
}

스토리지 탑재 구성

스토리지 탑재는 앱에 액세스할 수 있는 영구 외부 스토리지(예: Azure Files)를 제공합니다. 비밀이 아닌 공유 파일 시스템 액세스가 필요한 레거시 코드에 사용합니다(Key Vault 사용). 로컬(임시) 스토리지도 사용할 수 있지만 영구 변경에는 스토리지 탑재가 필요합니다.

스토리지 탑재를 구성하려면 다음이 필요합니다.

  • 관리 ID(Key Vault 액세스의 경우)
  • Key Vault 비밀(자격 증명 원본)

스토리지 탑재를 구성하려면 다음을 수행합니다.

  1. Azure Portal에서 Managed Instance로 이동합니다.
  2. 구성>탑재를 선택합니다.
  3. + 새 스토리지 탑재를 선택합니다.

스토리지 탑재를 구성하려면 다음 세부 정보를 제공합니다.

Setting 가치
이름 탑재 이름 입력
스토리지 유형 Azure 파일, 사용자 지정 또는 로컬(임시 스토리지)
스토리지 계정 스토리지 계정 선택 또는 입력
파일 공유 파일 공유 선택
가치 키 자격 증명 모음 선택
Secret 키 자격 증명 모음 비밀 선택
탑재 드라이브 문자 드라이브 문자 경로 선택

Managed Instance에 외부 스토리지를 탑재할 수 있습니다. 탑재된 스토리지는 다시 시작 시 지속되며 앱의 파일 시스템에서 액세스할 수 있습니다.

Azure Files를 사용하여 스토리지 탑재 구성

Azure Files 스토리지 탑재를 구성하려면 다음을 수행합니다.

  1. Azure Storage 계정 및 Azure Files 공유를 만듭니다.
  2. Key Vault에 연결 자격 증명을 비밀로 저장합니다. 지원되는 비밀 콘텐츠: (예: DefaultEndpointsProtocol=...;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net)
  3. Managed Instance(Azure Portal 또는 ARM/Bicep/Terraform)에 탑재를 추가합니다.

팁 (조언)

강화된 보안을 위해 Azure RBAC + 공유 ACL을 통해 공유 수준 권한을 적용합니다.

사용자 지정 UNC를 사용하여 스토리지 탑재 구성

다른 곳에서 호스트되는 SMB 공유(온-프레미스, VM, 또는 비 Microsoft)에 마운트를 사용합니다. 네트워크 연결(가상 네트워크 통합/프라이빗 엔드포인트/방화벽)을 확인합니다.

  1. 자격 증명이 필요한 경우 Key Vault 비밀에 다음 형식으로 저장합니다. username=<user>,password=<password>
    • 도메인 관리자 계정을 사용하지 않습니다. 최소 권한 서비스 ID를 사용합니다.
  2. Managed Instance에 탑재를 추가합니다.

레지스트리 키 구성

일부 애플리케이션은 Windows 레지스트리에서 읽은 값에 따라 달라집니다. 레지스트리 키 어댑터를 사용하면 레지스트리 키를 만들고 Azure Key Vault의 비밀을 값으로 사용할 수 있습니다.

레지스트리 키를 구성하려면 다음이 필요합니다.

  • 관리 ID(Key Vault 액세스의 경우)
  • Key Vault 비밀(자격 증명 원본)

레지스트리 키를 구성하려면 다음을 수행합니다.

  1. 구성>레지스트리 키로 이동합니다.

  2. 을 선택하고을 추가합니다.

    Setting 가치
    경로 레지스트리 경로 입력
    Vault 기존 자격 증명 모음 이름 입력
    Secret 키 자격 증명 모음 비밀 선택 또는 입력
    유형 문자열 또는 DWORD
  3. 추가를 선택하여 레지스트리 키를 추가합니다.

주의

시스템에 중요한 레지스트리 경로를 수정할 때는 주의해야 합니다. 잘못된 변경은 인스턴스 안정성에 영향을 줄 수 있습니다.

RDP(Bastion) 액세스 구성

빠른 시작: Azure Bastion을 자동으로 배포 하면 RDP(원격 데스크톱 프로토콜)를 통해 VM 인스턴스에 안전하게 연결할 수 있습니다. Azure Bastion을 통한 RDP는 일시적인 진단(로그 검사, 빠른 유효성 검사)을 위한 것입니다. 포털을 통해 Bastion을 사용하려는 경우 Bastion 리소스를 표준 가격 책정 계층으로 업그레이드하고 네이티브 클라이언트 지원 및 IP 기반 연결을 선택합니다.

Bastion/RDP 액세스를 위해 다음 리소스가 필요합니다.

  • Managed Instance는 가상 네트워크에 통합되어야 합니다.
  • 대상 가상 네트워크의 Azure Bastion 호스트
  • 포트 3389은 Bastion 서브넷 NSG에서 App Service 요금제 서브넷 NSG로 허용되어야 합니다.

Bastion을 구성하려면 다음을 수행합니다.

  1. 구성>Bastion/RDP로 이동합니다.
  2. Virtual Network가 연결되어 있는지 확인합니다.
  3. (Bastion을 통해) 원격 데스크톱 허용을 선택합니다.

주의

RDP를 통해서만 수동 설치 관리자 또는 구성 변경 내용을 적용하지 마세요. 재활용 또는 구성 드리프트를 만들 때 변경 내용이 손실됩니다.

FAQ(질문과 대답)

Azure App Service의 관리되는 인스턴스에서 실행 중인 OS(운영 체제)는 무엇인가요?

Windows Server 2022.

더 많은 Windows 역할 및 기능을 사용하도록 설정할 수 있나요?

예, 구성 스크립트를 통해 할 수 있니다. 그러나 이후 Windows Server 릴리스에서 제거된 기능은 Managed Instance에서 사용할 수 없습니다.

Azure App Service의 관리되는 인스턴스는 일반 플랫폼 및 애플리케이션 스택 업데이트를 받나요?

예, 인스턴스는 일상적인 플랫폼 업데이트 및 유지 관리를 받습니다. 사전 설치된 애플리케이션 스택도 정기적으로 업데이트됩니다. 구성(설치) 스크립트를 통해 설치된 구성 요소를 유지 관리해야 합니다.

Azure App Service의 관리되는 인스턴스에 설치된 프로그래밍 언어는 무엇인가요?

Microsoft .NET Framework 3.5, 4.8 및 Microsoft .NET 8.0입니다. 다른 런타임이 필요한 경우 구성 스크립트를 사용하여 설치할 수 있습니다. 플랫폼에 의해 유지 관리되지 않으며 수동으로 업데이트해야 합니다.

구성(설치) 스크립트의 제한 사항은 무엇인가요?

구성(설치) 스크립트는 종속성을 설치하고, 역할 및 기능을 사용하도록 설정하고, 운영 체제를 사용자 지정할 수 있습니다. 그러나 파괴적인 작업(예: Windows\System32 삭제)은 지원되지 않으며 인스턴스 불안정을 초래할 수 있습니다.

어떤 권한 수준에서 구성(설치) 스크립트가 실행되나요?

구성(설치) 스크립트는 시스템 수준 구성 요소의 설치 및 구성을 허용하도록 관리자 권한으로 실행됩니다.

Bastion을 사용하여 인스턴스에 연결할 때 운영자는 어떤 역할 권한을 가지나요?

Bastion을 통해 연결하는 운영자는 세션 중에 관리자 권한을 갖습니다.

내 구성(설치) 스크립트 또는 레지스트리/스토리지 어댑터를 사용하여 오류를 해결하려면 어떻게 해야 하나요?

문제를 해결하려면 구성(설치) 스크립트에 대한 로그를 검토합니다. 웹앱이 아닌 인스턴스의 C:\InstallScripts\Script\Install.log에서 찾을 수 있습니다. 또는 App Service 콘솔 로그를 Azure Monitor 및 Log Analytics로 전송할 수 있습니다.

어댑터 로그는 컴퓨터의 루트에서 찾을 수 있습니다. 또는 App Service 플랫폼 로그에 기록됩니다.

Azure App Service의 관리되는 인스턴스 작업자 인스턴스에서 Managed Instance의 주소 지정 가능한 메모리는 무엇인가요?

Azure App Service의 관리되는 인스턴스 작업자 인스턴스에서 Managed Instance의 주소 지정 가능 메모리는 선택한 가격 책정 계획에 따라 달라집니다. 다음 표에서는 Azure App Service의 관리되는 인스턴스 작업자 인스턴스의 Managed Instance에 대한 주소 지정 가능 메모리를 나열합니다. 더 많은 구성 요소, 서비스 등을 설치하는 구성 스크립트가 있는지 고려하는 것이 중요합니다. 이러한 리소스는 웹앱에서 사용할 수 있는 메모리 양에 영향을 줍니다.

요금제 Cores 메모리(MB)
P0v4 1 2048
P1v4 2 5952
P2v4 4 13440
P3v4 8 28672
P1Mv4 2 13440
P2Mv4 4 28672
P3Mv4 8 60160
P4Mv4 16 121088
P5Mv4 32 246016

구성(설치) 스크립트를 업로드하는 데 사용해야 하는 Azure Storage 서비스는 무엇인가요?

스크립트 및 필수 종속성을 업로드하는 데 Azure Storage Blob 서비스를 사용합니다.

구성(설치) 스크립트의 이름 지정 및 형식에 제한이 있나요?

예, 스크립트의 이름을 Install.ps1(으)로 지정해야 합니다. PowerShell만 지원됩니다. 구성(설치) 스크립트 및 종속성을 단일 .zip 파일로 업로드해야 합니다.

zip 파일의 일부로 업로드할 수 있는 종속성에 대한 크기 제한이 있나요?

크기 제한이 적용되지 않습니다. 종속성의 전체 크기는 인스턴스 프로비전 시간에 영향을 줍니다.

App Service 요금제 어댑터에서 Managed Instance를 추가하거나 편집하면 계획 인스턴스가 다시 시작되나요?

예, Managed Instance 계획 어댑터(구성 스크립트/스토리지/레지스트리)를 추가하거나 편집하면 기본 인스턴스가 다시 시작되고 계획에 배포된 모든 웹앱에 영향을 줍니다. 인스턴스를 다시 시작하면 RDP 세션을 통해 변경된 모든 내용이 제거됩니다. 종속성 설치 또는 필요한 기타 구성 변경 내용을 유지하려면 항상 구성(설치) 스크립트를 사용하세요.

Managed Instance 계획에 여러 인스턴스가 있는 경우 단일 인스턴스를 다시 시작할 수 있나요?

예, Managed Instance로 이동하고 왼쪽 메뉴에서 인스턴스를 선택합니다. 그런 다음 인스턴스 이름 옆에 있는 다시 시작을 선택합니다.

App Service 요금제의 Managed Instance에 여러 웹 애플리케이션이 있는 데 단일 웹 애플리케이션을 다시 시작할 수 있나요?

예, 앱의 개요 페이지로 이동하여 다시 시작을 선택합니다.

App Service 요금제의 Managed Instance 내에서 내 웹 애플리케이션에 관리 ID를 할당할 수 있나요?

예, Managed Instance 내의 웹 애플리케이션에 다른 관리 ID를 할당할 수 있습니다. 관리 ID 지침 따르기

App Service 요금제에서 Managed Instance에 대해 만들 수 있는 어댑터 수에 제한이 있나요?

아니요, 스토리지 또는 레지스트리 어댑터 수에는 제한이 없습니다. App Service 요금제에서 Managed Instance에 대한 단일 구성(설치) 스크립트 어댑터만 만들 수 있습니다. 어댑터 수가 증가하면 Managed Instance의 프로비전 시간에 영향을 줄 수 있습니다.