기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
.NET 애플리케이션 마이그레이션
.NET 애플리케이션을 로 마이그레이션 AWS 하면 탄력적 조정 기능을 사용하여 고가용성 워크로드를 생성하고, 운영 오버헤드를 줄이고, 차별화된 가치에 집중하여 비즈니스 민첩성을 높일 수 있습니다.
이 섹션에서는에서 .NET 애플리케이션을 호스팅하기 위한 다양한 옵션에 중점을 둡니다 AWS. 와 같은 관리형 솔루션인 VM 사용AWS Elastic Beanstalk
평가
.NET 워크로드의 마이그레이션 경로를 선택할 때는 다음과 같은 주요 요소를 고려해야 합니다.
-
사용된 .NET 버전 찾기 - Microsoft에서 지원하는 두 가지 .NET 구현인 .NET Framework(1.0~4.8)와 .NET(.NET Core 1.0~3.1 및 .NET 5 이상)이 있습니다. 둘 다 동일한 구성 요소를 많이 공유하며 서로 다른 .NET 프로그래밍 언어(예: C#, F#, VB.NET)를 사용하여 작성된 애플리케이션 코드를 실행할 수 있습니다. .NET Framework는 Windows에서 실행되지만 최신 .NET은 다중 플랫폼이므로 마이그레이션 전략과 호스팅 서비스 선택은 사용하는 런타임에 따라 달라집니다. .NET Framework의 경우 Windows OS에서 호스팅하거나 최신 .NET을 사용하도록 코드를 리팩터링할 수 있습니다. Linux OS 기반 서비스에서도 최신 .NET을 호스팅할 수 있습니다. .NET Framework 기반 워크로드를 현대화할 때 Porting Assistant for .NET
또는 AWS Toolkit for .NET Refactoring 을 사용하여 코드를 스캔하고 호환성 평가 보고서를 생성할 수 있습니다. 프로젝트에서 참조하는 호환되지 않는 .NET Framework API가 있는지 확인하여 마이그레이션 프로젝트의 복잡성을 계획하고 최신 런타임을 사용하도록 코드를 리팩터링할지 여부와 시기를 결정할 수 있습니다. -
현재 배포 검토 - 현재 마이그레이션된 워크로드에 동일한 워크로드를 클라우드에 배포하도록 업데이트할 수 있는 기존 CI/CD 파이프라인이 있는지 확인합니다. 기존 빌드 및 배포 파이프라인을 사용하면 워크로드를 구축, 구성 및 배포하는 데 필요한 단계를 자동화하여 애플리케이션을 클라우드에 배포하는 데 걸리는 시간을 줄일 수 있습니다.
-
로드맵 검토 - 프로젝트의 현재 상태에 따라 이미 애플리케이션을 리아키텍트하거나 재설계할 계획을 세우고 있을 수 있습니다. 현대화를 수행할 때는 제품 로드맵을 고려해야 합니다. 예를 들어, 기존 코드를 컨테이너화하기로 결정하거나 모놀리식 아키텍처를 마이크로서비스로 리팩터링하는 것은 이상적으로 제품 로드맵의 일부이며 다른 개발 노력과 연계됩니다.
동원
.NET 워크로드를 마이그레이션할 때 고려해야 할 세 가지 마이그레이션 경로가 있습니다 AWS. 기존 코드베이스의 복잡성, 마이그레이션에 할당된 시간, 마이그레이션 작업을 지원하기 위해 할당된 팀의 규모에 따라 다양한 옵션 중에서 선택할 수 있습니다. 마이그레이션의 일환으로 현대화를 고려할 때는 제품의 로드맵에 부합하는 것이 가장 좋습니다.
-
리호스팅(리프트 앤 시프트) - 우선순위가 거의 또는 전혀 변경하지 않고 AWS 로 더 빠르게 마이그레이션하는 경우이 접근 방식을 선택할 수 있습니다. Amazon EC2 인스턴스에서 실행되는 인터넷 정보 서비스(IIS)로 ASP.NET 기반 웹 사이트를 리호스팅할 수 있습니다. 데스크톱 기반 애플리케이션(예: Windows Presentation Foundation, Web Forms 및 .NET MAUI)을 Amazon AppStream 2.0
또는 Amazon WorkSpaces 와 같은 최종 사용자 컴퓨팅 플랫폼 중 하나로 리호스팅할 수 있습니다. -
리플랫포밍 - 리플랫포밍은 코드를 변경하지 않고 관리형 서비스를 사용하여 애플리케이션을 호스팅하고 싶지만 설치, 패치, 업그레이드, 인스턴스 관리 등의 획일적이고 과중한 업무를 없애서 운영 오버헤드를 줄이려는 경우에 가장 적합합니다. 이 전략은 컨테이너 기반 워크로드로 전환하려는 팀에도 적합합니다. 기존 애플리케이션을 Elastic Beanstalk
로 리플랫포밍하거나 Amazon ECS , Amazon EKS 또는에서 호스팅되는 Docker 컨테이너를 사용할 수 있습니다AWS App Runner . -
리팩터링 - AWS 클라우드 네이티브 서비스를 사용하여 운영 오버헤드를 줄이고 규모 조정, 고가용성 및 재해 복구를 개선하는 코드 및 아키텍처 변경에 시간과 노력을 투자할 수 있는 경우이 접근 방식을 선택합니다. 리팩터링에는 기존 .NET 프레임워크 애플리케이션을 .NET(이전의 .NET Core)으로 이식하거나 클라우드에서 더 잘 실행되도록 기존 코드베이스를 현대화하는 작업이 포함됩니다. 를 사용하여 .NET 코드 내에서 많은 AWS 클라우드 서비스를 호출AWS SDK for .NET
할 수 있습니다. Porting Assistant for .NET 및와 같은 도구를 사용하여 코드베이스를 .NET Framework에서 .NET으로 이식하고 모놀리식 애플리케이션을 마이크로서비스로 분리할 AWS Microservice Extractor for .NET 수 있습니다. 에서 실행되도록 기존 .NET 워크로드를 리팩터링하면 서버리스 컴퓨팅을 사용하여 인프라를 프로비저닝하고 관리할 AWS Lambda 필요가 없습니다.
마이그레이션
.NET 워크로드 마이그레이션 단계는 평가 단계에서 선택한 마이그레이션 경로와 애플리케이션 유형에 따라 달라집니다.
.NET 애플리케이션 리호스팅
코드를 변경하지 않고 애플리케이션을 마이그레이션하고 클라우드의 자동 조정, 로드 밸런싱, 탄력성을 활용하려는 경우 이 마이그레이션 경로를 선택합니다. Windows 기반 웹 사이트의 경우 리호스팅은 일반적으로의 IIS(인터넷 정보 서비스)에서 웹 사이트를 실행하는 것을 의미합니다 AWS. 데스크톱 기반 애플리케이션의 경우 애플리케이션을 설치하고 사용자가 외부에서 애플리케이션에 연결할 수 있도록 해야 합니다.
의 인터넷 정보 서비스 AWS
인터넷 정보 서비스(IIS)는 Windows 운영 체제에서 실행되는 Microsoft 웹 서버이며 웹 사이트와 웹 서비스를 호스팅하는 데 사용됩니다. Windows Server를 실행하는 모든 Amazon EC2 인스턴스에 IIS를 설치할 수 있습니다. IIS를 사용하도록 설정하고 구성한 후에는 온프레미스 환경에 사용하는 것과 동일한 배포 메커니즘을 사용하여 ASP.NET 웹 사이트 및 서비스를 배포할 수 있습니다.
EC2 Windows 인스턴스에서 IIS를 호스팅하는 경우 워크로드 및 HADR 요구 사항에 따라 로드 밸런싱, Auto Scaling 그룹 및 다중 AZ 배포를 사용하여 AWS Well-Architected Framework
에서 데스크톱 애플리케이션 호스팅 AWS
많은 클라이언트가 Windows 기반 씩 클라이언트 애플리케이션에 액세스해야 합니다. 다음과 같은 3가지 플랫폼 중에서 선택할 수 있습니다.
-
Amazon EC2
- 사용자가 Microsoft 원격 데스크톱을 사용하여 Windows Server 기반 환경에 연결하도록 하려면 이 옵션을 선택합니다. 이 옵션을 사용할 경우 사용자가 운영 체제의 패치 적용 및 유지 관리를 담당합니다. 또한 사용자와 활성 소프트웨어 보증(SA) 을 위한 원격 데스크톱 서비스 클라이언트 액세스 라이선스(RDS CAL)도 추가로 구입해야 합니다. 자세한 내용은 AWS 설명서의 의 Microsoft 라이선싱 AWS 을 참조하세요. -
Amazon WorkSpaces
- 사용자를 위한 완전관리형 가상 데스크톱 인프라(VDI)가 필요한 경우 이 옵션을 선택합니다. WorkSpaces를 사용하여 사용자에게 지속적인 Windows 데스크톱 환경을 제공할 수 있습니다. 사용자 지정 이미지를 사용하여 WorkSpaces 환경을 사용자 지정하고 .NET 애플리케이션을 설치하거나 AWS Systems Manager 를 사용하여 WorkSpaces 환경에 .NET 애플리케이션을 제공할 수도 있습니다. 사용자는 브라우저 또는 Amazon WorkSpaces 클라이언트 를 사용하여 연결할 수 있습니다. -
Amazon AppStream 2.0
– 어느 위치에서든 애플리케이션 및 비영구 데스크톱에 대한 안전하고 안정적이며 확장 가능한 액세스를 제공하려면 이 옵션을 선택합니다. AppStream 2.0으로 사용자가 웹에서 .NET 애플리케이션에 액세스할 수 있게 할 수 있습니다. 기존 RDS CAL과 활성 SA가 이미 있는 경우 License Mobility 를 사용하여 AppStream 2.0에서 해당 라이선스를 사용할 수 있습니다.
리플랫포밍
리플랫포밍에는 코드를 거의 또는 전혀 변경하지 않고 호스팅 환경을 변경하는 작업이 포함됩니다. 이 전략을 선택하여 운영 오버헤드를 줄이고 클라우드 기능 및 서비스를 활용합니다.
AWS Elastic Beanstalk
AWS Elastic Beanstalk
자세한 내용은 다음 리소스를 참조하세요.
-
Elastic Beanstalk에서 .NET 애플리케이션 생성 및 배포(Elastic Beanstalk 설명서)
-
Linux에서 .NET Core 작업(Elastic Beanstalk 설명서)
-
.NET 및 용 사용자 지정 도메인을 사용한 다중 앱 지원 AWS Elastic Beanstalk
(AWS 개발자 도구 블로그)
기존 애플리케이션 컨테이너화
Amazon ECS 또는 Amazon EKS를 사용하여 Docker 기반 컨테이너화된 애플리케이션을 호스팅할 수 있습니다.는 두 서비스를 모두 AWS 관리합니다. 둘 중 하나를 선택하는 것은 기존 지식과 선호도에 따라 달라집니다. 두 옵션 모두 Linux 기반 컨테이너나 Windows 기반 컨테이너를 실행할 수 있습니다.
자세한 내용은 다음 리소스를 참조하세요.
-
Amazon EC2 Windows 컨테이너(Amazon ECS 설명서)
-
Amazon EKS 클러스터에 대한 Windows 지원 활성화(Amazon EKS 설명서)
.NET 기반 애플리케이션을 컨테이너화하는 것은 사용된 .NET 런타임에 따라 달라집니다. 다음을 고려하세요.
-
Windows 컨테이너에서 .NET Framework 기반 애플리케이션 실행 - 애플리케이션을 컨테이너화하는 방법을 약술하는 Docker 파일을 생성하여 기존 애플리케이션에 Docker 지원을 추가할 수 있습니다. AWS App2Container
를 사용하여 기존 .NET Framework 기반 애플리케이션을 쉽게 컨테이너화하고 로 마이그레이션할 수 있습니다 AWS. App2Container는 IIS 서버를 스캔하여 필요한 파일을 확인하고 대상 애플리케이션을 추출하여 도커 이미지를 생성합니다. App2Container를 사용하여에서 애플리케이션을 호스팅하는 데 필요한 배포 아티팩트를 생성할 수도 있습니다 AWS 클라우드. -
.NET 또는 .NET Core - Amazon ECS 또는 Amazon EKS에서 최신 .NET 기반 웹 애플리케이션을 실행하는 것 외에도를 사용할 수도 있습니다AWS App Runner
. App Runner는 코드나 컨테이너 이미지를 실행하고 부하 분산, Auto Scaling, 로깅, 인증서, 네트워킹을 관리하는 서버리스 완전관리형 솔루션입니다.
기존 코드 리팩터링/리아키텍트
애플리케이션의 현재 환경에서 달성하기 어려운 기능, 규모 또는 성능을 추가해야 하는 비즈니스 요구가 큰 경우이 옵션을 선택합니다. 애플리케이션 로드맵에 따라 최신 프레임워크, 클라우드 네이티브 서비스를 사용하도록 코드를 변경하거나 클라우드에서 더 잘 실행되도록 리아키텍트할 수 있습니다.
사용할 수 있는 첫 번째 리팩터링 옵션은 기존 .NET Framework 애플리케이션을.NET으로 마이그레이션하는 것입니다. .NET으로 전환하면 Windows 대신 Linux에서 실행할 수 있는 이점이 있습니다. 이렇게 하면 총 라이선스 비용이 절감되고, 최신 프레임워크와 최신 버전의 .NET 프로그래밍 언어가 제공됩니다.
AWS SDK for .NET
AWS SDK for .NET
.NET Framework 애플리케이션 현대화
코드 파일을 검사하고 애플리케이션 포트폴리오 마이그레이션 로드맵을 계획하는 데 도움이 되는 보고서를 생성하는 Porting Assistant for .NET
모노리스에서 마이크로서비스로
많은 개발 팀이 기존 모놀리식 애플리케이션을 마이크로서비스로 리아키텍트하고자 합니다. 개발 팀은 마이크로서비스 기반 아키텍처로 전환하여 개발 민첩성을 높이고, 컴퓨팅 비용을 줄이고, 서비스를 개별적으로 확장하고, 배포 시간을 줄일 수 있습니다.는 이전 모놀리식 애플리케이션을 마이크로서비스 기반 아키텍처로 리팩터링하는 프로세스를 AWS Microservice Extractor for .NET
서버리스 애플리케이션으로 리팩터링
AWS Lambda
추가 리소스
-
Amazon CodeCatalyst
(CodeCatalyst 설명서) -
AWS Toolkit for Azure DevOps
(AWS 설명서) -
Jenkins를 AWS CodeBuild 및와 통합하여 CI/CD 파이프라인 설정 AWS CodeDeploy
(AWS DevOps 블로그) -
.NET용 배포 도구 정보 AWS
(AWS GitHub) -
.NET on AWS
(AWS 문서) -
aws/dotnet
(GitHub)