Azure App Service Migration Assistant를 사용하여 웹앱 평가

완료됨

이 단원에서는 자체 서버에서 온-프레미스로 호스팅된 웹 애플리케이션을 상위 수준에서 마이그레이션할 때 발생할 수 있는 잠재적인 문제를 검토합니다. 웹 애플리케이션이 IIS(인터넷 정보 서비스)의 기능에 대해 갖는 종속성의 종류와 이로 인해 문제가 발생하는 이유를 설명합니다. 이 중요한 배경 정보는 평가의 필요성을 보다 잘 이해하는 데 필요할 수 있는 컨텍스트를 제공합니다.

웹 애플리케이션을 Azure App Service로 이동하는 이유

Azure App Service는 웹앱을 위한 완전 관리형 플랫폼입니다. 최소한의 설정으로 웹앱을 실행하고 크기를 조정하는 데 사용할 수 있습니다. Microsoft는 필요에 따라 인프라, 운영 체제 업데이트, 부하 분산 및 규모 확장/규모 축소 논리를 관리합니다.

사용자는 간소화된 사용자 인터페이스에서 설정을 구성하고 애플리케이션이 실행되는 동안 성능을 살펴볼 수 있지만 그 외에는 사용자가 수행해야 할 작업이 거의 없습니다. 따라서 사용자의 서버 환경에서 애플리케이션을 실행하는 대신, Azure App Service를 유용하게 사용할 수 있습니다. 자체 서버 환경에서 하드웨어 비용, 설치, 운영 체제 설치, 업데이트 및 구성, 서버 소프트웨어 설치, 업데이트 및 구성 등을 처리해야 합니다.

Azure App Service를 강력하게 만드는 몇 가지 기능이 있습니다.

자동 스케일링 기능을 사용하면 관리자가 웹앱의 스케일링이 허용되는 최대 인스턴스 수와 트래픽 임계값을 설정할 수 있습니다. 그러면 App Service의 의사 결정 논리가 규모를 확대 또는 축소할지 여부를 결정합니다.

배포 슬롯을 사용하면 운영 또는 DevOps에서 수동 또는 자동 통합 테스트를 수행할 수 있는 라이브 테스트 또는 스테이징 환경에 새 버전의 웹 애플리케이션을 배포할 수 있습니다. 새 버전이 모든 테스트를 통과하면 운영 팀은 준비된 앱을 프로덕션으로 이동하여 슬롯을 교환할 수 있습니다. 배포 후 문제가 발생하는 경우 운영 팀은 다시 한번 슬롯을 교환하여 이전 버전을 다시 프로덕션으로 이동할 수 있습니다.

App Service 진단은 문제 해결사에서 몇 가지 질문에 대답할 수 있는 대화형 인터페이스를 제공합니다. 이 인터페이스는 애플리케이션에서 발생하는 문제의 유형과 관련된 전체 진단 보고서를 생성합니다. 또한 상태 확인, Application Insights, 탐색기(대화형 종속성 다이어그램)와 같은 도구는 문제가 어디에 있는지 파악하는 데 도움이 됩니다.

Azure App Service Migration Assistant란 무엇인가요?

Azure App Service Migration Assistant는 조직이 클라우드로 전환하는 데 도움을 주는 대규모 애플리케이션 제품군의 일부입니다. Migration Assistant는 다음 두 가지 작업을 수행하는 단계별 마법사 같은 사용자 환경을 제공합니다.

  1. Windows Server에 설치된 특정 웹앱에 대한 평가를 수행합니다. 웹앱의 종속성을 평가하여 웹앱을 수정하지 않고 Azure App Service로 마이그레이션할 수 있는지 여부를 확인합니다.
  2. 평가에서 웹앱을 마이그레이션할 수 있는 것으로 판정하는 경우 Migration Assistant가 마이그레이션을 수행합니다. Migration Assistant에 Azure 계정에 대한 액세스 권한을 부여하고, 사용하려는 리소스 그룹을 선택하고, 웹앱의 이름과 기타 세부 정보를 선택해야 합니다.

또는 Azure App Service Migration Assistant가 웹 애플리케이션을 더 자동화되고 반복 가능한 방식으로 마이그레이션하는 데 사용할 수 있는 Azure Resource Manager 템플릿을 생성합니다.

평가를 수행하는 이유는 무엇인가요?

일부 조직에서는 애플리케이션이 항상 IIS의 하위 수준 기능에 액세스할 수 있다고 가정하고 웹 애플리케이션을 빌드했습니다. 예를 들어 일부 개발자는 ISAPI 필터를 기준으로 하는 모니터링, 로깅 및 보안과 같은 기능을 빌드했습니다. 필터를 사용하면 들어오는 요청에 ASP.NET 애플리케이션에 전달되기 전에 액세스할 수 있습니다. 또한 ASP.NET 애플리케이션에서 생성한 보내는 응답에도 액세스할 수 있습니다.

그러나 Azure App Service와 같은 PaaS(Platform as a Service)를 사용하는 경우의 이점 중 하나는 클라우드 공급자(이 경우 Microsoft)가 하드웨어 및 소프트웨어를 관리하므로 사용자가 관리할 필요가 없다는 것입니다. 이러한 측면에서 비용 및 시간이 절약됩니다. 그러나 이는 애플리케이션이 Windows Server와 IIS의 더 낮은 수준의 기능에 더 적게 액세스할 수 있다는 것을 의미합니다. 애플리케이션이 이러한 하위 수준 기능에 의존하는 경우 수정 없이 Azure App Service를 활용하지 못할 수 있습니다.

평가에서 어떤 유형의 문제를 확인하나요?

Migration Assistant는 웹 애플리케이션의 특정 기능을 찾아 Azure App Service가 해당 기능을 수용할 수 있는지 확인하거나 Migration Assistant가 자동으로 해당 기능을 마이그레이션할 수 있는지 확인합니다. 다음 표에서는 Migration Assistant에서 수행하는 검사에 대한 몇 가지 정보를 제공합니다.

준비 상태 검사 설명
포트 바인딩 Azure App Service는 표준 웹 트래픽만 허용하므로 이 준비 상태 검사는 웹앱이 포트 80(HTTP 트래픽의 경우) 및 443(HTTPS 트래픽의 경우)만 수신하도록 합니다.
프로토콜 Azure App Service는 HTTP 및 HTTPS 프로토콜을 사용하는 경우에만 작동하므로 이 준비 상태 검사는 웹앱이 HTTP 기반 프로토콜만 처리하도록 합니다. 예를 들어 웹앱이 Windows Communication Foundation에 종속되는 경우 이 준비 상태 검사를 통과하지 못합니다.
인증서 Azure App Service는 보안 인증서를 처리할 수 있지만 이 준비 상태 검사는 Migration Assistant가 인증서를 자동으로 마이그레이션하지 않음을 경고합니다.
위치 태그 위치 태그를 사용하면 서버에서 호스트되는 모든 웹앱에 대한 구성을 각 웹앱의 개별 web.config 파일에 호스트하는 것이 아니라 단일 파일로 유지할 수 있습니다. Azure App Service 앱은 미리 구성된 IIS applicationhost.config 파일을 사용하며 위치 태그 기능을 지원하지 않습니다. 마이그레이션할 각 웹앱의 설정은 개별 web.config 파일로 이동해야 합니다. 이 준비 상태 검사는 위치 태그의 사용을 식별합니다.
ISAPI 필터 Azure App Service는 ISAPI 필터에 대한 지원을 제공하지만 ISAPI 필터 구현 방법에 따라 달라집니다. Migration Assistant는 ISAPI 필터에 종속되는 애플리케이션을 마이그레이션하지 않습니다. 먼저 애플리케이션에서 ISAPI 필터를 제거하고 마이그레이션한 다음, Azure App Service에서 ISAPI 필터를 수동으로 추가해야 합니다.
애플리케이션 풀 Azure App Service는 애플리케이션 풀을 앱당 하나 지원하기 때문에 이 준비 상태 검사를 통해 웹앱이 단일 애플리케이션 풀에만 의존하도록 할 수 있습니다.
애플리케이션 풀 ID Azure App Service 앱은 애플리케이션 풀과 연결된 시스템 관리 계정에서 실행되는 IIS 작업자 프로세스에서 호스트됩니다. 이는 IIS의 온-프레미스 설치에서 사용되는 기본 ID이기도 합니다. 이 준비 상태 검사는 웹앱이 기본 ID로 실행되도록 구성되어 있는지 확인합니다.
인증 유형 Azure App Service 앱은 온-프레미스에서 실행되는 IIS에서 호스트되는 앱과 다른 인증 유형 세트를 지원합니다. 이 준비 상태 검사는 웹앱이 익명 인증을 사용하도록 구성되어 있는지 확인합니다. 마이그레이션 후 Azure App Service에서 인증 유형을 수동으로 구성할 수 있습니다.
애플리케이션 설정 이 준비 상태 검사는 Azure App Service>구성>애플리케이션 설정으로 이동해야 하는 web.config 파일의 사용자 지정 애플리케이션 설정에 대한 경고를 표시합니다.
연결 문자열 이 준비 상태 검사는 web.config 파일에 저장된 데이터베이스 연결 문자열이 온-프레미스 데이터베이스를 가리키는지 여부를 확인합니다. 이 경우 Migration Assistant는 하이브리드 연결을 설정할 수 있는 옵션을 제공합니다.
프레임워크 Migration Assistant는 ASP.NET 및 PHP만 지원합니다. 앱에서 다른 프레임워크를 사용하는 경우 자동 마이그레이션을 수행할 수 없습니다.
구성 오류 Migration Assistant는 온-프레미스 IIS 인스턴스가 올바르게 구성되어 있고 검사 시 오류가 반환되지 않는지 확인합니다. 이 준비 상태 검사는 마이그레이션 전에 웹앱에 기본 문제가 없는지 확인합니다.
가상 디렉터리 Azure App Service는 고정 디렉터리 구조에 모든 파일을 저장합니다. Migration Assistant는 파일을 적절한 하위 디렉터리로 이동합니다. 그러나 UNC 공유에서 지원되는 가상 디렉터리가 있는 애플리케이션은 마이그레이션할 수 없습니다.

이 표의 정보는 Azure App Service Migration Assistant wiki에서 요약되었습니다.

평가에서 문제를 발견하면 어떻게 되나요?

웹 애플리케이션을 평가할 때 Azure App Service Migration Assistant에서 문제를 발견하는 경우 다음을 수행할 수 있습니다.

  • IIS의하위 수준 확장성 기능에 종속된 기능을 대체하도록 애플리케이션을 업데이트합니다. 이 태스크는 해당 기능에 따라 비교적 간단히 해결될 수 있습니다. 예를 들어 Azure Application Insights를 사용하여 ISAPI 필터에 종속된 사용자 지정 로깅 기능을 바꿀 수 있습니다. Application Insights는 애플리케이션에 몇 줄의 코드만 추가하면 풍부한 조치를 취할 수 있는 보고서를 제공합니다.
  • 마이그레이션을 차단하는 기능을 일시적으로 사용하지 않도록 설정하여 애플리케이션을 업데이트합니다. Migration Assistant가 이 작업을 안내할 수 있습니다.
  • 애플리케이션을 있는 그대로 Azure Virtual Machine에 배포합니다. Azure App Service를 사용하는 이점을 얻을 수 없고 운영 체제를 유지 관리해야 하지만 더 이상 하드웨어를 유지 관리할 필요가 없습니다. 또한 모든 웹 서비스에 대해 단일 관리 지점을 사용할 수 있습니다.

Azure App Service Migration Assistant wiki에는 평가 중 발견된 많은 문제에 대한 잠재적 재구성 단계가 포함되어 있습니다.

요약

이 단원에서 가장 중요한 내용은 다음과 같습니다.

  • Azure App Service Migration Assistant는 온-프레미스 웹앱과 Azure App Service에서 지원되는 항목 간의 비호환성을 찾습니다. 문제가 있는 경우 일반적으로 온-프레미스로 문제를 해결하거나 문제를 유발하는 기능을 사용하지 않도록 설정하는 방법이 있습니다. 그런 다음, Migration Assistant를 다시 시도할 수 있습니다.
  • 차단 문제가 없는 경우 Migration Assistant는 웹앱을 Azure App Service로 마이그레이션합니다.