Azure App Service의 Managed Instance(미리 보기)는 운영 체제(OS) 사용자 지정, 선택적 프라이빗 네트워킹 및 Azure 리소스와의 보안 통합이 필요한 Windows 웹앱에 대한 계획 범위 호스팅 옵션입니다. App Service의 관리되는 패치, 크기 조정, 진단 및 ID 기능을 유지하면서 레거시 또는 인프라 종속 워크로드(COM(구성 요소 개체 모델), 레지스트리, Microsoft/Windows Installer(MSI))를 대상으로 합니다.
중요합니다
Managed Instance는 미리 보기로 제공되며, 일부 지역의 Windows 웹앱에 사용할 수 있으며, Pv4 및 Pmv4 가격 책정 계획으로 제한됩니다. 따라야 할 지역이 더 있습니다. Linux 및 컨테이너는 지원되지 않습니다.
주요 기능
다음 표에서는 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 for Cloud를 사용하여 위협 탐지를 모니터링합니다.