Azure App Service에서 앱 백업 및 복원

Azure App Service에서 앱 백업을 쉽게 복원할 수 있습니다. 요청 시 사용자 지정 백업을 만들거나 예약된 사용자 지정 백업을 구성할 수도 있습니다. 새 앱 또는 슬롯으로 복원하여 기존 앱을 덮어쓰면 백업을 복원할 수 있습니다. 이 문서에서는 백업을 복원하고 사용자 지정 백업을 만드는 방법을 보여 줍니다.

백업 및 복원은 기본, 표준, 프리미엄격리 계층에서 지원됩니다. 기본 계층의 경우 프로덕션 슬롯만 백업 및 복원할 수 있습니다. 더 높은 계층을 사용하도록 App Service 계획을 확장하는 방법에 대한 자세한 내용은 Azure에서 앱 강화를 참조하세요.

참고 항목

App Service Environment의 경우:

  • 자동 백업은 다른 App Service 환경이 아닌 App Service 환경 자체 내의 대상 앱으로 복원할 수 있습니다.
  • 사용자 지정 백업은 App Service Environment v2에서 App Service Environment v3로와 같은 다른 App Service 환경의 대상 앱으로 복원할 수 있습니다.
  • 원본 앱과 동일한 OS 플랫폼의 대상 앱으로 백업을 복원할 수 있습니다.

백업 및 복원 및 재해 복구

플랫폼 백업 및 복원 지침 재해 복구 지침
App Service Web Apps
(무료 및 공유 가격 책정 계층)
무료 또는 공유 계층에 배포된 웹 애플리케이션이 있고 이러한 웹앱에 대한 백업 및 복원 기능에 대한 액세스 권한이 필요한 경우 기본 계층 이상으로 스케일 업합니다. 지역 재해가 발생한 동안에는 다른 Azure 지역에서 App Service 리소스를 다시 온라인 상태로 만듭니다.

2025년 3월 31일부터 App Service 애플리케이션은 지역 전체 오류 복구 문서에 설명된 대로 Azure 지역의 재해 중에는 재해 복구 모드로 전환되지 않습니다. 지역 재해 중 가동 중지 시간 및 데이터 손실을 방지하기 위해 일반적으로 사용되는 재해 복구 기술을 구현하는 것이 좋습니다.
App Service Web Apps
(기본\표준\프리미엄 가격 책정 계층)
Azure App Service에서 주문형 사용자 지정 백업을 만들거나 자동 백업을 활용할 수 있습니다. 새 앱 또는 슬롯으로 복원하여 기존 앱을 덮어쓰면 백업을 복원할 수 있습니다.

자세한 내용은 Azure App Service 앱 백업 및 복원을 참조하세요.
지역 재해 발생 시 다른 Azure 지역에서 App Service 리소스를 다시 온라인 상태로 만드는 방법에 대한 현재 지침은 지역 전체 오류에서 복구 - Azure App Service에서 확인할 수 있습니다.

2025년 3월 31일부터 Azure App Service 웹 애플리케이션은 지역 전체 오류 복구 문서에 설명된 대로 Azure 지역의 재해 중에는 재해 복구 모드로 더 이상 전환되지 않습니다. 지역 재해가 있는 경우 웹앱의 기능 또는 데이터 손실을 방지하기 위해 일반적으로 사용되는 재해 복구 기술을 구현하는 것이 좋습니다.
App Service Environment(V2 및 V3) Azure App Service Environment에서 주문형 사용자 지정 백업을 만들거나 자동 백업을 활용할 수 있습니다. 자동 백업은 다른 ASE가 아닌 동일한 ASE 내의 대상 앱으로 복원할 수 있습니다. 사용자 지정 백업은 다른 ASE의 대상 앱으로 복원할 수 있습니다(예: V2 ASE에서 V3 ASE로). 원본 앱과 동일한 OS 플랫폼의 대상 앱으로 백업을 복원할 수 있습니다.

자세한 내용은 Azure App Service 앱 백업 및 복원을 참조하세요.
일반적으로 사용되는 재해 복구 기술을 사용하여 App Service Environment에 배포된 웹앱에 대한 재해 복구 지침을 구현하는 것이 좋습니다.
Azure Functions(전용) Azure Functions에서 주문형 사용자 지정 백업을 만들거나 자동 백업을 활용할 수 있습니다. 새 앱 또는 슬롯으로 복원하여 기존 앱을 덮어쓰면 백업을 복원할 수 있습니다.

자세한 내용은 Azure App Service 앱 백업 및 복원을 참조하세요.
지역 재해 발생 시 다른 Azure 지역에서 Azure Functions 앱(전용) 리소스를 다시 온라인 상태로 만드는 방법에 대한 현재 지침은 지역 전체 오류에서 복구 - Azure App Service에서 확인할 수 있습니다.

2025년 3월 31일부터 App Service 애플리케이션은 지역 전체 오류 복구 문서에 설명된 대로 Azure 지역의 재해 중에는 재해 복구 모드로 전환되지 않습니다. 대신 Azure Functions 지리적 재해 복구를 구현합니다.

또한 Azure Functions 전용으로 일반적으로 사용되는 재해 복구 기술을 참조할 수도 있습니다.
Azure Functions 소비 및 프리미엄 사용량 및 프리미엄 요금제에 배포된 Azure Functions는 사용자 지정 및 자동 백업에 대한 액세스를 제공하지 않습니다. Function 앱의 콘텐츠는 Azure Storage 계정에 있습니다. Azure Storage 중복도 옵션을 사용하여 중단 중에 스토리지 계정이 가용성 및 내구성 목표를 충족하는지 확인합니다.

Azure Portal 편집기를 사용해 함수를 만들었다면 기존 함수 앱 프로젝트를 .zip 파일로 다운로드할 수도 있습니다.
Azure Functions 지리적 재해 복구 및 안정성을 구현하는 것이 좋습니다.

자동 백업과 사용자 지정 백업 비교

App Service에는 두 가지 유형의 백업이 있습니다. 지원되는 가격 책정 계층에 있는 경우 앱에 대한 자동 백업이 정기적으로 수행됩니다. 사용자 지정 백업은 초기 구성이 필요하며 요청 시 또는 일정에 따라 수행할 수 있습니다. 다음 표에서는 두 유형의 차이점을 보여 줍니다.

기능 자동 백업 사용자 지정 백업
가격 책정 계층 기본, 표준, 프리미엄, 격리. 기본, 표준, 프리미엄, 격리.
구성이 필요함 아니요. 예.
백업 크기 30GB 10GB, 이 중 4GB는 연결된 데이터베이스일 수 있음
연결된 데이터베이스 백업되지 않음 백업할 수 있는 연결된 데이터베이스: SQL Database, Azure Database for MySQL, Azure Database for PostgreSQL, 앱 내 MySQL
스토리지 계정 필요 아니요. 예.
Backup 주기 시간당, 구성할 수 없음 구성 가능.
유지 30일, 구성할 수 없음
- 1~3일: 한 시간마다 백업이 유지됩니다.
- 4-14일: 매 3시간 백업이 유지됩니다.
- 15-30일: 매6시간 백업이 유지됩니다.
0~30일 또는 무기한
다운로드 아니요. 예, Azure Storage Blob으로
부분 백업 지원되지 않습니다. 지원.
VNet을 통해 백업 지원되지 않습니다. 지원.

백업 복원

참고 항목

App Service는 스냅샷을 복원하는 동안 대상 앱 또는 대상 슬롯을 중지합니다. 프로덕션 앱의 가동 중지 시간을 최소화하려면 먼저 백업을 배포 슬롯으로 복원한 다음, 프로덕션으로 교환합니다.

  1. Azure Portal에 있는 앱 관리 페이지의 왼쪽 메뉴에서 백업을 선택합니다. 백업 페이지에 앱에 대한 모든 자동 및 사용자 지정 백업과 각 백업의 상태가 나열됩니다.

    Screenshot that shows how to open the backups page.

  2. 복원 링크를 선택하여 복원할 자동 백업 또는 사용자 지정 백업을 선택합니다.

    Screenshot that shows how to select the restore link.

  3. 백업 세부 정보 섹션이 자동으로 채워집니다.

  4. 대상 선택에서 복원 대상을 지정합니다. 새 앱으로 복원하려면 App Service 상자 아래에서 새로 만들기를 선택합니다. 새 배포 슬롯으로 복원하려면 배포 슬롯 상자 아래에서 새로 만들기를 선택합니다.

    기존 슬롯을 선택하면 해당 파일 시스템의 모든 기존 데이터를 지우고 덮어씁니다. 프로덕션 슬롯의 이름은 앱 이름과 같습니다.

  5. 고급 옵션 아래에서 사이트 구성을 복원하도록 선택할 수 있습니다.

  6. 복원을 선택합니다.

사용자 지정 백업 만들기

  1. Azure Portal에 있는 앱 관리 페이지의 왼쪽 메뉴에서 백업을 선택합니다.

    Screenshot that shows how to open the backups page.

  2. 백업 페이지의 위쪽에서 사용자 지정 백업 구성을 선택합니다.

  3. 스토리지 계정에서 기존 스토리지 계정(동일한 구독에 있음)을 선택하거나 새로 만들기를 선택합니다. 컨테이너에서도 동일한 작업을 수행합니다.

    연결된 데이터베이스를 백업하려면 다음: 고급>데이터베이스 포함을 차례로 선택하고 백업할 데이터베이스를 선택합니다.

    참고 항목

    지원되는 데이터베이스가 이 목록에 표시되려면 해당 연결 문자열이 앱에 대한 구성 페이지의 연결 문자열 섹션에 있어야 합니다.

    앱 내 MySQL 데이터베이스는 구성을 사용하지 않고 항상 백업됩니다. 앱 내 MySQL 데이터베이스에 대한 설정을 수동으로 만드는 경우(예: 연결 문자열 추가) 백업이 제대로 작동하지 않을 수 있습니다.

  4. 구성을 선택합니다.

    스토리지 계정과 컨테이너가 구성되면 언제든지 요청 시 백업을 시작할 수 있습니다. 요청 시 백업은 무기한 보존됩니다.

  5. 백업 페이지의 위쪽에서 지금 백업을 선택합니다.

    Screenshot that shows how to make an on-demand backup.

    사용자 지정 백업이 진행률 표시기와 함께 목록에 표시됩니다. 오류로 인해 실패하면 줄 항목을 선택하여 오류 메시지를 볼 수 있습니다.

예약된 사용자 지정 백업 구성

  1. 사용자 지정 백업 구성 페이지에서 일정 설정을 선택합니다.

  2. 원하는 대로 백업 일정을 구성하고, 구성을 선택합니다.

연결된 데이터베이스 백업 및 복원

사용자 지정 백업에는 연결된 데이터베이스가 포함될 수 있습니다(Azure Virtual Network 통해 백업이 구성된 경우 제외). 백업에 연결된 데이터베이스가 포함되어 있는지 확인하려면 다음을 수행합니다.

  1. 연결된 데이터베이스가 지원되는지 확인합니다.
  2. 데이터베이스를 가리키는 연결 문자열을 만듭니다. 앱 구성에 유효한 연결 문자열이 있는 경우 데이터베이스는 앱에 "연결"된 것으로 간주됩니다.
  3. 사용자 지정 백업 만들기의 단계에 따라 고급 탭에서 연결된 데이터베이스를 선택합니다.

사용자 지정 백업에 포함된 데이터베이스를 복원하려면:

  1. 백업 복원의 단계를 따릅니다.
  2. 고급 옵션에서 데이터베이스 포함을 선택합니다.

문제 해결 정보는 내 연결된 데이터베이스가 백업되지 않는 이유를 참조하세요.

Azure Virtual Network를 통해 백업 및 복원

사용자 지정 백업을 사용하면 다음 요구 사항이 충족되는 경우 앱의 파일 및 구성 데이터를 방화벽으로 보호된 스토리지 계정에 백업할 수 있습니다.

Azure Virtual Network 백업 및 복원하려면:

  1. 사용자 지정 백업을 구성할 때 가상 네트워크 통합을 통해 백업/복원을 선택합니다.
  2. 구성을 선택하여 설정을 저장합니다.

검사 상자가 표시되지 않거나 검사box가 비활성화된 경우 리소스가 요구 사항을 충족하는지 확인합니다.

구성이 저장되면 가상 네트워크를 통해 수동, 예약된 백업 또는 복원이 이루어집니다. 앱, 가상 네트워크 또는 앱이 가상 네트워크를 통해 스토리지 계정에 액세스하지 못하도록 하는 스토리지 계정을 변경하면 백업 또는 복원 작업이 실패합니다.

부분 백업 구성

부분 백업은 사용자 지정 백업(자동 백업이 아님)에 대해 지원됩니다. 앱의 모든 항목을 백업하지 않으려는 경우가 있습니다. 다음은 몇 가지 예입니다.

폴더와 파일이 이후 백업에 저장되지 않도록 제외하려면 _backup.filter 파일을 앱의 %HOME%\site\wwwroot 폴더에 만듭니다. 이 파일에서 제외할 파일 및 폴더 목록을 지정합니다.

https://<app-name>.scm.azurewebsites.net/DebugConsole로 이동하여 파일에 액세스할 수 있습니다. 메시지가 표시되면 Azure 계정에 로그인합니다.

백업에서 제외할 폴더를 식별합니다. 예를 들어 강조 표시된 폴더와 파일을 필터링하려고 합니다.

Screenshot that shows files and folders to exclude from backups.

_backup.filter이라는 파일을 만들고 앞의 목록을 파일에 넣지만 %HOME% 루트를 제거합니다. 한 줄당 하나의 디렉터리 또는 파일을 나열합니다. 따라서 파일의 콘텐츠는 다음과 여야 합니다.

\site\wwwroot\Images\brand.png
\site\wwwroot\Images\2014
\site\wwwroot\Images\2013

ftp 또는 다른 방법을 사용하여 사이트의 디렉터리에 파일을 D:\home\site\wwwroot\ 업로드 _backup.filter 합니다. 원하는 경우 Kudu DebugConsole 를 사용하여 파일을 직접 만들고 거기에 콘텐츠를 삽입할 수 있습니다.

요청 시 사용자 지정 또는 예약된 사용자 지정과 같이 평소와 동일한 방식으로 백업을 실행합니다. _backup.filter에 지정된 모든 파일 및 폴더는 이후 백업에서 제외됩니다.

참고 항목

_backup.filter는 복원이 작동하는 방식을 변경합니다. _backup.filter를 사용하지 않는 경우 백업을 복원하면 앱의 모든 기존 파일이 삭제되고 백업의 파일로 바뀝니다. _backup.filter를 사용하는 경우 _backup.filter에 포함된 앱 파일 시스템의 모든 콘텐츠가 그대로 남아 있습니다(삭제되지 않음).

백업 저장 방법

앱에 대해 하나 이상의 백업을 수행한 후에는 스토리지 계정의 컨테이너 페이지와 앱에 백업이 표시됩니다. 스토리지 계정에서 각 백업은.zip 백업 데이터가 포함된 파일과 .xml 파일 내용의 .zip 매니페스트가 포함된 파일로 구성됩니다. 실제로 앱 복원을 수행하지 않고 백업에 액세스하려는 경우 이러한 파일의 압축을 풀고 찾아볼 수 있습니다.

앱에 대한 데이터베이스 백업이 .zip 파일의 루트에 저장됩니다. SQL Database의 경우 이 파일은 BACPAC 파일(파일 확장명 없음)이며 가져올 수 있습니다. BACPAC 내보내기를 기반으로 하여 Azure SQL Database에서 데이터베이스를 만들려면 BACPAC 파일을 가져와 Azure SQL Database에서 데이터베이스 만들기를 참조하세요.

Warning

websitebackups 컨테이너의 파일을 변경하면 백업이 유효하지 않아 복원할 수 없게 될 수 있습니다.

오류 메시지

백업 페이지에는 각 백업의 상태 표시됩니다. 실패한 백업에 대한 로그 세부 정보를 가져오려면 목록에서 줄 항목을 선택합니다. 다음 표를 사용하여 백업 문제를 해결하는 데 도움을 얻을 수 있습니다. 테이블에 오류가 문서화되어 있지 않으면 지원 티켓을 엽니다.

오류 Fix
스토리지 액세스에 실패했습니다. 백업 일정을 삭제하고 다시 구성합니다. 또는 백업 스토리지를 다시 구성합니다.
웹 사이트 + 데이터베이스 크기가 백업에 {0} 대한 GB 제한을 초과합니다. 콘텐츠 크기는 GB입니다 {1} . 백업에서 일부 파일을 제외하거나 백업의 데이터베이스 부분을 제거하고 외부에서 제공하는 백업을 대신 사용합니다.
서버 {1}에서 데이터베이스 {0}에 연결하는 동안 오류가 발생했습니다. 'mysql_native_password' 메서드를 사용하여 사용자 '<사용자 이름>'에 대해 '{1}'을(를) 호스트하기 위한 인증이 알 수 없는 데이터베이스 '<db-name>' 메시지를 나타내며 실패했습니다 데이터베이스 연결 문자열 업데이트합니다.
를 확인할 {0}수 없습니다. {1}(CannotResolveStorageAccount) 백업 일정을 삭제하고 다시 구성합니다.
사용자 ''{0}에 대한 로그인이 실패했습니다. 데이터베이스 연결 문자열 업데이트합니다.
예외를 throw한 ({1})의 {0} 데이터베이스 복사본을 만듭니다. 데이터베이스 복사본을 만들 수 없습니다. 연결 문자열 관리자를 사용합니다.
현재 보안 컨텍스트로는 서버 보안 주체 "<이름>"이(가) 데이터베이스 "master"에 액세스할 수 없습니다. 로그인에서 요청한 데이터베이스 "master"를 열 수 없습니다. 로그인이 실패했습니다. '<이름>'사용자가 로그인하지 못했습니다. 연결 문자열 관리자를 사용합니다.
SQL Server에 연결하는 중에 네트워크 관련 오류 또는 인스턴스별 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스할 수 없습니다. 인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인합니다. (공급자: 명명된 파이프 공급자, 오류: 40 - SQL Server에 연결할 수 없습니다.) 연결 문자열 유효한지 확인합니다. 데이터베이스 서버 설정에서 앱의 아웃바운드 IP 를 허용합니다.
로그인에서 요청한 "<이름>" 서버를 열 수 없습니다. 로그인이 실패했습니다. 연결 문자열 유효한지 확인합니다.
유효한 공유 액세스 서명에 대한 필수 매개 변수가 없습니다. 백업 일정을 삭제하고 다시 구성합니다.
SSL 연결이 필요합니다. SSL 옵션을 지정하고 연결을 시도할 때 다시 시도합니다. Azure Database for MySQL 및 Azure Database for PostgreSQL에 대한 SSL 연결은 데이터베이스 백업에 지원되지 않습니다. 대신 해당 데이터베이스의 네이티브 백업 기능을 사용합니다.

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

Azure CLI 또는 Azure PowerShell을 사용하여 스크립트를 통해 백업 관리를 자동화할 수 있습니다.

샘플은 다음을 참조하세요.

자주 묻는 질문

백업은 증분 업데이트 또는 전체 백업인가요?

각 백업은 증분 업데이트가 아니라 앱의 전체 오프라인 복사본입니다.

Azure Functions에서 자동 백업을 지원하나요?

자동 백업은 전용(App Service)의 Azure Functions 또는 기본 또는 표준 또는 프리미엄 계층에서 사용할 수 있습니다. 사용량 또는 탄력적 프리미엄 가격 책정 계층의 함수 앱은 자동 백업에 대해 지원되지 않습니다.

자동 백업에 포함되는 항목은 무엇인가요?

다음 표에서는 자동 백업에서 백업되는 콘텐츠를 보여 줍니다.

설정 복원?
Windows 앱: %HOME% 디렉터리 아래의 모든 앱 콘텐츠
Linux 앱: /home 디렉터리 아래의 모든 앱 콘텐츠
사용자 지정 컨테이너(Windows 및 Linux): 영구 스토리지의 콘텐츠
run-from-ZIP 패키지의 내용 아니요
Azure Files 공유와 같은 사용자 지정 탑재 Azure Storage의 콘텐츠입니다. 아니요

다음 표에서는 앱 구성을 복원하도록 선택할 때 복원되는 앱 구성을 보여 줍니다.

설정 복원?
Azure Storage 계정 및 컨테이너 설정을 포함한 네이티브 로그 설정
Application Insights 구성
상태 검사
프라이빗 엔드포인트, 하이브리드 연결가상 네트워크 통합과 같은 네트워크 기능 아니요
인증 아니요
관리 ID 아니요
사용자 지정 도메인 아니요
TLS/SSL 아니요
규모 확장 아니요
Azure Monitor를 사용한 진단 아니요
경고 및 메트릭 아니요
Backup 아니요
연결된 배포 슬롯 아니요
사용자 지정 백업에서 지원하는 모든 연결된 데이터베이스 아니요

사용자 지정 백업에 포함되는 항목은 무엇인가요?

사용자 지정 백업(요청 시 백업 또는 예약된 백업)에는 자동 백업에 포함되는 모든 콘텐츠 및 구성과 연결된 데이터베이스(허용되는 최대 크기까지)가 포함됩니다.

Azure Virtual Network 백업하는 경우 연결된 데이터베이스를 백업할 수 없습니다.

연결된 데이터베이스가 백업되지 않는 이유는 무엇인가요?

연결된 데이터베이스는 사용자 지정 백업에 대해서만 허용되는 최대 크기까지 백업됩니다. 최대 백업 크기(10GB) 또는 최대 데이터베이스 크기(4GB)를 초과하면 백업이 실패합니다. 연결된 데이터베이스가 백업되지 않는 몇 가지 일반적인 이유는 다음과 같습니다.

  • TLS 사용 Azure Database for MySQL의 백업은 지원되지 않습니다. 백업이 구성된 경우 백업 오류가 발생합니다.
  • TLS 사용 Azure Database for PostgreSQL의 백업은 지원되지 않습니다. 백업이 구성된 경우 백업 오류가 발생합니다.
  • 앱 내 MySQL 데이터베이스는 구성 없이 자동으로 백업됩니다. 앱 내 MySQL 데이터베이스에 대한 수동 설정(예: 연결 문자열 추가)을 만드는 경우 백업이 제대로 작동하지 않을 수 있습니다.

백업 크기가 허용되는 최댓값을 초과하면 어떻게 되나요?

백업 크기가 최대 크기를 초과하면 자동 백업을 복원할 수 없습니다. 마찬가지로 최대 백업 크기 또는 최대 데이터베이스 크기를 초과하면 사용자 지정 백업이 실패합니다. 예를 들어 스토리지 크기를 줄이려면 로그, 이미지, 오디오 및 비디오와 같은 파일을 Azure Storage로 이동하는 것이 좋습니다.

보안 기능이 사용하도록 설정된 스토리지 계정을 사용할 수 있나요?

앱과 동일한 가상 네트워크 토폴로지의 일부인 경우 방화벽으로 보호되는 스토리지 계정에 백업할 수 있습니다. Azure Virtual Network를 통해 백업 및 복원을 참조 하세요.

다른 구독의 앱으로 복원하려면 어떻게 할까요?

  1. Azure Storage 컨테이너에 대한 사용자 지정 백업을 만듭니다.
  2. 백업 ZIP 파일을 로컬 컴퓨터에 다운로드합니다.
  3. 대상 앱에 대한 백업 페이지의 위쪽 메뉴에서 복원을 선택합니다.
  4. 백업 세부 정보원본에서 스토리지를 선택합니다.
  5. 기본 설정 스토리지 계정을 선택합니다.
  6. Zip 파일에서 파일 업로드를 선택합니다.
  7. [이름]에서 찾아보기를 선택하고, 다운로드한 ZIP 파일을 선택합니다.
  8. 백업 복원과 같은 나머지 섹션을 구성합니다.

같은 구독이지만 다른 지역에 있는 앱으로 복원하려면 어떻게 해야 하나요?

단계는 다른 구독의 앱으로 복원하는 방법과 동일합니다.

자동 백업은 어디에 저장되는가요?

자동 백업은 간단하고 App Service와 동일한 데이터 센터에 저장되며 재해 복구 계획으로 의존해서는 안 됩니다.

자동 백업을 중지할 어떻게 할까요? 있나요?

자동 백업은 중지할 수 없습니다. 자동 백업은 플랫폼에 저장되며 기본 앱 인스턴스 또는 스토리지에 영향을 주지 않습니다.

다음 단계

Azure Blob Storage 설명서