폴더, IIS, Azure 또는 다른 대상에 앱 배포
애플리케이션, 서비스 또는 구성 요소를 배포하면 다른 컴퓨터, 디바이스, 서버 또는 클라우드에 설치할 수 있습니다. Visual Studio에서 필요한 배포 유형에 적합한 방법을 선택합니다.
배포 작업에 대한 도움말 보기:
어떤 배포 옵션을 선택해야 할지 잘 모르겠습니까? 나에게 적합한 게시 옵션을 확인해 보세요.
Azure App Service 또는 IIS의 배포 문제에 대한 도움말은 Azure App Service 및 IISASP.NET Core 문제 해결을 참조하세요.
.NET 배포 설정 구성에 대한 도움말은 .NET 배포 설정 구성참조하세요.
이전에 게시 프로필을 만든 경우 새 대상에 배포하려면, 이전에 구성된 프로필의 게시 화면에서 새을 선택하세요. 게시 도구가 나타납니다.
그런 다음 게시 도구에서 배포 옵션을 선택합니다. 게시 옵션에 대한 자세한 내용은 다음 섹션을 참조하세요.
나에게 적합한 게시 옵션은 무엇인가요?
Visual Studio 내에서 애플리케이션을 다음 대상에 직접 게시할 수 있습니다.
새 게시 프로필을 만들 때 다음 그림과 같이 앞의 옵션이 표시됩니다.
보다 일반적인 애플리케이션 배포 옵션에 대한 빠른 둘러보기를 위해서는 배포 첫인상확인하세요.
Azure
Azure를 선택할 때 다음 중에서 선택할 수 있습니다.
- Windows, Linux 또는 Docker 이미지로 실행되는 Azure App Service
- Docker 이미지가 Azure Container Registry에 배포됨
- Azure 가상 머신
Azure Container Apps
Azure Container Apps
Azure App Service에 컨테이너화된 앱을 배포할 수 있지만 Azure Container Apps는 컨테이너화된 앱에 리소스를 보다 효율적으로 사용하도록 최적화되어 있으므로 비용 절감과 Azure Container Apps 사용의 다른 이점이 있습니다.
Azure Container Apps를 선택하는 경우
- 앱 및 서비스는 컨테이너 또는 여러 컨테이너에서 실행됩니다.
- 고가용성 및 유연한 크기 조정이 필요합니다.
- 앱은 일반적으로 Azure Functions구현되는 모듈식 단일 작업 서비스 집합으로 분할된 기능을 사용하여 마이크로 서비스 아키텍처 패턴에 적합합니다. 예를 들어 불연속 작업으로 실행되거나, 이벤트에 응답하거나, 큐 또는 트리거의 요청을 처리하는 단일 작업 서비스 집합입니다.
- 컨테이너 오케스트레이션(Kubernetes)의 이점을 원하지만 Kubernetes를 직접 관리하지는 않습니다. 컨테이너화된 서비스를 지원하는 Kubernetes 인프라를 자세히 제어하려면 AKS(Azure Kubernetes Service)
사용하는 것이 좋습니다.
Azure App Service
azure App Service
포함된 App Service의 컴퓨팅 성능은 가격 책정 계층 또는 계획을 선택함으로써 결정됩니다. 가격 책정 계층을 변경하지 않고 여러 웹앱(및 기타 앱 유형)이 동일한 App Service를 공유하도록 할 수 있습니다. 예를 들어 동일한 App Service에서 개발, 스테이징 및 프로덕션 웹앱을 함께 호스트할 수 있습니다.
Azure App Service를 선택하는 경우
- 인터넷을 통해 액세스할 수 있는 웹 애플리케이션을 배포하려고 합니다.
- 다시 배포할 필요 없이 수요에 따라 웹 애플리케이션의 크기를 자동으로 조정하려고 합니다.
- 서버 인프라(소프트웨어 업데이트 포함)를 유지 관리하지 않으려는 경우
- 웹 애플리케이션을 호스트하는 서버에는 컴퓨터 수준 사용자 지정이 필요하지 않습니다.
사용자 고유의 데이터 센터 또는 다른 온-프레미스 컴퓨터에서 Azure App Service를 사용하려는 경우 Azure Stack사용하여 사용할 수 있습니다.
App Service에 게시하는 방법에 대한 자세한 내용은 다음을 참조하세요.
- 빠른 시작 - Azure App Service에 게시
- 빠른 시작 가이드 - ASP.NET Core를 Linux에 게시하기.
- ASP.NET Core 앱을 Azure App Service에 게시하기
- Azure App Service 및 IIS에서 ASP.NET Core 문제 해결.
Azure WebJobs
Azure WebJobs는 App Service를 통해 지원됩니다. Visual Studio를 사용하여 WebJobs를 개발 및 배포하는 방법을 참조하십시오.
Azure WebJobs를 선택하는 경우
- 작업자 프로세스, 사용자 상호 작용 없이 실행할 수 있는 계산이 있습니다.
- 작업은 주문형이거나, 이벤트에 의해 트리거되거나, 연속됩니다.
- 작업은 Windows 또는 Linux의 .NET Core(Visual Studio 17.12 이상)에서 실행됩니다.
유사한 시나리오에 대한 또 다른 옵션은 Azure Functions입니다. 적합한 옵션을 선택하려면 Azure의 올바른 통합 및 자동화 서비스 선택을 참조하세요.
Azure Container Registry
Azure Container Registry 은 모든 유형의 컨테이너 배포를 위해 Docker 컨테이너 이미지 및 아티팩트를 빌드, 저장, 관리할 수 있는 개인 레지스트리를 제공합니다.
Azure Container Registry를 선택하는 경우
- 기존 Docker 컨테이너 개발 및 배포 파이프라인이 있는 경우
- Azure에서 Docker 컨테이너 이미지를 빌드하려는 경우
자세한 내용은 다음을 참조하세요.
Azure Virtual Machine
Azure 가상 머신(VM)은 클라우드에서 다양한 컴퓨팅 리소스를 생성하고 관리할 수 있습니다. VM의 모든 소프트웨어 및 업데이트에 대한 책임을 져야 애플리케이션에서 필요한 만큼 사용자 지정할 수 있습니다. 원격 데스크톱을 통해 직접 가상 머신에 액세스할 수 있으며, 각 가상 머신은 원하는 만큼 할당된 IP 주소를 유지 관리합니다.
가상 머신에서 호스트되는 애플리케이션을 확장하려면 수요에 따라 추가 VM을 생성한 다음, 필요한 소프트웨어를 배포합니다. 이 추가 제어 수준을 사용하면 다른 글로벌 지역에서 다르게 크기를 조정할 수 있습니다. 예를 들어 애플리케이션이 다양한 지역 사무소의 직원에게 서비스를 제공하는 경우 해당 지역의 직원 수에 따라 VM을 확장하여 비용을 절감할 수 있습니다.
자세한 내용은 Visual Studio에서 사용자 지정 옵션을 사용하여 배포 대상으로 사용할 수 있는 Azure App Service, Azure Virtual Machines 및 기타 Azure 서비스 간의 자세한 비교 참조하세요.
Azure Virtual Machines를 선택하는 경우
- 할당된 IP 주소의 수명을 완전히 제어하여 인터넷을 통해 액세스할 수 있는 웹 애플리케이션을 배포하려고 합니다.
- 특수 데이터베이스 시스템, 특정 네트워킹 구성, 디스크 파티션 등과 같은 추가 소프트웨어를 포함하는 서버의 컴퓨터 수준 사용자 지정이 필요합니다.
- 웹 애플리케이션의 크기 조정을 세부적으로 제어하려고 합니다.
- 당신의 애플리케이션을 호스팅하는 서버에 직접 액세스해야 하는 다른 이유가 있습니다.
사용자 고유의 데이터 센터 또는 다른 온-프레미스 컴퓨터에서 Azure Virtual Machines를 사용하려는 경우 Azure Stack사용하여 사용할 수 있습니다.
Docker 컨테이너 레지스트리
애플리케이션이 Docker를 사용하는 경우 컨테이너화된 애플리케이션을 Docker 컨테이너 레지스트리에 게시할 수 있습니다.
Docker Container Registry를 선택하는 경우
- 컨테이너화된 애플리케이션을 배포하려고 합니다.
자세한 내용은 다음을 참조하세요.
DevTest Labs
Azure DevTest Labs에 배포하려면 게시 도구에서 폴더 배포 옵션을 사용합니다.
전체 단계는 Azure DevTest Labs VM테스트를 위한
폴더
파일 시스템에 배포한다는 것은 애플리케이션의 파일을 사용자 컴퓨터의 특정 폴더에 복사하는 것을 의미합니다. 폴더에 배포하는 것은 테스트 목적으로 사용되거나 컴퓨터가 서버를 실행하는 경우 제한된 수의 사용자가 사용할 애플리케이션을 배포하는 데 가장 자주 사용됩니다. 대상 폴더가 네트워크에서 공유되는 경우 파일 시스템에 배포하면 특정 서버에 배포할 수 있는 다른 사용자가 웹 애플리케이션 파일을 사용할 수 있습니다.
Visual Studio 2019 16.8부터 폴더 대상에는 ClickOnce를 사용하여 .NET Windows 애플리케이션을 게시하는 기능이 포함됩니다.
ClickOnce를 사용하여 .NET Windows 데스크톱 프로젝트(.NET Core 3.1, .NET 5 이상)를 게시하려는 경우 ClickOnce사용하여 .NET Windows 애플리케이션 배포
서버를 실행하는 모든 로컬 컴퓨터는 구성 방법 및 연결된 네트워크에 따라 인터넷 또는 인트라넷을 통해 애플리케이션을 사용할 수 있도록 할 수 있습니다. (컴퓨터를 인터넷에 직접 연결하는 경우 특히 외부 보안 위협으로부터 보호해야 합니다.) 이러한 컴퓨터를 관리하기 때문에 소프트웨어 및 하드웨어 구성을 완벽하게 제어할 수 있습니다.
어떤 이유로든(예: 머신 액세스) Azure App Service 또는 Azure Virtual Machines와 같은 클라우드 서비스를 사용할 수 없는 경우 사용자 고유의 데이터 센터에서 Azure Stack 사용할 수 있습니다. Azure Stack을 사용하면 모든 것을 온-프레미스에 유지하면서도 Azure App Service 및 Azure Virtual Machines를 통해 컴퓨팅 리소스를 관리하고 사용할 수 있습니다.
파일 시스템 배포를 선택하는 경우
애플리케이션을 다른 사용자가 다른 서버에 배포할 수 있도록 파일 공유에만 배포하면 됩니다.
ClickOnce를 사용하여 .NET Windows 애플리케이션을 배포하려고 합니다.
로컬 테스트 배포만 필요합니다.
애플리케이션 파일을 다른 배포 대상으로 보내기 전에 독립적으로 검사하고 수정하려고 합니다.
자세한 내용은 빠른 시작 -로컬 폴더에 배포를 참조하세요.
ClickOnce를 사용하여 .NET Windows 애플리케이션을 배포하는 방법에 대한 자세한 내용은 ClickOnce사용하여 .NET Windows 애플리케이션 배포를 참조하세요.
설정을 선택하는 추가 도움말은 다음을 참조하세요.
FTP/FTPS 서버
FTP/FTPS 서버를 사용하면 Azure 이외의 서버에 애플리케이션을 배포할 수 있습니다. 다른 클라우드 서비스를 포함하여 액세스 권한이 있는 파일 시스템 또는 다른 서버(인터넷 또는 인트라넷)에 배포할 수 있습니다. 웹 배포(파일 또는 .ZIP) 및 FTP에서 작동할 수 있습니다.
FTP/FTPS 서버를 선택할 때 Visual Studio는 프로필 이름을 묻는 메시지를 표시한 다음 대상 서버 또는 위치, 사이트 이름 및 자격 증명을 포함한 추가 연결 정보를 수집합니다. 설정 탭에서 다음 동작을 제어할 수 있습니다.
- 배포하려는 구성입니다.
- 대상에서 기존 파일을 제거할지 여부입니다.
- 게시하는 동안 미리 컴파일할지 여부입니다.
- App_Data 폴더의 파일을 배포에서 제외할지 여부입니다.
Visual Studio에서 여러 FTP/FTPS 배포 프로필을 만들 수 있으므로 다른 설정으로 프로필을 관리할 수 있습니다.
FTP/FTPS 서버 배포를 선택하는 경우
- URL을 통해 액세스할 수 있는 Azure 이외의 공급자에서 클라우드 서비스를 사용하고 있습니다.
- Visual Studio 내에서 사용하는 자격 증명 또는 Azure 계정에 직접 연결된 자격 증명 이외의 자격 증명을 사용하여 배포하려고 합니다.
- 배포할 때마다 대상에서 파일을 삭제하려고 합니다.
웹 서버(IIS)
IIS 웹 서버를 사용하면 Azure 이외의 웹 서버에 애플리케이션을 배포할 수 있습니다. 다른 클라우드 서비스를 포함하여 액세스 권한이 있는 IIS 서버(인터넷 또는 인트라넷)에 배포할 수 있습니다. 웹 배포나 웹 배포 패키지와 함께 사용할 수 있습니다.
IIS 웹 서버를 선택할 때 Visual Studio에서 프로필 이름을 묻는 메시지를 표시한 다음 대상 서버 또는 위치, 사이트 이름 및 자격 증명을 포함한 추가 연결 정보를 수집합니다. 설정 탭에서 다음 동작을 제어할 수 있습니다.
- 배포하려는 구성입니다.
- 대상에서 기존 파일을 제거할지 여부입니다.
- 게시하는 동안 미리 컴파일할지 여부입니다.
- App_Data 폴더의 파일을 배포에서 제외할지 여부입니다.
Visual Studio에서 여러 IIS 웹 서버 배포 프로필을 만들 수 있으므로 다른 설정으로 프로필을 관리할 수 있습니다.
웹 서버(IIS) 배포를 선택하는 경우
- IIS를 사용하여 URL을 통해 액세스할 수 있는 사이트 또는 서비스를 게시합니다.
- Visual Studio 내에서 사용하는 자격 증명 또는 Azure 계정에 직접 연결된 자격 증명 이외의 자격 증명을 사용하여 배포하려고 합니다.
- 배포할 때마다 대상에서 파일을 삭제하려고 합니다.
자세한 내용은 퀵스타트 - 웹 사이트에 배포을 참조하세요.
IIS의 ASP.NET Core 문제 해결에 대한 도움말은 Azure App Service 및 IISASP.NET Core 문제 해결을 참조하세요.
프로필 가져오기
IIS 또는 Azure App Service에 게시할 때 프로필을 가져올 수 있습니다. 게시 설정 파일(*.publishsettings)를 사용하여 배포를 구성할 수 있습니다. 게시 설정 파일은 IIS 또는 Azure App Service에서 만들거나 수동으로 만든 다음 Visual Studio로 가져올 수 있습니다.
게시 설정 파일을 사용하면 배포 구성이 간소화되고 팀 환경에서 각 배포 프로필을 수동으로 구성하는 것보다 더 효과적으로 작동합니다.
가져오기 프로필을 선택해야 하는 경우
- IIS에 게시하고 있으며 배포 구성을 간소화하려고 합니다.
- IIS 또는 Azure App Service에 게시하고 다시 사용하거나 팀 구성원이 동일한 서비스에 게시할 수 있도록 배포 구성 속도를 높이려고 합니다.
자세한 내용은 다음을 참조하세요.
.NET 배포 설정 구성
설정을 선택하는 추가 도움말은 다음을 참조하세요.
다음 단계
자습서:
- 게시 도구 사용하여 .NET Core 애플리케이션 배포
- ASP.NET 코어 앱을 Azure에 게시하기
- Visual C++에서의 배포
- UWP 앱 배포
- 웹 배포 사용하여 Azure에 Node.js 앱 게시