FTP/S를 사용하여 앱에 Azure App Service에 배포Deploy your app to Azure App Service using FTP/S

이 문서는 FTP 또는 FTPS를 사용하여 웹앱, 모바일 앱 백 엔드 또는 API 앱을 Azure App Service에 배포하는 방법을 보여 줍니다.This article shows you how to use FTP or FTPS to deploy your web app, mobile app backend, or API app to Azure App Service.

앱에 대한 FTP/S 끝점은 이미 활성화되어 있습니다.The FTP/S endpoint for your app is already active. FTP/S 배포를 사용하도록 설정하는 데 필요한 구성은 없습니다.No configuration is necessary to enable FTP/S deployment.

FTP 대시보드 열기Open FTP dashboard

Azure Portal에서 앱의 리소스 페이지를 엽니다.In the Azure portal, open your app's resource page.

FTP 대시보드를 열려면 지속적인 업데이트(미리 보기) > FTP > 대시보드를 클릭합니다.To open the FTP dashboard, click Continuous Delivery (Preview) > FTP > Dashboard.

FTP 대시보드 열기

FTP 연결 정보 가져오기Get FTP connection information

FTP 대시보드에서 복사를 클릭하여 FTPS 엔드포인트 및 앱 자격 증명을 복사합니다.In the FTP dashboard, click Copy to copy the FTPS endpoint and app credentials.

FTP 정보 복사

각 앱에 고유하기 때문에 사용자 앱에 배포하려면 앱 자격 증명을 사용하는 것이 좋습니다.It's recommended that you use App Credentials to deploy to your app because it's unique to each app. 단, 사용자 자격 증명을 클릭하는 경우 구독에서 모든 App Service 앱에 대한 FTP/S 로그인에 사용할 수 있는 사용자 수준의 자격 증명을 설정할 수 있습니다.However, if you click User Credentials, you can set user-level credentials that you can use for FTP/S login to all App Service apps in your subscription.

Azure에 파일 배포Deploy files to Azure

  1. FTP 클라이언트(Visual Studio 또는 FileZilla)에서 수집한 연결 정보를 사용하여 앱에 연결합니다.From your FTP client (for example, Visual Studio or FileZilla), use the connection information you gathered to connect to your app.
  2. 파일 및 해당 디렉터리 구조를 Azure의 /site/wwwroot 디렉터리(또는 WebJobs의 경우 /site/wwwroot/App_Data/Jobs/ 디렉터리)에 복사합니다.Copy your files and their respective directory structure to the /site/wwwroot directory in Azure (or the /site/wwwroot/App_Data/Jobs/ directory for WebJobs).
  3. 앱의 URL을 찾아 앱이 제대로 실행하는지 확인합니다.Browse to your app's URL to verify the app is running properly.

참고

Git 기반 배포와 달리, FTP 배포에서는 다음과 같은 배포 자동화를 지원하지 않습니다.Unlike Git-based deployments, FTP deployment doesn't support the following deployment automations:

  • 종속성 복원(예: NuGet, NPM, PIP 및 Composer Automation)dependency restores (such as NuGet, NPM, PIP, and Composer automations)
  • .NET 이진 파일 컴파일compilation of .NET binaries
  • web.config 생성(Node.js 예제 참조)generation of web.config (here is a Node.js example)

로컬 컴퓨터에서 이러한 필요한 파일을 수동으로 생성한 후 앱과 함께 배포합니다.Generate these necessary files manually on your local machine, and then deploy them together with your app.

FTPS 적용Enforce FTPS

보안 향상을 위해 SSL을 통한 FTP만 허용해야 합니다.For enhanced security, you should allow FTP over SSL only. FTP 배포를 사용하지 않을 경우 FTP 및 FTPS를 둘 다 사용하지 않도록 설정할 수도 있습니다.You can also disable both FTP and FTPS if you don't use FTP deployment.

Azure Portal의 앱 리소스 페이지에서 왼쪽 탐색 창에 있는 앱 설정을 선택합니다.In your app's resource page in Azure portal, select App settings in the left navigation.

암호화되지 않은 FTP를 사용하지 않도록 설정하려면 FTPS만을 선택합니다.To disable unencrypted FTP, select FTPS Only. FTP 및 FTPS를 둘 다 완전히 사용하지 않도록 설정하려면 사용 안 함을 선택합니다.To disable both FTP and FTPS entirely, select Disable. 완료되면 저장을 클릭합니다.When finished, click Save. FTPS만 사용하는 경우 웹앱의 SSL 설정 블레이드로 이동하여 TLS 1.1 이상을 적용해야 합니다.If using FTPS Only you must enforce TLS 1.1 or higher by navigating to the SSL settings blade of your web app. TLS 1.0은 FTPS만으로 지원되지 않습니다.TLS 1.0 is not supported with FTPS Only.

FTP/S 사용 안 함

스크립트를 사용하여 자동화Automate with scripts

Azure CLI를 사용한 FTP 배포의 경우 웹앱 만들기 및 FTP를 사용하여 파일 배포(Azure CLI)를 참조하세요.For FTP deployment using Azure CLI, see Create a web app and deploy files with FTP (Azure CLI).

Azure PowerShell을 사용한 FTP 배포의 경우 FTP를 사용하여 웹앱에 파일 업로드(PowerShell)를 참조하세요.For FTP deployment using Azure PowerShell, see Upload files to a web app using FTP (PowerShell).

배포하는 동안 앱에서 진행되는 작업What happens to my app during deployment?

공식적으로 지원되는 모든 배포 방법은 앱의 /site/home/wwwroot 폴더에서 파일을 변경한다는 한 가지 공통점을 갖습니다.All the officially supported deployment methods have one thing in common: they make changes to the files in the /site/home/wwwroot folder of your app. 이러한 파일은 프로덕션 환경에서 실행되는 것과 동일한 파일입니다.These are the same files that are run in production. 따라서 잠겨 있는 파일로 인해 배포가 실패하거나, 모든 파일이 동시에 업데이트되는 것은 아니므로 배포 동안 프로덕션 환경의 앱이 예기치 않은 동작을 보일 수 있습니다.Therefore, the deployment can fail due to locked files, or the app in production may have unpredictable behavior during deployment because not all the files are updated simultaneously. 이러한 문제를 방지하는 몇 가지 다른 방법이 있습니다.There are a few different ways to avoid these issues:

FTP 배포 문제 해결Troubleshoot FTP deployment

FTP 배포 문제를 어떻게 해결할 수 있나요?How can I troubleshoot FTP deployment?

FTP 배포 문제를 해결하는 첫 번째 단계는 런타임 응용 프로그램 문제에서 배포 문제를 격리하는 것입니다.The first step for troubleshooting FTP deployment is isolating a deployment issue from a runtime application issue.

배포 문제가 발생하면 일반적으로 앱에 파일이 배포되지 않거나 잘못된 파일이 배포됩니다.A deployment issue typically results in no files or wrong files deployed to your app. FTP 배포를 조사하거나 대체 배포 경로(예: 소스 제어)를 선택하여 문제를 해결할 수 있습니다.You can troubleshoot by investigating your FTP deployment or selecting an alternate deployment path (such as source control).

런타임 응용 프로그램 문제가 발생하면 일반적으로 앱에 올바른 파일 집합이 배포되기는 하지만 앱이 올바르지 않게 동작합니다.A runtime application issue typically results in the right set of files deployed to your app but incorrect app behavior. 런타임의 코드 동작에 중점을 두고 구체적인 실패 경로를 조사하여 문제를 해결할 수 있습니다.You can troubleshoot by focusing on code behavior at runtime and investigating specific failure paths.

배포 또는 런타임 문제를 확인하려면 배포 문제 및 런타임 문제를 참조하세요.To determine a deployment or runtime issue, see Deployment vs. runtime issues.

FTP를 수행할 수 없으며 코드를 게시할 수 없습니다.I'm not able to FTP and publish my code. 이 문제는 어떻게 해결할 수 있나요?How can I resolve the issue?

올바른 호스트 이름 및 자격 증명을 입력했는지 확인합니다.Check that you've entered the correct hostname and credentials. 또한 컴퓨터의 다음 FTP 포트가 방화벽에 의해 차단되지 않는지 확인합니다.Check also that the following FTP ports on your machine are not blocked by a firewall:

  • FTP 제어 연결 포트: 21FTP control connection port: 21
  • FTP 데이터 연결 포트: 989, 10001-10300FTP data connection port: 989, 10001-10300

수동 모드를 통해 Azure App Service에서 FTP에 연결하려면 어떻게 해야 하나요?How can I connect to FTP in Azure App Service via passive mode?

Azure App Service는 활성 및 수동 모드를 통한 연결을 모두 지원합니다.Azure App Service supports connecting via both Active and Passive mode. 배포 컴퓨터는 일반적으로 방화벽 뒤에 있으므로(운영 체제에서 또는 가정용/회사 네트워크의 일부로) 수동 모드가 선호됩니다.Passive mode is preferred because your deployment machines are usually behind a firewall (in the operating system or as part of a home or business network). WinSCP 설명서의 예제를 참조하세요.See an example from the WinSCP documentation.

다음 단계Next steps

고급 배포 시나리오에 대해서는 Git를 사용하여 Azure에 배포를 시도하세요.For more advanced deployment scenarios, try deploying to Azure with Git. Azure로의 Git 기반 배포를 수행하면 버전 제어, 패키지 복원, MSBuild 등을 수행할 수 있습니다.Git-based deployment to Azure enables version control, package restore, MSBuild, and more.

추가 리소스More Resources