기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
IIS에서 Elastic Beanstalk로의 마이그레이션 매핑 이해
IIS에서 Elastic Beanstalk로 마이그레이션하려면 온프레미스 Windows 서버 구성을 AWS 클라우드 리소스에 매핑해야 합니다. 이 매핑을 이해하는 것은 성공적인 마이그레이션 및 마이그레이션 후 관리에 매우 중요합니다.
Elastic Beanstalk의 IIS 사이트 및 애플리케이션
IIS에서 웹 사이트는 웹 애플리케이션 및 가상 디렉터리 모음을 나타내며, 각 웹 애플리케이션 및 가상 디렉터리에는 자체 구성 및 콘텐츠가 있습니다. Elastic Beanstalk로 마이그레이션할 때 이러한 구성 요소는 다음과 같이 변환됩니다.
- IIS 웹 사이트
-
IIS 웹 사이트는 Elastic Beanstalk 내의 애플리케이션이 됩니다. 바인딩, 애플리케이션 풀 및 인증 설정을 포함한 각 웹 사이트의 구성은 Elastic Beanstalk의 배포 매니페스트()를 통해 보존됩니다
aws-windows-deployment-manifest.json
.예를 들어 기본 웹 사이트 및 IntranetSite와 같은 여러 사이트가 있는 경우는 격리를 유지하면서 각 사이트의 콘텐츠 및 구성을 eb migrate 패키징합니다.
이 명령은 애플리케이션에 대한 라우팅 요청을 처리하기 위한 적절한 Application Load Balancer(ALB) 리스너 규칙을 생성합니다. 또한 원래 IIS 바인딩을 기반으로 적절한 포트 액세스를 보장하도록 보안 그룹을 구성합니다.
- 애플리케이션 풀
-
IIS 애플리케이션 풀은 애플리케이션에 작업자 프로세스 격리, 런타임 관리 및 재활용 기능을 제공합니다. Elastic Beanstalk에서는 네
aws:elasticbeanstalk:environment:process
임스페이스를 통해 정의되고 EC2 인스턴스의 IIS를 통해 구성된 환경 프로세스에 매핑됩니다.마이그레이션은 다음을 포함한 중요한 애플리케이션 풀 설정을 유지합니다.
-
프로세스 모델 구성 - Identity(ApplicationPoolIdentity, NetworkService 또는 사용자 지정 계정), 유휴 제한 시간 설정 및 프로세스 재활용 간격
-
.NET CLR 버전 설정 - 애플리케이션 호환성을 보장하기 위해 지정된 .NET Framework 버전(v2.0, v4.0 또는 관리형 코드 없음)을 유지합니다.
-
관리형 파이프라인 모드 - HTTP 요청 처리 아키텍처를 유지하기 위해 통합 또는 클래식 파이프라인 모드 설정을 유지합니다.
-
고급 설정 - 대기열 길이, CPU 제한, 빠른 실패 방지 임계값 및 시작 시간 제한
eb migrate 명령은 Elastic Beanstalk 환경으로 마이그레이션하는 동안 사이트와 애플리케이션 풀 간의 매핑을 보존합니다.
애플리케이션 풀이 사용자 지정 재활용 일정(특정 시간 또는 메모리 임계값)을 사용하는 경우 EC2 인스턴스에서 적절한 IIS 설정을 구성하는 배포 패키지의 PowerShell 스크립트를 통해 구현됩니다.
-
- 웹 사이트 바인딩
-
클라이언트가 애플리케이션에 액세스하는 방법을 정의하는 IIS 웹 사이트 바인딩은 다음 Application Load Balancer(ALB) 구성으로 변환됩니다.
-
포트 바인딩은 해당 ALB 리스너 규칙에 매핑됩니다.
-
호스트 헤더 구성은 ALB 라우팅 규칙으로 변환됩니다.
-
SSL 지원 사이트는 AWS 인증서 관리를 위해 Certificate Manager(ACM)를 사용합니다.
-
가상 디렉터리 및 애플리케이션 경로 관리
IIS 가상 디렉터리 및 애플리케이션은 물리적 디렉터리에 대한 URL 경로 매핑을 제공합니다. Elastic Beanstalk는 다음 구문을 통해 이러한 관계를 유지합니다.
- 가상 디렉터리
-
마이그레이션 프로세스는 배포 패키지에 있는 가상 디렉터리의 물리적 경로를 보존합니다.
경로 매핑은 EC2 인스턴스의 IIS 구성에서 구성되므로 마이그레이션 후에도 URL 구조가 그대로 유지됩니다.
- 비 시스템 드라이브 물리적 경로
-
중요
기본적으로 Elastic Beanstalk Windows 환경은 C:\ 드라이브(루트 볼륨)만 프로비저닝합니다. 현재 버전에서는 비 시스템 드라이브(D:\, E:\ 등)에 콘텐츠가 있는 애플리케이션이 마이그레이션에 지원되지 않습니다.
이 eb migrate 명령은 비 시스템 드라이브에 있는 물리적 경로를 자동으로 감지하고 다음 예제와 같은 잠재적 문제에 대해 경고합니다.
ERROR: Detected physical paths on drive D:\ which are not supported in the current version: - D:\websites\intranet - D:\shared\images Migration of content from non-system drives is not supported. Please relocate this content to the C:\ drive before migration. Otherwise, select only those sites that are on C:\.
애플리케이션에 비 시스템 드라이브에 대한 종속성이 있는 경우 마이그레이션 전에 모든 콘텐츠를 C:\ 드라이브에 저장하도록 애플리케이션을 수정해야 합니다.
- 중첩 애플리케이션
-
웹 사이트 아래에 중첩된 애플리케이션은 올바른 경로 구성과 적절한 애플리케이션 풀 할당으로 배포됩니다. 마이그레이션 프로세스는 모든
web.config
설정을 보존하여 애플리케이션별 구성이 클라우드 환경에서 예상대로 계속 작동하도록 합니다.
URL 재작성 및 애플리케이션 요청 라우팅(ARR)
IIS 배포에서 URL 재작성 또는 애플리케이션 요청 라우팅(ARR)을 사용하는 경우는 다음 규칙 및 구성을 통해 이러한 구성을 eb migrate 처리합니다.
- URL 재작성 규칙
-
web.config
파일의 URL 재작성 규칙은 가능한 경우 ALB 라우팅 규칙으로 변환됩니다. 예를 들어 다음 항목은 호스트 헤더 및 경로 패턴을 기반으로 트래픽을 지시하는 ALB 리스너 규칙이 됩니다.<!-- Original IIS URL Rewrite Rule --> <rule name="Redirect to WWW" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^example.com$" /> </conditions> <action type="Redirect" url="http://www.example.com/{R:1}" /> </rule>
- 애플리케이션 요청 라우팅
-
ARR 구성은 EC2 인스턴스에 ARR 기능을 설치하여 보존됩니다. 마이그레이션 프로세스는 다음 작업을 완료합니다.
-
소스 환경과 일치하도록 프록시 설정을 구성합니다.
-
ARR과 연결된 URL 재작성 규칙을 유지합니다.
-
마이그레이션 아티팩트 구조
를 실행하면 필요한 모든 배포 구성 요소가 포함된 구조화된 디렉터리eb migrate가 생성됩니다. 다음 목록은 디렉터리 구조를 설명합니다.
C:\migration_workspace\
└── .\migrations\latest\
└── upload_target\
├── [SiteName].zip # One ZIP per IIS site
├── aws-windows-deployment-manifest.json
└── ebmigrateScripts\
├── site_installer.ps1 # Site installation scripts
├── arr_configuration.ps1 # ARR configuration scripts
├── permission_handler.ps1 # Permission management
└── firewall_config.ps1 # Windows Firewall rules
aws-windows-deployment-manifest.json
파일은 Elastic Beanstalk에 애플리케이션을 배포하는 방법을 지시하는 코어 구성 파일입니다. 다음 예제 구조를 참조하세요.
{ "manifestVersion": 1, "deployments": { "msDeploy": [ { "name": "Primary Site", "parameters": { "appBundle": "DefaultWebSite.zip", "iisPath": "/", "iisWebSite": "Default Web Site" } } ], "custom": [ { "name": "ConfigureARR", "scripts": { "install": { "file": "ebmigrateScripts\\arr_configuration.ps1" }, "uninstall": { "file": "ebmigrateScripts\\noop.ps1" }, "restart": { "file": "ebmigrateScripts\\noop.ps1" } } } ] } }
이 매니페스트는 마이그레이션에 대해 다음과 같은 결과를 보장합니다.
-
애플리케이션이 올바른 IIS 경로에 배포됨
-
사용자 지정 구성이 적용됨
-
사이트별 설정은 보존됩니다.
-
배포 순서 유지