Windows 애플리케이션의 마이그레이션 방법 정리 내용입니다.
<1> Microsoft Workloads와 AWS 매칭 되는 서비스
<2> 마이크로 소프트 워크로드 마이그레이션 3가지 방안?
<3> 리 플랫폼 : App2 Container
<4> 리 펙터(리 라이트) : Port Assistant for. NET
<5> 리 펙터(리 라이트) : AWS Microservice Extractor for. NET
<6> 정리
<1> Microsoft Workloads와 AWS 매칭 되는 서비스
1
Windows Server?
EC2 , Beanstalk , ECS , EKS , Outposts , VMC
Windows Server도 웹 애플리케이션은 Beanstalk으로 배포 가능.
Windows Container로 전환하여 ECS 나 EKS로 배포가 가능하다.
좀 더 프라이빗한 환경을 위해 제공하고 있는 AWS Outposts나 VMware Cloud on AWS에서도 동작 가능
2
SQL Server?
RDS for SQL Server , Babelfush for Aurora PostgreSQL , Redshift , QuickSight
Babelfush for Aurora PostgreSQL을 통해 빠르게 마이그레이션 하는 방안을 고려할 수 있습니다.
SQL Server의 다양한 활용방안 중에 DW 기능이나 BI 기능은 AWS의 레드쉬프트나 퀵 사이트로 대응이 가능하다.
3
. NET 기반의 애플리케이션은?
AWS의 Code Series를 이용하여 CI/CD 파이프라인 구축하거나,
AWS가 제공하는 SDK나 확장팩 등을 통해, 기존 이용하고 있는 개발 툴에서 AWS 환경과 통합을 손쉽게 구성할 수 있다.
<2> 마이크로 소프트 워크로드 마이그레이션 3가지 방안?
리로 케이트, 리 호스트
리 플랫폼
리 펙터(리 라이트)
<3> 리 플랫폼 : App2 Container
실행 중인 애플리케이션을 컨터이너로 변환하고 AWS가 관리하는 컨테이너에서 실행하도록 도와주는 명령줄 도구.
Net 애플리케이션뿐만 아니라 Java 애플리케이션에 대한 컨테이너 전환 시에도 이용할 수 있는 명령줄 도구입니다.
1
App2 Container를 이용해, 현재 환경을 파악하고 컨테이너로 변환하고자 하는 애플리케이션을 분석할 수 있다.
2
컨테이너를 작성하가 위해 필요한 애플리케이션 아티팩트와 컨테이너 이미지를 만드는 과정을 거친다.
3
이후 아마존 ECS나 EKS로의 배포 템플릿을 생성하여 바로 배포하거나 혹은 CI/CD파이프라인을 구성할 수 있다.
4
ECS의 경우 기본 이미지로 Windows Server Core 2016 or 2019 , EKS Windows Server Core 2019를 기본 이미지로 사용한다.
<4> 리 펙터(리 라이트) : Port Assistant for. NET
1
. NET Framework 애플리케이션을 OS에 구애받지 않는. NET Core(. NET 6)로 전환하는데 도움을 줄 수 있는 Port Assistant for. NET
2
App2 Container를 이용해 만든 것보다 좀 더 경량화된 Windows Nano Server 나 리눅스 기반의 도쿄 이미지 생성이 가능하다.
3
Linux EC2로. NET 애플리케이션을 배포할 수 있고, 람다와 같은 서버리스로의 전환도 가능해진다.
4
전환이 완료된 소스 코드를 이용해서 비주얼 스튜디오에서 바로 빈스톡이나 람다로 배포도 가능하다.
<5> 리 펙터(리 라이트) : AWS Microservice Extractor for. NET
1
. NET 애플리케이션의 리 펙터(리 라이트) 과정을 돕는 도구.
2
모놀리틱 시스템을 마이크로 서비스로 전환하려면 모듈의 종속성 파익하고 이를 분해하는 과정이 필요하다.
Microservice Extractor for. NET은 종속성을 시각적으로 표현하여 파악하기 용이하게 한다.
분해된 내용에 따른 코드를 추출하여 코드 재생산 시간을 단축시켜 준다.
3
기존의 코드를 분석한 후 각각의 종속성을 고려하여 처음부터 작성하는 것보다 훨씬 시간을 단축시킬 수 있는 방안이 바로 AWS Microservice Extractor for. NET이다.
<6> 정리
1
가장 쉬운 방법으로 EC2 나 빈스톡으로 배포를 선택할 수 있다.
2
다른 환경과 표준화 작업을 위해 윈도즈 컨테이너를 검토해야 하는 경우가 있다.
이때 도움을 줄 수 있는 것이 APP2 Container이다.
3
오픈 소스로 전환을 위해. NET Core로 코드 수정이 필요할 수 있다.
이때는 Port Assistant for. NET 이용하면 분석작업이나 변경에 소요되는 시간을 줄일 수 있다
4
마이크로 서비스로 검토해야 하는 경우는 AWS Microservice Extractor for. NET 사용한다.
각 기능을 분해하고 이를 코드로 변경하는데 필요한 시간을 줄여 준다.
https://brunch.co.kr/@topasvga/2617
감사합니다.