Azure App Service의 관리형 인스턴스

Azure App Service의 Managed Instance는 운영체제(OS) 커스터마이징, 선택적 프라이비시 네트워킹, Azure 리소스와의 안전한 통합이 필요한 Windows 웹 앱을 위한 계획 범위 호스팅 옵션입니다. App Service의 관리되는 패치, 크기 조정, 진단 및 ID 기능을 유지하면서 레거시 또는 인프라 종속 워크로드(COM(구성 요소 개체 모델), 레지스트리, Microsoft/Windows Installer(MSI))를 대상으로 합니다.

중요합니다

Managed Instance는 일부 지역에서 Windows 웹 앱용으로 일반적으로 제공되며, Pv4 및 Pmv4 요금제로 제한됩니다. Microsoft는 시간이 지나면서 더 많은 지역을 추가할 예정입니다. Managed Instance는 리눅스와 컨테이너를 지원하지 않습니다.

GitHub Copilot 현대화를 통한 .NET 앱 마이그레이션

GitHub Copilot for .NET 현대화는 .NET 애플리케이션을 Azure에 평가, 복원, 검증, 배포하는 에이전트 워크플로우를 제공합니다. Visual Studio Code에서는 운영체제 수준의 맞춤화가 필요한 Windows 애플리케이션의 평가 및 배포 대상으로 Managed Instance를 사용할 수 있습니다.

Note

GitHub Copilot 현대화에서 Managed Instance 평가 및 배포 대상 경험은 일반적으로 Visual Studio Code에서 제공됩니다. Visual Studio에서 Managed Instance 타겟에 대한 지원은 Visual Studio Insiders에서 먼저 도입될 예정이며, 검증 후 운영 환경에서 제공될 예정입니다.

평가 대상 AppServiceManagedInstance.Windows 을 Managed Instance별 발견과 권고사항을 받도록 설정하세요. 그 후 현대화 에이전트를 사용하여 다음을 수행할 수 있습니다:

  1. 마이그레이션 준비도를 위해 애플리케이션 코드, 구성 및 의존성을 평가하세요.
  2. 추천 마이그레이션 작업을 검토하고 적용하세요.
  3. 빌드, 테스트, 그리고 수정된 의존성을 검증합니다.
  4. Azure 리소스를 준비하고 애플리케이션을 Managed Instance에 배포하세요.

시작하려면 GitHub Copilot 현대화를 이용한 .NET 프로젝트 평가 및 마이그레이션을 참고하세요. 대상 구성 및 배포 세부 사항은 '애플리케이션 평가 작업 및 프로젝트 배포 to Azure'를 참조하세요.

주요 기능

다음 표에서는 Managed Instance에서 제공하는 주요 기능을 요약합니다.

카테고리 Capability
네트워크 격리 계획 수준 가상 네트워크 통합(선택 사항, 생성 후 추가할 수 있음):
• 프라이빗 엔드포인트 및 사용자 지정 라우팅
• NSG(네트워크 보안 그룹) 지원, NAT 게이트웨이 및 경로 테이블
• 내부 이름 확인을 위한 DNS(Private Domain Name Server)
컴퓨팅 격리 • 네트워크 경계를 완전히 제어할 수 있는 계획에 특화된 격리
• 예측 가능한 성능을 위한 전용 컴퓨팅
사용자 지정 구성 요소 지원 PowerShell은 다음을 위한 스크립트를 설치합니다.
• COM 구성 요소
• 레지스트리 및 영구 레지스트리 값
• IIS 서버(인터넷 정보 서비스) 구성 및 ACL
• MSI 설치 프로그램
• 비 Microsoft 구성 요소 및 Windows 서비스
• GAC(전역 어셈블리 캐시) 설치
• Windows 기능(MSMQ 클라이언트, 서버 역할)
• 사용자 지정 프레임워크(고객 관리 패치)
레지스트리 어댑터 보안 구성을 위한 Azure Key Vault 지원 레지스트리 키
스토리지 유연성 • Key Vault 통합을 사용한 Azure Files
• UNC 경로 및 네트워크 공유 액세스
• 스크립트된 드라이브 매핑
• 로컬 임시 스토리지(2GB, 비영구)
관리형 아이덴티티 • 계획 수준에서 시스템 할당 및 사용자 할당 ID
• Azure 리소스에 대한 키 없는 인증
운영 효율성 플랫폼 관리 부하 분산, 패치 및 크기 조정:
• 가로 자동 크기 조정(모든 인스턴스)
• 수직 배율(Pv4/Pmv4만 해당)
원격 데스크톱 프로토콜 • Azure Bastion을 통한 Just-In-Time RDP(가상 네트워크 필요)
• 로그, 이벤트 뷰어 및 IIS 관리자에 대한 액세스
보안 및 인증 • 인증서 바인딩이 있는 TLS 및 사용자 지정 도메인
• Microsoft Entra ID를 사용한 App Service 인증
런타임 지원 • 사전 설치됨: .NET Framework 3.5, 4.8 및 .NET 8
• 설치 스크립트를 통한 사용자 지정 런타임
CI/CD 통합 GitHub Actions, Azure DevOps, zip 배포, 패키지 배포, 패키지에서 실행

구성 옵션

Managed Instance는 다음을 통해 계획 수준 구성을 제공합니다.

  • 구성(설치) 스크립트: 압축된 PowerShell 스크립트를 Azure Storage에 업로드합니다(관리 ID를 통해 액세스). 스크립트는 영구적 구성을 위해 시작 시 실행됩니다.

    • 스크립트는 선택 사항입니다. 앱이 의존성 설치나 운영체제 수준의 기능을 설정해야 할 때는 스크립트를 사용하세요.
    • RDP 세션 변경은 일시적이고 다시 시작 또는 플랫폼 유지 관리 후 손실됩니다.
    • 스크립트 실행 로그는 App Service 콘솔 로그에 표시되며 Azure Monitor로 스트리밍할 수 있습니다.
  • Windows 레지스트리 어댑터: Azure Key Vault에 저장된 비밀 값을 사용하여 계획 수준에서 레지스트리 키를 정의합니다.

  • 스토리지 탑재: Azure Files 또는 사용자 지정 UNC 경로와 함께 사용자 지정 드라이브 문자를 사용하여 스토리지를 매핑합니다. 로컬 스토리지도 사용할 수 있지만 2GB로 제한되며 다시 시작한 후에도 유지되지 않습니다.

  • RDP 액세스: Azure Bastion을 통한 Just-In-Time 원격 데스크톱(가상 네트워크 통합 필요).

로깅 및 문제 해결

  • Managed Instance에 대한 로그는 앱 수준이 아닌 App Service 계획 수준에서 만들어집니다.
  • 스토리지 탑재 및 레지스트리 어댑터 이벤트는 App Service 플랫폼 로그에서 캡처됩니다. 이러한 로그는 Logstream을 통해 스트리밍하거나 Azure Monitor와 통합할 수 있습니다.
  • 구성(설치) 스크립트 로그는 App Service 콘솔 로그 및 인스턴스에서 사용할 수 있습니다(예: C:\InstallScripts<scriptName>\Install.log). 중앙 집중식 액세스를 위해 Logstream 또는 Azure Monitor를 사용합니다.
  • RDP 액세스에는 Azure Bastion 및 가상 네트워크 통합이 필요합니다. IIS 관리자 및 이벤트 뷰어는 진단에 권장됩니다.

올바른 호스팅 옵션 선택

필요한 경우 Managed Instance를 사용합니다.

레거시 Windows 호환성

  • COM 구성 요소, 레지스트리 수정 및 MSI 설치 관리자
  • 진단용 IIS 관리자 액세스 및 RDP
  • UNC 경로 또는 드라이브 매핑을 통한 네트워크 공유

최소한의 리팩터링을 사용하여 마이그레이션

  • 레거시 .NET Framework 앱의 업그레이드 및 개선
  • 완전한 재작성 없이 점진적 현대화
  • 규정 준수 요구 사항에 대한 계획 수준 네트워크 격리

Windows 관련 사용자 지정

  • 시작 구성을 위한 PowerShell 설치 스크립트
  • MSMQ 또는 서버 역할과 같은 Windows 기능
  • GAC에서 Microsoft가 아닌 사용자 지정 구성 요소

필요한 경우 표준 App Service를 사용합니다.

최신 클라우드 네이티브 개발

  • 다중 언어 앱 지원(Python, Node.js, Java, PHP 등)
  • Linux 또는 컨테이너화된 워크로드
  • OS 사용자 지정이 없는 플랫폼 관리형 인프라
  • 더 광범위한 런타임 및 프레임워크 옵션

필요한 경우 ASE(App Service Environment)를 사용합니다.

기업 규모 격리

  • 완전히 격리된 전용 인프라
  • 100개 이상의 애플리케이션을 지원하는 배포
  • 전체 네트워크 경계 제어

현재 제한 사항

Limitation 세부 정보
플랫폼 • Windows 전용(Linux/컨테이너 없음)
• ASE에서 사용할 수 없음
SKU Pv4 및 Pmv4만
Regions 동아시아, 미국 중서부, 북유럽, 미국 동부, 오스트레일리아 동부, 인도 중부, 인도 남부
인증 Entra ID 및 관리 ID만(도메인 가입/NTLM/Kerberos 없음)
작업량 웹앱만(WebJobs, TCP/NetPipes 없음)
Configuration 영구적 변경에는 스크립트가 필요합니다(RDP는 진단 전용).

모범 사례

  • 영구 구성에 구성 스크립트(설치 스크립트)를 사용합니다.
  • Key Vault를 사용하여 비밀을 중앙 집중화합니다.
  • 스테이징 환경에서 로그 설정을 검증하세요.
  • 프로덕션 출시 전에 스테이징에서 구성(설치) 스크립트를 테스트합니다.
  • 종속성 인벤토리에 네트워크 규칙을 정렬합니다.
  • 클라우드용 Microsoft Defender를 사용하여 위협 탐지를 모니터링합니다.

다음 단계