.NET 웹 앱 또는 서비스를 Azure App Service로 마이그레이션
App Service는 확장 가능한 웹 사이트와 웹 애플리케이션 호스팅을 위해 최적화된 완전 관리형 컴퓨팅 플랫폼 서비스입니다. 이 문서에서는 기존 애플리케이션을 Azure App Service로 리프트 앤드 시프트하는 방법, 고려할 수정 사항 및 클라우드로 이동하기 위한 추가 리소스에 대한 정보를 제공합니다. 대부분의 ASP.NET 웹 사이트(Webforms, MVC) 및 서비스(웹 API, WCF)는 변경 없이 Azure App Service로 직접 이동할 수 있습니다. 일부는 약간의 변경이 필요할 수도 있고 일부는 리팩터링이 필요할 수도 있습니다.
시작할 준비가 되셨나요? ASP.NET + SQL 애플리케이션을 Azure App Service에 게시합니다.
고려 사항
온-프레미스 리소스(SQL Server 포함)
마이그레이션하거나 변경해야 할 수 있으므로 온-프레미스 리소스에 대한 액세스를 확인합니다. 온-프레미스 리소스에 대한 액세스를 완화하기 위한 옵션은 다음과 같습니다.
- Azure Virtual Network를 사용하여 App Service를 온-프레미스 리소스에 연결할 VPN을 만듭니다.
- Azure Relay를 사용하여 방화벽 변경 없이 온-프레미스 서비스를 클라우드에 안전하게 노출합니다.
- SQL 데이터베이스와 같은 종속성을 Azure로 마이그레이션합니다.
- 클라우드의 Platform-as-a-Service 기능을 사용하여 종속성을 줄입니다. 예를 들어, 온-프레미스 메일 서버에 연결하는 것보다 SendGrid 사용을 고려해 봅니다.
포트 바인딩
Azure App Service는 HTTP 트래픽에는 포트 80, HTTPS 트래픽에는 포트 443을 지원합니다.
WCF의 경우 다음 바인딩이 지원됩니다.
바인딩 | 주의 |
---|---|
BasicHttp |
|
WSHttp |
|
WSDualHttpBinding |
웹 소켓 지원을 사용하도록 설정해야 합니다. |
NetHttpBinding |
웹 소켓 지원이 콜백 계약에 대해 활성화되어야 합니다. |
NetHttpsBinding |
웹 소켓 지원이 콜백 계약에 대해 활성화되어야 합니다. |
BasicHttpContextBinding |
|
WebHttpBinding |
|
WSHttpContextBinding |
인증
Azure App Service는 기본적으로 익명 인증을 지원하고 의도한 경우 양식 인증을 지원합니다. Windows 인증은 Azure Active Directory 및 ADFS와 통합해야만 사용할 수 있습니다. 온-프레미스 디렉터리를 Azure Active Directory와 통합하는 방법에 대해 자세히 알아봅니다.
GAC(전역 어셈블리 캐시)의 어셈블리
지원되지 않습니다. 필요한 어셈블리를 앱의 \bin 폴더에 복사하는 것이 좋습니다. 서버에 설치된 사용자 지정 .msi 파일(예: PDF 생성기)은 사용할 수 없습니다.
IIS 설정
애플리케이션에서 전통적으로 applicationHost.config를 통해 구성한 모든 항목을 이제 Azure Portal을 통해 구성할 수 있습니다. 이는 AppPool 비트 수, WebSockets 활성화/비활성화, 관리형 파이프라인 버전, .NET Framework 버전(2.0/4.0) 등에 적용됩니다. 애플리케이션 설정을 수정하려면 Azure Portal로 이동하여 웹앱용 블레이드를 연 다음 애플리케이션 설정 탭을 선택합니다.
IIS5 호환 모드
IIS5 호환 모드는 지원되지 않습니다. Azure App Service에서 각 웹앱과 그 아래의 모든 애플리케이션은 특정 애플리케이션 풀 세트로 동일한 작업자 프로세스에서 실행됩니다.
IIS7+ 스키마 준수
Azure App Service IIS 스키마의 일부 요소와 특성이 정의되지 있지 않습니다. 문제가 발생하는 경우 XDT 변환 사용을 고려합니다.
사이트당 하나의 애플리케이션 풀
Azure App Service에서 각 웹앱과 그 아래의 모든 애플리케이션은 동일한 애플리케이션 풀에서 실행됩니다. 일반적인 설정을 사용하여 단일 애플리케이션 풀을 설정하거나 각 애플리케이션에 대한 별도의 웹앱을 만드는 것이 좋습니다.
COM 및 COM+ 구성 요소
Azure App Service에서는 플랫폼에 COM 구성 요소를 등록할 수 없습니다. 앱이 COM 구성 요소를 사용하는 경우, 관리 코드로 다시 작성하고 사이트 또는 애플리케이션을 사용하여 배포합니다.
실제 디렉터리
Azure App Service는 물리적 드라이브 액세스를 허용하지 않습니다. SMB를 통해 파일에 액세스하려면 Azure Files를 사용해야 할 수 있습니다. Azure Blob Storage는 HTTPS를 통해 액세스할 파일을 저장할 수 있습니다.
ISAPI 필터
Azure App Service는 ISAPI 필터 사용을 지원할 수 있지만 ISAPI DLL은 사이트와 함께 배포되고 web.config를 통해 등록되어야 합니다.
HTTPS 바인딩 및 SSL
HTTPS 바인딩은 마이그레이션되지 않으며, 웹 사이트와 연결된 SSL 인증서도 마이그레이션되지 않습니다. 그러나 사이트 마이그레이션이 완료된 후에는 SSL 인증서를 수동으로 업로드할 수 있습니다.
SharePoint 및 FrontPage
SharePoint 및 FrontPage Server Extensions(FPSE)는 지원되지 않습니다.
웹 사이트 크기
무료 사이트의 콘텐츠 크기 제한은 1GB입니다. 사이트가 1GB보다 큰 경우 유료 SKU로 업그레이드해야 합니다. App Service 가격 책정을 참조하세요.
데이터베이스 크기
SQL Server 데이터베이스의 경우 현재 SQL Database 가격 책정을 확인하세요.
AAD(Azure Active Directory) 통합
AAD는 무료 앱으로 작동하지 않습니다. AAD를 사용하려면 앱 SKU를 업그레이드해야 합니다. App Service 가격 책정을 참조하세요.
모니터링 및 진단
모니터링 및 진단을 위한 현재 온-프레미스 솔루션은 클라우드에서 작동하지 않을 가능성이 높습니다. 그러나 Azure는 웹앱 문제를 식별하고 디버깅할 수 있도록 로깅, 모니터링 및 진단 도구를 제공합니다. 구성에서 웹앱에 대한 진단을 쉽게 사용하도록 설정할 수 있으며 Azure Application Insights에 기록된 로그를 볼 수 있습니다. 웹앱에 대한 진단 로깅 사용에 대해 자세히 알아봅니다.
연결 문자열 및 애플리케이션 설정
애플리케이션에 사용되는 중요한 정보를 안전하게 저장하는 서비스인 Azure KeyVault를 사용해 보세요. 또는 이 데이터를 App Service 설정으로 저장할 수 있습니다.
DNS
애플리케이션의 요구 사항에 따라 DNS 구성을 업데이트해야 할 수도 있습니다. 이러한 DNS 설정은 App Service 사용자 지정 도메인 설정에서 구성할 수 있습니다.
Windows 컨테이너가 포함된 Azure App Service
앱을 App Service로 직접 마이그레이션할 수 없는 경우 GAC, COM 구성 요소, MSI, .NET FX API에 대한 모든 권한, DirectX 등에 대한 사용을 가능하게 하는 Windows 컨테이너를 사용하는 App Service를 고려합니다.
참고 항목
.NET