마이그레이션 지원 도구 조사
마이그레이션 고려 사항을 분석하려면 사용 가능한 다양한 옵션을 모두 검토해야 합니다. 이전 단원에서 IaaS 및 PaaS와 같은 호스팅 서비스를 언급했습니다. IaaS 마이그레이션은 VM을 만들어 온-프레미스 환경과 동일한 소프트웨어 및 설정으로 구성한 다음 Azure에서 호스트하는 리프트 앤 시프트 옵션을 제공할 수 있습니다. IaaS의 경우 VM의 소프트웨어 관리, 패치, 업데이트, 보안은 여전히 조직이 수행해야 합니다.
ASP.NET 애플리케이션을 마이그레이션하려는 경우 PaaS 옵션을 사용하여 Azure의 자동화 및 확장성을 최대한 활용하는 것이 좋습니다. ASP.NET 애플리케이션이 있는 PaaS 솔루션의 경우 Azure App Service 사용이 논의의 중심이 됩니다.
Azure App Service란?
Azure App Service는 Azure에서 웹 애플리케이션과 REST API를 호스트하는 데 사용할 수 있는 HTTP 기반 서비스입니다. 이 서비스는 다음과 같은 이점을 제공합니다.
지정한 매개 변수에 따라 수요를 충족하도록 앱을 스케일링하고, 수요 감소 시 자동으로 스케일을 줄이는 자동 스케일링.
서버 또는 데이터 센터 장애 또는 가동 중지 시간에 애플리케이션을 계속 사용할 수 있도록 하는 고가용성. Azure는 이를 위해 영역, 지역, 가용성 집합을 사용합니다.
Windows 및 Linux 플랫폼 지원.
Azure DevOps 또는 GitHub 리포지토리를 사용하여 자동화된 배포 모델과 통합.
Azure App Service는 ASP.NET 앱을 어떻게 호스트하나요?
Azure App Service를 사용하여 App Service 요금제의 ASP.NET 애플리케이션을 호스트할 수 있습니다. App Service 요금제는 ASP.NET 애플리케이션을 위한 컴퓨팅 리소스 집합을 정의합니다. 컴퓨팅 리소스는 온-프레미스 서버 팜과 비슷하다고 생각하면 됩니다. 컴퓨팅 리소스는 애플리케이션을 호스트하는 데 필요한 소프트웨어가 포함된 VM으로 구성됩니다. 이것은 앱을 호스트하는 IIS와 함께 Windows Server 제품을 실행하는 VM일 수 있습니다.
앱은 다음과 같은 다른 리소스도 사용합니다.
- 표준 포트 80 또는 HTTPS 포트 443을 통해 웹 애플리케이션에 대한 액세스를 제공하는 네트워킹 리소스. 네트워킹은 DNS 및 공용 IP 주소 지정 구성을 위한 옵션도 제공합니다.
- 서비스의 모니터링 및 로깅 옵션.
- Microsoft Entra ID 및 RBAC(역할 기반 액세스 제어)를 통한 액세스 제어
- 데이터베이스 액세스, 크기 조정 및 가용성 옵션과 같이 특정 애플리케이션에 필요한 구성에 따라 사용할 수 있는 기타 옵션.
- 애플리케이션을 호스트하는 데 필요한 다양한 파일을 위한 스토리지 옵션.
Azure SQL Database란?
Azure SQL Database는 클라우드용으로 구축된 지능적이고 확장 가능한 관계형 데이터베이스 서비스입니다. 사용자 개입 없이 패치, 업그레이드, 백업을 관리하는 완전 관리형 SQL 데이터베이스 서비스입니다. Azure SQL 데이터베이스에 대한 두 가지 배포 모델, 즉 단일 데이터베이스 또는 탄력적 풀 중에서 선택할 수 있습니다.
단일 데이터베이스 모델
단일 데이터베이스 배포 모델은 온-프레미스 SQL Server 데이터베이스 엔진에 포함된 단일 데이터베이스와 비슷합니다. Azure SQL Database 단일 배포 모델에서는 이 단원에서 앞서 설명한 완전 관리형 옵션을 사용할 수 있습니다. 이것은 애플리케이션의 데이터 요구 사항을 위한 격리된 데이터베이스입니다.
탄력적 풀 모델
탄력적 풀은 메모리 및 CPU와 같은 리소스 집합을 공유하는 단일 데이터베이스의 컬렉션입니다. 필요한 경우 탄력적 풀에서 단일 데이터베이스를 이동하고 다른 단일 데이터베이스를 풀로 이동할 수 있습니다.
Azure SQL Database 배포를 특정 애플리케이션 요구 사항에 맞게 사용자 지정하는 데 도움이 되는 다양한 서비스 계층 및 컴퓨팅 크기가 있습니다. 예를 들어 기존 요구 사항에 맞게 작은 단일 데이터베이스로 시작하여 비용을 줄일 수 있습니다. 애플리케이션의 요구 사항이 증가함에 따라 애플리케이션 및 데이터 액세스에 대한 수요를 충족하는 데 도움이 되는 동적 확장성 옵션을 제공하도록 서비스 계층을 업그레이드할 수 있습니다. 동적 스케일링을 사용하면 필요에 따라 리소스를 가져와 규모를 관리한 다음, 수요가 하락할 때는 규모를 줄여 비용을 낮게 유지하는 데 도움이 됩니다.
Azure SQL Database와 SQL Server 비교
온-프레미스 SQL Server 데이터베이스 엔진과 Azure SQL Database를 비교하면 Azure 사용의 이점을 강조하는 데 도움이 될 수 있습니다.
온-프레미스 SQL Server 데이터베이스 엔진을 사용하는 경우:
IT 부서가 서버 하드웨어를 확보해야 합니다.
운영 체제를 설치합니다.
데이터베이스 엔진을 설치합니다.
패치를 관리합니다.
방화벽 보안을 구성합니다.
데이터베이스 액세스를 관리합니다.
데이터베이스 백업을 관리합니다.
재해 복구를 관리합니다.
컴퓨팅 리소스가 수요를 충족하기에 부족한 경우 새 하드웨어에 대해 앞의 모든 작업을 다시 수행합니다.
Azure SQL Database를 사용하는 경우:
선택한 배포 모델을 사용하여 Azure에서 데이터베이스 인스턴스를 만듭니다.
데이터를 새 인스턴스로 마이그레이션합니다.
애플리케이션 액세스를 구성합니다.
필요한 경우 확장성 옵션을 구성합니다.
관리되는 환경의 이점을 누립니다.
하이브리드 데이터 시나리오
Azure 하이브리드 혜택은 클라우드에서 SQL 워크로드를 실행하는 라이선스 비용을 줄이는 데 도움이 되는 모델입니다. Azure 플랫폼에서 Windows Server 및 SQL Server용 기존 온-프레미스 Software Assurance 사용 라이선스를 사용하여 이 혜택을 활용할 수 있습니다.
이 그래프는 SQL Server Enterprise 절감액의 예를 보여 줍니다.
마이그레이션 지원 도구란?
Microsoft에서는 기존 환경을 평가하고, 마이그레이션 중에 발생할 수 있는 문제를 강조하며, 애플리케이션과 데이터를 클라우드로 가져오는 실제 프로세스를 돕는 마이그레이션 지원 도구 집합을 제공합니다.
Azure Migrate란?
Azure Migrate는 온-프레미스 시스템을 검색 및 평가하고, Azure로 마이그레이션하는 무료 서비스로서 Microsoft에서 제공합니다. 이 서비스는 마이그레이션할 머신의 성능 기반 크기 계산(VM 크기, 컴퓨팅/스토리지)을 지원하고, 해당 머신을 Azure에서 실행할 경우 지속적으로 발생할 비용을 추정합니다. Azure Migrate는 Hyper-V 및 VMware 기반 VM을 모두 평가하고 물리적 서버도 평가할 수 있습니다. 또한 Azure Migrate는 해당 머신의 종속성을 시각화하도록 지원합니다. 그뿐 아니라 머신의 평가 및 Azure로의 마이그레이션을 한 번에 진행할 수 있도록 머신 그룹을 만들어 줍니다. 종속성을 파악하면 누락되는 머신이 하나도 없다는 확신을 가질 수 있습니다.
Azure Migration Assistant란?
Azure Migration Assistant는 클라우드로 ASP.NET 애플리케이션을 마이그레이션하는 데 사용할 수 있는 도구입니다. 이와 함께 간단하고 빠른 무료 솔루션을 사용하여 클라우드로의 마이그레이션을 간소화하도록 설계된 App Service Migration Assistant도 사용합니다. 이러한 도구를 사용하여 다음을 수행할 수 있습니다.
공용 URL 스캔을 실행하여 앱이 마이그레이션에 적합한지 여부를 평가합니다.
Migration Assistant를 다운로드하여 마이그레이션을 시작합니다.
도구를 사용하여 준비 검사 및 앱의 구성 설정에 대한 일반적인 평가를 실행한 다음 앱 또는 사이트를 Azure 앱 Service로 마이그레이션합니다.
Data Migration Assistant란?
Data Migration Assistant는 새 버전의 SQL Server 또는 Azure SQL Database에서 데이터베이스 기능에 영향을 줄 수 있는 호환성 문제를 검색하여 최신 데이터 플랫폼으로 업그레이드하는 데 도움이 됩니다. Data Migration Assistant는 대상 환경을 위한 성능 및 안정성 개선 사항을 권장하며, 원본 서버에서 대상 서버로 스키마, 데이터 및 포함되지 않은 개체를 이동할 수 있게 해 줍니다.
주요 기능:
온-프레미스 SQL Server 인스턴스를 평가하여 호환성 문제나 기능 지원 부족으로 인한 마이그레이션 관련 문제를 검색
Azure SQL Database에서 활용할 수 있는 새로운 기능 검색
온-프레미스 SQL Server 인스턴스를 클라우드로 마이그레이션
Azure SQL Database로 마이그레이션하는 온-프레미스 SQL Server Integration Services 패키지를 평가
기존 환경 평가
마이그레이션 프로세스의 중요한 단계는 기존 환경 평가입니다. 이렇게 하면 마이그레이션 시나리오를 원활하게 전환할 수 있으며 마이그레이션 전, 도중 및 후에 잠재적인 문제를 식별하는 데도 도움이 될 수 있습니다.
기존 환경 인벤토리 작성
기존 환경의 인벤토리를 작성하면 마이그레이션 범위에 포함되는 서버, 애플리케이션, 서비스를 식별하는 데 도움이 됩니다. 이러한 서비스와 함께 작동하는 IT 및 비즈니스 팀을 사용하여 마이그레이션에 대한 지침, 피드백 및 지원을 제공합니다.
또한 마이그레이션 범위에 있는 서버 및 서비스의 전체 인벤토리 및 종속성 맵을 생성하려고 합니다. 인벤토리와 맵은 서비스가 서로 통신하는 방식을 보여줍니다. 성공적인 마이그레이션을 위한 온라인 환경 요구 사항을 정의하는 데 도움이 됩니다.
필요한 앱 변경 내용 식별
애플리케이션이 마이그레이션 후 제대로 작동하려면 변경이 필요할 수 있습니다. 예를 들어 ASP.NET 애플리케이션이 데이터베이스에 액세스하는 경우 데이터베이스 연결 문자열 변경이 필요할 수 있습니다. Azure 사용의 이점은 데이터베이스 연결 문자열을 Azure Key Vault에 비밀로 저장할 수 있다는 것입니다. 이렇게 하면 키 자격 증명 모음의 비밀 뒤에 연결 문자열을 "숨겨" 연결 문자열의 인증 매개 변수가 보호됩니다. 그런 다음 연결 문자열 대신 해당 비밀을 사용하도록 앱을 구성할 수 있습니다.
비용 예측
마이그레이션 시나리오에서 주요 고려 사항은 조직이 Azure에서 애플리케이션을 호스트할 때 발생하는 비용입니다. 일반적인 온-프레미스 환경과 다른 비용 모델에서 이동하게 됩니다. Azure 환경에서는 컴퓨팅, 스토리지 및 액세스 비용과 관련된 다양한 소비 비용에 대해 매월 요금이 청구됩니다.
이전 단원에서는 예상 비용을 평가하는 데 사용할 수 있는 Azure 가격 계산기에 대해 설명했습니다.
보안 고려 사항 평가
모든 마이그레이션 시나리오에서 보안은 우선 순위가 가장 높으며 마땅히 그래야 합니다. 온라인으로 데이터를 호스팅하는 것이 걱정되거나 직원들이 현재 자격 증명을 사용하여 애플리케이션에 액세스할 수 있는지 궁금할 수 있습니다. 또한 업계 표준을 준수하는 관점에서 데이터의 보안에 대해서도 우려하고 있습니다. Azure에서 사용할 수 있는 옵션을 이해하면 이러한 문제를 해결하는 데 도움이 됩니다.
앱의 보안 요구 사항 평가
앱이 데이터 저장소에 액세스해야 하는 ASP.NET 애플리케이션 시나리오에서는 웹 프런트 엔드에 대한 액세스를 허용하면서 데이터베이스를 보호하는 방법을 고려해야 합니다. Azure는 이와 관련하여 도움이 되는 가상 네트워크를 제공합니다. Azure 가상 네트워크는 다음에 도움이 됩니다.
사용자가 제어하는 하이브리드 인프라를 구축합니다.
사용자 자신의 IP 주소 및 DNS 서버를 가져옵니다.
IPsec VPN(가상 사설망) 또는 Azure ExpressRoute를 사용하여 연결을 보호합니다.
서브넷 간 트래픽에 대한 세부적인 제어를 얻습니다.
가상 어플라이언스를 사용하여 정교한 네트워크 토폴로지를 만듭니다.
애플리케이션을 위한 격리되고 매우 안전한 환경을 얻습니다.
인증 및 ID 관리를 위한 Active Directory를 사용하여 온-프레미스에서 실행되는 애플리케이션에 액세스할 수도 있습니다. Microsoft Entra Connect를 사용하면 온-프레미스 디렉터리를 Microsoft Entra ID와 통합할 수 있습니다. 즉, 직원에게 인증을 위해 여러 자격 증명 집합이 필요하지 않습니다.
온-프레미스 환경의 앱 및 하드웨어 인벤토리를 작성하는 것과 마찬가지로 기존 보안 요구 사항과 구현을 파악해야 마이그레이션 시나리오의 적절한 보안 평가를 수행할 수 있습니다. 클라우드 호스트 환경도 조직의 보안 요구 사항을 충족하도록 하는 것이 좋습니다.
마이그레이션 시나리오를 위한 Azure Pipelines 살펴보기
많은 조직은 보다 민첩한 개발과 신속한 배포를 위해 DevOps 사례를 채택하고 있습니다. 클라우드 환경에서 이를 가능하게 하는 주요 영역 중 하나는 개발자가 사용하는 도구 간의 네이티브 통합입니다. 개발자는 Microsoft Visual Studio, GitHub 및 App Service 통합 기능을 사용하여 변경 내용을 더 빠르게 빌드하고 제공할 수 있습니다. ASP.NET 애플리케이션의 경우 원격 및 라이브 사이트 디버깅은 개발자에게 프로덕션 환경의 문제 진단과 관련하여 더 큰 이점을 제공합니다.