기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에 ASP.NET Web Forms 애플리케이션 배포 AWS
NuGet 패키지 관리
NuGet은 .NET용 코드 패키지를 포함하고 관리하는 리포지토리입니다. 애플리케이션에는 nuget.org
이 문제를 해결하기 위해 관리형 아티팩트(NuGet) 리포지토리를 프로비저닝하여 nuget.org 같은 외부 소스에서 패키지를 다운로드할 수 있습니다. 완전 관리형 아티팩트 리포지토리 서비스 AWS CodeArtifact인를 NuGet 패키지 리포지토리로 사용할 수 있습니다. 자세한 내용은 AWS 블로그 게시물 Using NuGet with AWS CodeArtifact
NuGet 패키지 리포지토리를 사용하도록 애플리케이션을 구성하려면 프로젝트 루트 또는 솔루션 루트 디렉터리에 NuGet.config
파일을 생성합니다. 이 파일은 패키지를 복원할 때 NuGet이 사용해야 하는 패키지 소스를 지정합니다. 다음 예제에서는 CodeArtifact를 사용하도록 NuGet.config
파일을 구성하는 방법을 보여줍니다.
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageRestore> <!-- Allow NuGet to download missing packages --> <add key="enabled" value="True" /> <!-- Automatically check for missing packages during build in Visual Studio --> <add key="automatic" value="True" /> </packageRestore> <packageSources> <add key="MyRepo" value="https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json" /> </packageSources> </configuration>
이 예제에서는를 CodeArtifact 리포지토리의 실제 URLhttps://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json
로 바꿉니다. CodeArtifact 콘솔aws codeartifact get-repository-endpoint
명령을 실행하여이 URL을 찾을 수 있습니다.
중요
-
NuGet.config
파일을 구성하면 동일한 디렉터리 구조 내의 모든 프로젝트에 영향을 미칩니다. 서로 다른 프로젝트에 서로 다른 패키지 소스를 사용하려면 각 프로젝트 또는 솔루션에 대해 별도의NuGet.config
파일을 생성합니다. -
애플리케이션을 빌드하는 인스턴스에 NuGet 패키지 리포지토리(예: CodeArtifact)에 연결하는 데 필요한 권한과 네트워크 액세스 권한이 있는지 확인합니다. 자격 증명 획득에 대한 자세한 내용은 CodeArtifact 설명서의 nuget 또는 dotnet CLI와 함께 CodeArtifact 사용을 참조하세요.
애플리케이션 빌드
레거시 ASP.NET Web Forms 애플리케이션을 로 마이그레이션 AWS할 때 애플리케이션을 빌드하기 위한 중앙 도구로 Microsoft Build Engine(MSBuild)을 계속 사용합니다. MSBuild는 일반적으로 Visual Studio와 번들로 제공되지만 Visual Studio를 설치하지 않고도 Microsoft에서 독립 실행형 MSBuild 실행 파일을 다운로드하여 사용할 수 있습니다. 이 접근 방식은 MSBuild가 설치된 Windows 인스턴스 또는 Docker 컨테이너를 사용할 수 AWS있는 Web Forms 애플리케이션을 빌드할 때 특히 유용합니다.
ASP.NET Web Forms 애플리케이션을 빌드하는 데 필요한 두 가지 주요 단계는 NuGet 패키지 복원과 애플리케이션 빌드입니다. 이러한 단계를 수행하는 방법에 대한 세부 정보는 사용하기로 선택한 CI/CD 도구에 따라 다를 수 있습니다. 예를 들어 AWS CodeBuild를 사용하는 경우 빌드 프로세스는 Docker 컨테이너 내에서 실행됩니다.
NuGet 패키지 복원
애플리케이션을 빌드하기 전에 프로젝트에 필요한 NuGet 패키지를 복원해야 합니다. 프로젝트의 루트 디렉터리에서 실행되는 MSBuild 또는 NuGet 명령줄 인터페이스(CLI) 명령을 사용하여이 작업을 수행할 수 있습니다.
MSBuild 사용:
msbuild -t:restore
NuGet CLI 사용:
nuget restore
MSBuild를 사용하여 빌드
NuGet 패키지를 복원한 후 배포 아티팩트를 생성하는 기본 빌드 명령을 진행할 수 있습니다. 이 명령은 일반적으로 프로젝트 파일, 빌드 구성(예: Release
) 및 빌드된 아티팩트의 출력 디렉터리를 지정합니다.
msbuild <ProjectName>.csproj /p:Configuration=Release /p:OutDir=<OutDir>
MSBuild 옵션에 대한 자세한 내용은 Microsoft 설명서의 MSBuild 명령줄 참조
를 사용하여 ASP.NET 애플리케이션을 빌드하는 방법에 대한 자세한 내용은 AWS 블로그 게시물 Creating CI/CD pipelines for ASP.NET 4.x with AWS CodePipeline and를 AWS Elastic Beanstalk
애플리케이션 배포하기
Web Forms 애플리케이션을 빌드한 후 대상 환경에 아티팩트를 배포합니다 AWS. 대부분의 시나리오에서는 빌드된 아티팩트를 Amazon Simple Storage Service(Amazon S3) 버킷에 압축하여 업로드하여 쉽게 배포 및 배포할 수 있습니다. 지침은 Amazon S3 설명서를 참조하세요.
Amazon EC2 인스턴스에 아티팩트를 배포하기 위한 두 가지 주요 옵션은 수동 및 자동입니다.
수동 배포
이 옵션에는 EC2 인스턴스 사용자 데이터를 사용하여 다음 작업을 수행하는 스크립트를 포함하는 작업이 포함됩니다.
-
IIS(인터넷 정보 서비스) 설치
-
Amazon S3 버킷에서 빌드 아티팩트 가져오기 및 압축 해제
-
IIS 애플리케이션 생성 및 구성
이 접근 방식은 유연성을 제공하지만 수동 개입이 필요하고 애플리케이션이 확장되거나 자주 업데이트되는 경우 관리하기 어려울 수 있습니다.
배포 자동화
권장 접근 방식은 자동 및 반복 가능한 배포에 AWS CodeDeploy
CodePipeline, CodeBuild CodeBuild 및 CodeDeploy를 사용하여 ASP.NET Web Forms 애플리케이션의 CI/CD 파이프라인을 설정하는 방법에 대한 자세한 내용과 예제는 AWS 블로그 게시물 Creating CI/CD pipelines for ASP.NET 4.x with AWS CodePipeline and AWS Elastic Beanstalk
CodeBuild, CodeDeploy 및 CodePipeline과 AWS 서비스 같은를 사용하면 마이그레이션된 ASP.NET Web Forms 애플리케이션의 빌드 및 배포 프로세스를 간소화하고 AWS 인프라에 일관되고 안정적으로 배포할 수 있습니다.
자동 배포에 대한 자세한 내용은 AWS 블로그 게시물 Generating CI/CD Pipelines for Containerized ASP.NET Applications using AWS App2Container