기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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를 통해 구성됩니다.마이그레이션은 아래와 같은 중요 애플리케이션 풀 설정을 보존합니다.
-
프로세스 모델 구성 - ID(ApplicationPoolIdentity, NetworkService 또는 사용자 지정 계정), 유휴 시간 제한 설정, 프로세스 재활용 간격
-
.NET CLR 버전 설정 - 지정한 .NET Framework 버전(v2.0, v4.0 또는 No Managed Code)을 유지해 애플리케이션 호환성을 보장합니다.
-
관리형 파이프라인 모드 – 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 경로에 배포됨
-
사용자 지정 구성 적용
-
사이트별 설정은 그대로 유지
-
배포 순서 유지