FTP/S를 사용하여 앱에 Azure App Service에 배포

이 문서에서는 FTP 또는 FTPS를 사용하여 웹앱, 모바일 앱 백 엔드 또는 API 앱을 Azure 앱 서비스에 배포하는 방법을 보여 줍니다.

앱의 FTP/S 엔드포인트가 이미 활성화되어 있습니다. FTP/S 배포를 사용하도록 설정하려면 구성이 필요하지 않습니다.

참고 항목

FTP 기본 인증을 사용하지 않도록 설정하면 FTP/S 배포가 작동하지 않으며 앱의 배포 센터에서 FTP 자격 증명을 보거나 구성할 수 없습니다.

배포 자격 증명 가져오기

  1. Azure App Service의 배포 자격 증명 구성의 지침에 따라 애플리케이션 범위 자격 증명을 복사하거나 사용자 범위 자격 증명을 설정합니다. 자격 증명을 사용하여 앱의 FTP/S 엔드포인트에 연결할 수 있습니다.

  2. 선택한 자격 증명 범위에 따라 다음 형식으로 FTP 사용자 이름을 만듭니다.

    애플리케이션 범위 사용자 범위
    <app-name>\$<app-name> <app-name>\<deployment-user>

    App Service에서 FTP/S 엔드포인트는 앱 간에 공유됩니다. 사용자 범위 자격 증명은 특정 리소스에 연결되지 않으므로 위와 같이 사용자 범위 사용자 이름 앞에 앱 이름을 추가해야 합니다.

FTP/S 엔드포인트 가져오기

배포 자격 증명(배포 센터>FTP 자격 증명)을 복사한 앱의 동일한 관리 페이지에서 FTPS 엔드포인트복사합니다.

Azure에 파일 배포

  1. FTP 클라이언트(예: Visual Studio, Cyberduck 또는 WinSCP)에서 수집한 연결 정보를 사용하여 앱에 연결합니다.
  2. 파일 및 해당 디렉터리 구조를 Azure의 /site/wwwroot 디렉터리 (또는 WebJobs의 /site/wwwroot/App_Data/Jobs/ 디렉터리)에 복사합니다.
  3. 앱의 URL을 찾아 앱이 제대로 실행하는지 확인합니다.

참고 항목

Git 기반 배포 및 Zip 배포와 달리 FTP 배포는 다음과 같은 빌드 자동화를 지원하지 않습니다.

  • 종속성 복원(예: NuGet, NPM, PIP 및 작성기 자동화)
  • .NET 이진 파일 컴파일
  • web.config 생성(다음은 Node.js 예제입니다).

로컬 컴퓨터에서 이러한 필요한 파일을 수동으로 생성한 다음 앱과 함께 배포합니다.

FTPS 적용

보안 강화를 위해 TLS/SSL을 통한 FTP만 허용해야 합니다. FTP 배포를 사용하지 않는 경우 FTP와 FTPS를 모두 사용하지 않도록 설정할 수도 있습니다.

  1. Azure Portal의 앱 리소스 페이지에서 왼쪽 탐색 영역에서 구성>일반 설정을 선택합니다.

  2. 암호화되지 않은 FTP를 사용하지 않으려면 FTP 상태에서 FTPS만을 선택합니다. FTP와 FTPS를 모두 사용하지 않도록 설정하려면 [사용 안 함]을 선택합니다. 완료되면 저장을 선택합니다. FTPS만 사용하는 경우 웹앱의 TLS/SSL 설정 페이지로 이동하여 TLS 1.2 이상을 적용해야 합니다. TLS 1.0 및 1.1은 FTPS에서 지원되지 않습니다.

    Disable FTP/S

배포하는 동안 내 앱은 어떻게 되나요?

공식적으로 지원되는 모든 배포 방법은 앱의 /home/site/wwwroot 폴더에서 파일을 변경합니다. 이러한 파일은 앱을 실행하는 데 사용됩니다. 따라서 잠긴 파일로 인해 배포가 실패할 수 있습니다. 모든 파일이 동시에 업데이트되는 것은 아니기 때문에 배포하는 동안 앱이 예상과 다르게 동작할 수도 있습니다. 이러한 동작은 고객용 앱에는 바람직하지 않습니다. 이러한 문제를 방지하는 다음과 같은 몇 가지 방법이 있습니다.

FTP 배포 문제 해결

FTP 배포 문제를 해결하려면 어떻게 해야 하나요?

FTP 배포 문제를 해결하기 위한 첫 번째 단계는 런타임 애플리케이션 문제에서 배포 문제를 격리하는 것입니다.

일반적으로 배포 문제로 인해 앱에 파일이나 잘못된 파일이 배포되지 않습니다. FTP 배포를 조사하거나 대체 배포 경로(예: 소스 제어)를 선택하여 문제를 해결할 수 있습니다.

런타임 애플리케이션 문제는 일반적으로 앱에 배포된 올바른 파일 집합을 발생하지만 잘못된 앱 동작이 발생합니다. 런타임에 코드 동작에 초점을 맞추고 특정 오류 경로를 조사하여 문제를 해결할 수 있습니다.

배포 또는 런타임 문제를 확인하려면 배포 문제 및 런타임 문제를 참조하세요.

내 코드를 FTP 및 게시할 수 없습니다. 이 문제는 어떻게 해결할 수 있나요?

올바른 호스트 이름자격 증명을 입력했는지 확인합니다. 또한 컴퓨터의 다음 FTP 포트가 방화벽에 의해 차단되지 않는지 확인합니다.

  • FTP 제어 연결 포트: 21, 990
  • FTP 데이터 연결 포트: 989, 10001-10300

수동 모드를 통해 Azure 앱 Service에서 FTP에 연결하려면 어떻게 해야 하나요?

Azure 앱 Service는 활성 모드와 수동 모드를 통한 연결을 지원합니다. 배포 컴퓨터는 일반적으로 방화벽 뒤에 있기 때문에 수동 모드를 사용하는 것이 좋습니다(운영 체제 또는 홈 또는 비즈니스 네트워크의 일부). WinSCP 설명서의 예제를 참조하세요.

명시적 암호화를 사용하여 FTPS를 통해 연결을 시도할 때 연결이 실패하는 이유는 무엇인가요?

FTPS를 사용하면 명시적 또는 암시적 방식으로 TLS 보안 연결을 설정할 수 있습니다.

  • 암시적 암호화를 사용하여 연결하는 경우 포트 990을 통해 연결이 설정됩니다.
  • 명시적 암호화를 사용하여 연결하는 경우 포트 21을 통해 연결이 설정됩니다.

사용하는 URL 형식은 연결 성공에 영향을 줄 수 있으며 사용하는 클라이언트 애플리케이션에 따라 달라집니다. 포털은 URL을 로 ftps://표시하지만 다음 사항에 유의합니다.

  • 연결한 URL이 시작되면 연결이 포트 21에 있음을 의미합니다 ftp://.
  • 이 연결로 ftps://시작하는 경우 연결은 암시적이고 포트 990에서 암시적입니다.

명시적 암호화를 수행하려는 경우에도 연결에 실패하므로 포트 21에 ftps:// 연결하려고 시도하고 사용하는 것과 같이 둘 다 혼합하지 않도록 합니다. 이는 AUTH 메서드 이전에 일반 FTP 연결로 시작하는 명시적 연결 때문입니다.

Azure 앱 Service를 배포하는 데 사용된 메서드를 확인하려면 어떻게 해야 하나요?

애플리케이션 설정을 검사 앱이 배포된 방법을 확인할 수 있습니다. 외부 패키지 URL을 사용하여 앱을 배포한 경우 URL 값이 WEBSITE_RUN_FROM_PACKAGE 있는 애플리케이션 설정에 설정이 표시됩니다. 또는 zip 배포를 사용하여 배포된 경우 값1이 있는 설정이 WEBSITE_RUN_FROM_PACKAGE 표시됩니다. Azure DevOps를 사용하여 앱을 배포한 경우 Azure DevOps 포털에 배포 기록이 표시됩니다. Azure Functions 핵심 도구를 사용하는 경우 Azure Portal에 배포 기록이 표시됩니다.

추가 리소스