데이터베이스 백업에서 지역 복원을 사용하여 다중 테넌트 SaaS 애플리케이션 복구Use geo-restore to recover a multitenant SaaS application from database backups

적용 대상: Azure SQL Database

이 자습서에서는 테넌트별 데이터베이스 모델을 사용하여 구현된 다중 테넌트 SaaS 애플리케이션에 대한 전체 재해 복구 시나리오를 살펴봅니다.This tutorial explores a full disaster recovery scenario for a multitenant SaaS application implemented with the database per tenant model. 지역 복원을 사용하여 카탈로그 및 테넌트 데이터베이스를 자동으로 유지 관리되는 지역 중복 백업에서 대체 복구 지역으로 복구합니다.You use geo-restore to recover the catalog and tenant databases from automatically maintained geo-redundant backups into an alternate recovery region. 가동 중단이 해결되면 지역 복제를 사용하여 변경된 데이터베이스를 원래 지역으로 송환합니다.After the outage is resolved, you use geo-replication to repatriate changed databases to their original region.

원본 및 복구 지역을 보여 주는 다이어그램입니다. 두 지역 모두 앱, 카탈로그, 서버 및 풀의 원본 또는 미러 이미지, 스토리지에 대한 자동 백업이 있으며, 복구 지역은 백업 지역 복제를 수락하고 새 테넌트를 위한 서버 및 풀이 있습니다.

지역 복원은 Azure SQL Database에 대한 가장 저렴한 재해 복구 솔루션입니다.Geo-restore is the lowest-cost disaster recovery solution for Azure SQL Database. 그러나 지역 중복 백업에서의 복원은 최대 1시간의 데이터가 손실될 수 있습니다.However, restoring from geo-redundant backups can result in data loss of up to one hour. 각 데이터베이스의 크기에 따라 시간이 오래 걸릴 수 있습니다.It can take considerable time, depending on the size of each database.

참고

지역 복원 대신 지역 복제를 사용하여 가능한 가장 낮은 RPO 및 RTO를 통해 애플리케이션을 복구합니다.Recover applications with the lowest possible RPO and RTO by using geo-replication instead of geo-restore.

이 자습서에서는 복원 및 송환 워크플로를 살펴봅니다.This tutorial explores both restore and repatriation workflows. 다음 방법을 알아봅니다.You learn how to:

  • 데이터베이스 및 탄력적 풀 구성 정보를 테넌트 카탈로그로 동기화합니다.Sync database and elastic pool configuration info into the tenant catalog.
  • 애플리케이션, 서버 및 풀을 포함하는 복구 지역에 미러 이미지 환경을 설정합니다.Set up a mirror image environment in a recovery region that includes application, servers, and pools.
  • 지역 복원을 사용하여 카탈로그 및 테넌트 데이터베이스를 복구합니다.Recover catalog and tenant databases by using geo-restore.
  • 가동 중단이 해결되면 지역 복제를 사용하여 테넌트 카탈로그 및 변경된 테넌트 데이터베이스를 송환합니다.Use geo-replication to repatriate the tenant catalog and changed tenant databases after the outage is resolved.
  • 각 데이터베이스가 복원(또는 송환)될 때 카탈로그를 업데이트하여 각 테넌트 데이터베이스의 활성 복사본에 대한 현재 위치를 추적합니다.Update the catalog as each database is restored (or repatriated) to track the current location of the active copy of each tenant's database.
  • 대기 시간을 줄이기 위해 애플리케이션 및 테넌트 데이터베이스가 항상 동일한 Azure 지역에 배치되도록 합니다.Ensure that the application and tenant database are always co-located in the same Azure region to reduce latency.

이 자습서를 완료하려면 다음과 같은 필수 구성 요소를 완료해야 합니다.Before you start this tutorial, complete the following prerequisites:

지역 복원 복구 패턴 소개Introduction to the geo-restore recovery pattern

DR(재해 복구)은 규정 준수 이유 또는 비즈니스 연속성 여부에 관계없이 많은 애플리케이션에서 중요한 고려 사항입니다.Disaster recovery (DR) is an important consideration for many applications, whether for compliance reasons or business continuity. 서비스 중단 시간이 길어지면 잘 준비된 DR 계획으로 비즈니스 중단을 최소화할 수 있습니다.If there's a prolonged service outage, a well-prepared DR plan can minimize business disruption. 지역 복원에 기반한 DR 계획으로 달성해야 하는 몇 가지 목표는 다음과 같습니다.A DR plan based on geo-restore must accomplish several goals:

  • 선택한 복구 지역에서 필요한 모든 용량을 최대한 빨리 예약하여 테넌트 데이터베이스를 복원하는 데 사용할 수 있도록 합니다.Reserve all needed capacity in the chosen recovery region as quickly as possible to ensure that it's available to restore tenant databases.
  • 원래 풀 및 데이터베이스 구성을 반영하는 미러 이미지 복구 환경을 설정합니다.Establish a mirror image recovery environment that reflects the original pool and database configuration.
  • 원래 지역이 다시 온라인 상태가 되면 복원 프로세스를 도중에 취소할 수 있습니다.Allow cancellation of the restore process in mid-flight if the original region comes back online.
  • 테넌트 프로비전을 빠르게 활성화하여 새 테넌트 온보딩이 최대한 빨리 다시 시작될 수 있도록 합니다Enable tenant provisioning quickly so new tenant onboarding can restart as soon as possible.
  • 우선 순위에 따라 테넌트를 복원할 수 있도록 최적화합니다.Be optimized to restore tenants in priority order.
  • 실제로 어디서든 단계를 가능한 한 빨리 병렬로 수행하여 테넌트가 최대한 빨리 온라인 상태가 되도록 최적화합니다.Be optimized to get tenants online as soon as possible by doing steps in parallel where practical.
  • 실패, 다시 시작 가능 및 멱등원(idempotent)에 대한 복원력이 있어야 합니다.Be resilient to failure, restartable, and idempotent.
  • 가동 중단이 해결되면 테넌트에 미치는 영향을 최소화하면서 원래 지역으로 데이터베이스를 송환합니다.Repatriate databases to their original region with minimal impact to tenants when the outage is resolved.

참고

애플리케이션은 해당 애플리케이션이 배포된 지역과 쌍을 이루는 지역에 복구됩니다.The application is recovered into the paired region of the region in which the application is deployed. 자세한 내용은 Azure 쌍을 이루는 지역을 참조하세요.For more information, see Azure paired regions.

이 자습서에서는 Azure SQL Database 및 Azure 플랫폼의 기능을 사용하여 다음 과제를 해결합니다.This tutorial uses features of Azure SQL Database and the Azure platform to address these challenges:

  • Azure Resource Manager 템플릿 - 필요한 모든 용량을 최대한 빨리 예약합니다.Azure Resource Manager templates, to reserve all needed capacity as quickly as possible. Azure Resource Manager 템플릿은 복구 지역에 원래 서버와 탄력적 풀의 미러 이미지를 프로비전하는 데 사용됩니다.Azure Resource Manager templates are used to provision a mirror image of the original servers and elastic pools in the recovery region. 또한 새 테넌트를 프로비전하기 위해 별도의 서버 및 풀이 만들어집니다.A separate server and pool are also created for provisioning new tenants.
  • EDCL(탄력적 데이터베이스 클라이언트 라이브러리) - 테넌트 데이터베이스 카탈로그를 만들고 유지 관리합니다.Elastic Database Client Library (EDCL), to create and maintain a tenant database catalog. 확장된 카탈로그는 정기적으로 새로 고친 풀 및 데이터베이스 구성 정보를 포함합니다.The extended catalog includes periodically refreshed pool and database configuration information.
  • EDCL의 분할된 관리 복구 기능 - 복구 및 송환하는 동안 카탈로그에 데이터베이스 위치 항목을 유지 관리합니다.Shard management recovery features of the EDCL, to maintain database location entries in the catalog during recovery and repatriation.
  • 지역 복원 - 자동으로 유지 관리되는 지역 중복 백업에서 카탈로그 및 테넌트 데이터베이스를 복구합니다.Geo-restore, to recover the catalog and tenant databases from automatically maintained geo-redundant backups.
  • 비동기 복원 작업 - 시스템에서 각 풀에 대해 큐에 넣고 풀이 오버로드되지 않도록 일괄적으로 처리하여 테넌트 우선 순위로 보내집니다.Asynchronous restore operations, sent in tenant-priority order, are queued for each pool by the system and processed in batches so the pool isn't overloaded. 이러한 작업은 필요에 따라 실행 전이나 실행 중에 취소할 수 있습니다.These operations can be canceled before or during execution if necessary.
  • 지역 복제 - 가동 중단 후 데이터베이스를 원래 지역으로 송환합니다.Geo-replication, to repatriate databases to the original region after the outage. 지역 복제를 사용하면 데이터 손실이 없고 테넌트에 미치는 영향을 최소화할 수 있습니다.There is no data loss and minimal impact on the tenant when you use geo-replication.
  • SQL Server DNS 별칭 - 카탈로그 동기화 프로세스에서 해당 위치에 관계없이 활성 카탈로그에 연결할 수 있도록 합니다.SQL server DNS aliases, to allow the catalog sync process to connect to the active catalog regardless of its location.

재해 복구 스크립트 가져오기Get the disaster recovery scripts

이 자습서에서 사용되는 DR 스크립트는 테넌트별 Wingtip Tickets SaaS 데이터베이스 GitHub 리포지토리에서 사용할 수 있습니다.The DR scripts used in this tutorial are available in the Wingtip Tickets SaaS database per tenant GitHub repository. Wingtip Tickets 관리 스크립트를 다운로드하고 차단을 해제하는 단계는 일반 지침을 확인합니다.Check out the general guidance for steps to download and unblock the Wingtip Tickets management scripts.

중요

모든 Wingtip Tickets 관리 스크립트와 마찬가지로, DR 스크립트는 샘플 품질이며 프로덕션 환경에서 사용할 수 없습니다.Like all the Wingtip Tickets management scripts, the DR scripts are sample quality and are not to be used in production.

애플리케이션의 정상 상태 검토Review the healthy state of the application

복구 프로세스를 시작하기 전에 애플리케이션의 정상 상태를 검토합니다.Before you start the recovery process, review the normal healthy state of the application.

  1. 웹 브라우저에서 Wingtip Tickets 이벤트 허브(http://events.wingtip-dpt.<user>.trafficmanager.net, replace <user>를 사용자 배포의 사용자 값으로 바꿈)를 엽니다.In your web browser, open the Wingtip Tickets events hub (http://events.wingtip-dpt.<user>.trafficmanager.net, replace <user> with your deployment's user value).

    페이지 아래쪽으로 스크롤하여 바닥글에서 카탈로그 서버 이름과 위치를 확인합니다.Scroll to the bottom of the page and notice the catalog server name and location in the footer. 위치는 앱을 배포한 지역입니다.The location is the region in which you deployed the app.

    위치를 마우스로 가리키면 디스플레이가 확대됩니다.Hover the mouse over the location to enlarge the display.

    원래 지역의 이벤트 허브 정상 상태

  2. Contoso Concert Hall 테넌트를 선택하고 해당 이벤트 페이지를 엽니다.Select the Contoso Concert Hall tenant and open its event page.

    바닥글에서 테넌트의 서버 이름을 확인합니다.In the footer, notice the tenant's server name. 위치는 카탈로그 서버의 위치와 동일합니다.The location is the same as the catalog server's location.

    Contoso Concert Hall 원래 지역

  3. Azure Portal에서 앱을 배포한 리소스 그룹을 검토하고 엽니다.In the Azure portal, review and open the resource group in which you deployed the app.

    앱 서비스 구성 요소와 SQL Database가 배포된 리소스와 지역을 확인합니다.Notice the resources and the region in which the app service components and SQL Database is deployed.

카탈로그로 테넌트 구성을 동기화합니다.Sync the tenant configuration into the catalog

이 작업에서는 서버, 탄력적 풀 및 데이터베이스의 구성을 테넌트 카탈로그로 동기화하는 프로세스를 시작합니다.In this task, you start a process to sync the configuration of the servers, elastic pools, and databases into the tenant catalog. 이 정보는 나중에 복구 지역에서 미러 이미지 환경을 구성하는 데 사용됩니다.This information is used later to configure a mirror image environment in the recovery region.

중요

편의상, 이러한 샘플에서는 동기화 프로세스 및 다른 장기 실행 복구/송환 프로세스가 클라이언트 사용자 로그인에서 실행되는 로컬 PowerShell 작업 또는 세션으로 구현됩니다.For simplicity, the sync process and other long-running recovery and repatriation processes are implemented in these samples as local PowerShell jobs or sessions that run under your client user login. 로그인할 때 발급한 인증 토큰은 몇 시간 후에 만료되고 작업이 실패합니다.The authentication tokens issued when you log in expire after several hours, and the jobs will then fail. 프로덕션 시나리오에서 장기 실행 프로세스는 서비스 주체에서 실행되는 어떤 종류의 신뢰할 수 있는 Azure 서비스로 구현되어야 합니다.In a production scenario, long-running processes should be implemented as reliable Azure services of some kind, running under a service principal. Azure PowerShell을 사용하여 인증서로 서비스 주체 만들기를 참조하세요.See Use Azure PowerShell to create a service principal with a certificate.

  1. PowerShell ISE에서 ...\Learning Modules\UserConfig.psm1 파일을 엽니다.In the PowerShell ISE, open the ...\Learning Modules\UserConfig.psm1 file. 10 및 11번 줄의 <resourcegroup><user>를 앱을 배포할 때 사용한 값으로 바꿉니다.Replace <resourcegroup> and <user> on lines 10 and 11 with the value used when you deployed the app. 파일을 저장합니다.Save the file.

  2. PowerShell ISE에서 ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 스크립트를 엽니다.In the PowerShell ISE, open the ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 script.

    이 자습서에서는 이 PowerShell 스크립트에서 각 시나리오를 실행하므로 이 파일을 열어 둡니다.In this tutorial, you run each of the scenarios in this PowerShell script, so keep this file open.

  3. 다음과 같이 설정합니다.Set the following:

    $DemoScenario = 1: 테넌트 서버를 동기화하는 백그라운드 작업을 시작하고 구성 정보를 카탈로그에 풀링합니다.$DemoScenario = 1: Start a background job that syncs tenant server and pool configuration info into the catalog.

  4. 동기화 스크립트를 실행하려면 F5 키를 누릅니다.To run the sync script, select F5.

    이 정보는 나중에 복구를 통해 복구 지역에 서버, 풀 및 데이터베이스의 미러 이미지를 만드는 데 사용됩니다.This information is used later to ensure that recovery creates a mirror image of the servers, pools, and databases in the recovery region.

    동기화 프로세스

PowerShell 창을 백그라운드에서 실행 중인 상태로 두고 이 자습서의 나머지 부분을 계속 진행합니다.Leave the PowerShell window running in the background and continue with the rest of this tutorial.

참고

동기화 프로세스는 DNS 별칭을 통해 카탈로그에 연결합니다.The sync process connects to the catalog via a DNS alias. 별칭은 활성 카탈로그를 가리키도록 복원 및 송환 중에 수정됩니다.The alias is modified during restore and repatriation to point to the active catalog. 동기화 프로세스는 복구 지역에서 수행된 데이터베이스 또는 풀 구성 변경 내용을 적용하여 카탈로그를 최신 상태로 유지합니다.The sync process keeps the catalog up to date with any database or pool configuration changes made in the recovery region. 이러한 변경 내용은 송환 중에 원래 지역의 해당 리소스에 적용됩니다.During repatriation, these changes are applied to the equivalent resources in the original region.

지역 복원 복구 프로세스 개요Geo-restore recovery process overview

지역 복원 복구 프로세스는 애플리케이션을 배포하고 데이터베이스를 백업에서 복구 지역으로 복원합니다.The geo-restore recovery process deploys the application and restores databases from backups into the recovery region.

복구 프로세스는 다음을 수행합니다.The recovery process does the following:

  1. 원래 지역의 웹앱에 대한 Azure Traffic Manager 엔드포인트를 사용하지 않도록 설정합니다.Disables the Azure Traffic Manager endpoint for the web app in the original region. 엔드포인트를 사용하지 않도록 설정하면 복구 중에 원래 지역이 온라인 상태가 되는 경우 사용자가 잘못된 상태에서 앱에 연결하지 못하게 됩니다.Disabling the endpoint prevents users from connecting to the app in an invalid state should the original region come online during recovery.

  2. 복구 지역의 복구 카탈로그 서버를 프로비전하고, 카탈로그 데이터베이스를 지리적으로 복원하며, activecatalog 별칭이 복원된 카탈로그 서버를 가리키도록 업데이트합니다.Provisions a recovery catalog server in the recovery region, geo-restores the catalog database, and updates the activecatalog alias to point to the restored catalog server. 카탈로그 별칭을 변경하면 카탈로그 동기화 프로세스가 항상 활성 카탈로그로 동기화됩니다.Changing the catalog alias ensures that the catalog sync process always syncs to the active catalog.

  3. 복구 카탈로그에 있는 기존의 모든 테넌트를 오프라인으로 표시하여 복원되기 전에 테넌트 데이터베이스에 액세스하지 못하도록 방지합니다.Marks all existing tenants in the recovery catalog as offline to prevent access to tenant databases before they are restored.

  4. 복구 지역에서 앱의 인스턴스를 프로비전하고, 해당 지역에서 복원된 카탈로그를 사용하도록 구성합니다.Provisions an instance of the app in the recovery region and configures it to use the restored catalog in that region. 대기 시간을 최소화하기 위해 샘플 앱은 항상 동일한 지역의 테넌트 데이터베이스에 연결되도록 설계되었습니다.To keep latency to a minimum, the sample app is designed to always connect to a tenant database in the same region.

  5. 새 테넌트가 프로비전될 서버 및 탄력적 풀을 프로비전합니다.Provisions a server and elastic pool in which new tenants are provisioned. 이러한 리소스를 만들면 새 테넌트를 프로비전하더라도 기존 테넌트의 복구를 방해하지 않습니다.Creating these resources ensures that provisioning new tenants doesn't interfere with the recovery of existing tenants.

  6. 복구 지역에서 새 테넌트 데이터베이스에 대한 서버를 가리키도록 새 테넌트 별칭을 업데이트합니다.Updates the new tenant alias to point to the server for new tenant databases in the recovery region. 이 별칭을 변경하면 모든 새 테넌트의 데이터베이스가 복구 지역에 프로비전됩니다.Changing this alias ensures that databases for any new tenants are provisioned in the recovery region.

  7. 테넌트 데이터베이스를 복원하기 위해 복구 지역의 서버 및 탄력적 풀을 프로비전합니다.Provisions servers and elastic pools in the recovery region for restoring tenant databases. 이러한 서버와 풀은 원래 지역의 구성에 대한 미러 이미지입니다.These servers and pools are a mirror image of the configuration in the original region. 풀이 미리 프로비전되면 모든 데이터베이스를 복원하는 데 필요한 용량을 예약합니다.Provisioning pools up front reserves the capacity needed to restore all the databases.

    한 지역에서 가동 중단되면 쌍을 이루는 지역에서 사용할 수 있는 리소스에 상당한 압력이 가해질 수 있습니다.An outage in a region might place significant pressure on the resources available in the paired region. DR에 지역 복원을 사용하는 경우 리소스를 빠르게 예약하는 것이 좋습니다.If you rely on geo-restore for DR, then reserving resources quickly is recommended. 특정 지역에서 애플리케이션을 복구해야 하는 경우 지역 복제를 사용하는 것이 좋습니다.Consider geo-replication if it's critical that an application is recovered in a specific region.

  8. 복구 지역에서 웹 응용 프로그램에 대한 Traffic Manager 엔드포인트를 사용하도록 설정합니다.Enables the Traffic Manager endpoint for the web app in the recovery region. 이 엔드포인트를 사용하면 애플리케이션에서 새 테넌트를 프로비전할 수 있습니다.Enabling this endpoint allows the application to provision new tenants. 이 단계에서 기존 테넌트는 여전히 오프라인 상태입니다.At this stage, existing tenants are still offline.

  9. 우선 순위에 따라 데이터베이스를 복원하는 요청의 일괄 처리를 제출합니다.Submits batches of requests to restore databases in priority order.

    • 일괄 처리는 데이터베이스가 모든 풀에서 병렬로 복원되도록 구성됩니다.Batches are organized so that databases are restored in parallel across all pools.

    • 복원 요청은 비동기적으로 제출되므로 신속하게 제출되고 각 풀의 실행을 위해 큐에 넣어집니다.Restore requests are submitted asynchronously so they are submitted quickly and queued for execution in each pool.

    • 복원 요청은 모든 풀에서 병렬로 처리되기 때문에 중요한 테넌트를 여러 풀에 배포하는 것이 좋습니다.Because restore requests are processed in parallel across all pools, it's better to distribute important tenants across many pools.

  10. 서비스를 모니터링하여 데이터베이스가 복원된 시기를 확인합니다.Monitors the service to determine when databases are restored. 테넌트 데이터베이스가 복원되면 카탈로그에서 온라인으로 표시되고 테넌트 데이터베이스에 대한 rowversion 합계가 기록됩니다.After a tenant database is restored, it's marked online in the catalog, and a rowversion sum for the tenant database is recorded.

    • 테넌트 데이터베이스는 카탈로그에서 온라인으로 표시되는 즉시 애플리케이션에서 액세스할 수 있습니다.Tenant databases can be accessed by the application as soon as they're marked online in the catalog.

    • 테넌트 데이터베이스에 대한 rowversion 값의 합계는 카탈로그에 저장됩니다.A sum of rowversion values in the tenant database is stored in the catalog. 이 합계는 지문 역할을 하여 송환 프로세스에서 데이터베이스가 복구 지역에서 업데이트되었는지 확인할 수 있습니다.This sum acts as a fingerprint that allows the repatriation process to determine if the database was updated in the recovery region.

복구 스크립트 실행Run the recovery script

중요

이 자습서에서는 지역 중복 백업에서 데이터베이스를 복원합니다.This tutorial restores databases from geo-redundant backups. 이러한 백업은 일반적으로 10분 내에 사용할 수 있지만, 최대 1시간이 걸릴 수도 있습니다.Although these backups are typically available within 10 minutes, it can take up to an hour. 스크립트는 사용할 수 있을 때까지 일시 중지됩니다.The script pauses until they're available.

이제 애플리케이션이 배포되고 복구 스크립트를 실행하는 지역에 가동 중단이 있다고 가정해 보겠습니다.Imagine there's an outage in the region in which the application is deployed, and run the recovery script:

  1. PowerShell ISE의 ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 스크립트에서 다음 값을 설정합니다.In the PowerShell ISE, in the ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 script, set the following value:

    $DemoScenario = 2: 지역 중복 백업에서 복원하여 앱을 복구 지역으로 복구합니다.$DemoScenario = 2: Recover the app into a recovery region by restoring from geo-redundant backups.

  2. 스크립트를 실행하려면 F5 키를 누릅니다.To run the script, select F5.

    • 스크립트가 새 PowerShell 창에서 열리고, 병렬로 실행되는 일단의 PowerShell 작업이 시작됩니다.The script opens in a new PowerShell window and then starts a set of PowerShell jobs that run in parallel. 이러한 작업은 서버, 풀 및 데이터베이스를 복구 지역에 복원합니다.These jobs restore servers, pools, and databases to the recovery region.

    • 복구 지역은 애플리케이션을 배포한 Azure 지역과 연결된 쌍을 이루는 지역입니다.The recovery region is the paired region associated with the Azure region in which you deployed the application. 자세한 내용은 Azure 쌍을 이루는 지역을 참조하세요.For more information, see Azure paired regions.

  3. PowerShell 창에서 복구 프로세스의 상태를 모니터링합니다.Monitor the status of the recovery process in the PowerShell window.

    복구 프로세스의 상태를 모니터링할 수 있는 PowerShell 창을 보여주는 스크린샷.

참고

복구 작업 코드를 살펴보려면 ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\RecoveryJobs 폴더에서 PowerShell 스크립트를 검토합니다.To explore the code for the recovery jobs, review the PowerShell scripts in the ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\RecoveryJobs folder.

복구하는 동안 애플리케이션 상태 검토Review the application state during recovery

Traffic Manager에서 애플리케이션 엔드포인트를 사용하지 않도록 설정되면 해당 애플리케이션을 사용할 수 없습니다.While the application endpoint is disabled in Traffic Manager, the application is unavailable. 카탈로그가 복원되고 모든 테넌트가 오프라인으로 표시됩니다.The catalog is restored, and all the tenants are marked offline. 그런 다음, 복구 지역의 애플리케이션 엔드포인트가 활성화되고 애플리케이션이 다시 온라인 상태가 됩니다.The application endpoint in the recovery region is then enabled, and the application is back online. 애플리케이션을 사용할 수 있지만 해당 데이터베이스가 복원될 때까지 테넌트는 이벤트 허브에서 오프라인으로 표시됩니다.Although the application is available, tenants appear offline in the events hub until their databases are restored. 애플리케이션은 오프라인 테넌트 데이터베이스를 처리하도록 설계해야 합니다.It's important to design your application to handle offline tenant databases.

  • 카탈로그 데이터베이스가 복구되었지만 테넌트가 다시 온라인 상태가 되기 전에 웹 브라우저에서 Wingtip Tickets 이벤트 허브를 새로 고칩니다.After the catalog database has been recovered but before the tenants are back online, refresh the Wingtip Tickets events hub in your web browser.

    • 이제 바닥글에서 카탈로그 서버 이름이 -recovery 접미사를 갖고 있고 복구 지역에 있음을 확인할 수 있습니다.In the footer, notice that the catalog server name now has a -recovery suffix and is located in the recovery region.

    • 아직 복원되지 않은 테넌트는 오프라인으로 표시되고 선택할 수 없습니다.Notice that tenants that are not yet restored are marked as offline and are not selectable.

      복구 프로세스

    • 테넌트가 오프라인 상태인 동안 테넌트의 이벤트 페이지를 직접 열면 해당 페이지에 테넌트 오프라인 알림이 표시됩니다.If you open a tenant's events page directly while the tenant is offline, the page displays a tenant offline notification. 예를 들어 Contoso Concert Hall이 오프라인인 경우 http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall을 열어 봅니다.For example, if Contoso Concert Hall is offline, try to open http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall.

      오프라인 이벤트 페이지를 보여주는 스크린샷.

복구 지역에 새 테넌트 프로비전Provision a new tenant in the recovery region

테넌트 데이터베이스가 복원되기 전에도 복구 지역에 새 테넌트를 프로비전할 수 있습니다.Even before tenant databases are restored, you can provision new tenants in the recovery region. 복구 지역에 프로비전된 새 테넌트 데이터베이스는 나중에 복구된 데이터베이스와 함께 송환됩니다.New tenant databases provisioned in the recovery region are repatriated with the recovered databases later.

  1. PowerShell ISE의 ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 스크립트에서 다음 속성을 설정합니다.In the PowerShell ISE, in the ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 script, set the following property:

    $DemoScenario = 3: 복구 지역에 새 테넌트를 프로비전합니다.$DemoScenario = 3: Provision a new tenant in the recovery region.

  2. 스크립트를 실행하려면 F5 키를 누릅니다.To run the script, select F5.

  3. 프로비전이 완료되면 Hawthorn Hall 이벤트 페이지가 브라우저에서 열립니다.The Hawthorn Hall events page opens in the browser when provisioning finishes.

    Hawthorn Hall 데이터베이스는 복구 지역에 있습니다.Notice that the Hawthorn Hall database is located in the recovery region.

    복구 지역에 프로비전된 Hawthorn Hall

  4. 브라우저에서 Wingtip Tickets 이벤트 허브 페이지를 새로 고쳐 Hawthorn Hall이 포함되어 있는지 확인합니다.In the browser, refresh the Wingtip Tickets events hub page to see Hawthorn Hall included.

    다른 테넌트가 복원될 때까지 기다리지 않고 Hawthorn Hall을 프로비전한 경우 다른 테넌트는 여전히 오프라인 상태일 수 있습니다.If you provisioned Hawthorn Hall without waiting for the other tenants to restore, other tenants might still be offline.

애플리케이션의 복구 상태 검토Review the recovered state of the application

복구 프로세스가 완료되면 애플리케이션과 모든 테넌트가 복구 지역에서 완전하게 작동합니다.When the recovery process finishes, the application and all tenants are fully functional in the recovery region.

  1. PowerShell 콘솔 창의 디스플레이에 모든 테넌트가 복구되었다고 표시되면 이벤트 허브를 새로 고칩니다.After the display in the PowerShell console window indicates all the tenants are recovered, refresh the events hub.

    새 테넌트인 Hawthorn Hall을 포함한 모든 테넌트가 온라인으로 표시됩니다.The tenants all appear online, including the new tenant, Hawthorn Hall.

    이벤트 허브에서 복구된 새 테넌트

  2. Contoso Concert Hall을 클릭하고 이벤트 페이지를 엽니다.Click on Contoso Concert Hall and open its events page.

    바닥글에서 데이터베이스가 복구 지역에 있는 복구 서버에 있는지 확인합니다.In the footer, notice that the database is located on the recovery server located in the recovery region.

    복구 지역의 Contoso

  3. Azure Portal에서 리소스 그룹 목록을 엽니다.In the Azure portal, open the list of resource groups.

    배포한 리소스 그룹과 복구 리소스 그룹에 -recovery 접미사가 있는지 확인합니다.Notice the resource group that you deployed, plus the recovery resource group, with the -recovery suffix. 복구 리소스 그룹에는 복구 프로세스 중에 만들어진 모든 리소스와 가동 중단 중에 만들어진 새 리소스가 포함되어 있습니다.The recovery resource group contains all the resources created during the recovery process, plus new resources created during the outage.

  4. 복구 리소스 그룹을 열고 다음 항목을 확인합니다.Open the recovery resource group and notice the following items:

    • -recovery 접미사가 있는 카탈로그 및 tenants1 서버의 복구 버전입니다.The recovery versions of the catalog and tenants1 servers, with the -recovery suffix. 이러한 서버의 복원된 카탈로그 및 테넌트 데이터베이스에는 모두 원래 지역에서 사용된 이름이 있습니다.The restored catalog and tenant databases on these servers all have the names used in the original region.

    • tenants2-dpt-<user>-recovery SQL 서버.The tenants2-dpt-<user>-recovery SQL server. 이 서버는 가동 중단 시 새 테넌트를 프로비전하는 데 사용됩니다.This server is used for provisioning new tenants during the outage.

    • 이벤트 앱의 복구 인스턴스인 events-wingtip-dpt-<recoveryregion>-<user>라는 이름의 App Service.The app service named events-wingtip-dpt-<recoveryregion>-<user>, which is the recovery instance of the events app.

      복구 지역의 Contoso 리소스

  5. tenants2-dpt-<user>-recovery SQL 서버를 엽니다.Open the tenants2-dpt-<user>-recovery SQL server. hawthornhall 데이터베이스와 Pool1 탄력적 풀이 포함되어 있음을 확인합니다.Notice that it contains the database hawthornhall and the elastic pool Pool1. hawthornhall 데이터베이스는 Pool1 탄력적 풀의 탄력적 데이터베이스로 구성됩니다.The hawthornhall database is configured as an elastic database in the Pool1 elastic pool.

테넌트 데이터 변경Change the tenant data

이 작업에서는 복원된 테넌트 데이터베이스 중 하나를 업데이트합니다.In this task, you update one of the restored tenant databases. 송환 프로세스는 원래 지역으로 변경된 복원된 데이터베이스를 복사합니다.The repatriation process copies restored databases that have been changed to the original region.

  1. 브라우저에서 Contoso Concert Hall에 대한 이벤트 목록을 찾고, 이벤트를 스크롤하여 마지막 이벤트인 Seriously Strauss를 적어둡니다.In your browser, find the events list for the Contoso Concert Hall, scroll through the events, and notice the last event, Seriously Strauss.

  2. PowerShell ISE의 ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 스크립트에서 다음 값을 설정합니다.In the PowerShell ISE, in the ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 script, set the following value:

    $DemoScenario = 4: 복구 지역의 테넌트에서 이벤트를 삭제합니다.$DemoScenario = 4: Delete an event from a tenant in the recovery region.

  3. 스크립트를 실행하려면 F5 키를 누릅니다.To execute the script, select F5.

  4. Contoso Concert Hall 이벤트 페이지(http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall)를 새로 고치고, Seriously Strauss 이벤트가 누락되어 있는지 확인합니다.Refresh the Contoso Concert Hall events page (http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall), and notice that the event Seriously Strauss is missing.

자습서의 이 시점에서는 이제 복구 지역에서 실행되는 애플리케이션을 복구했습니다.At this point in the tutorial, you have recovered the application, which is now running in the recovery region. 복구 지역에 새 테넌트를 프로비전하고 복원된 테넌트 중 하나의 데이터를 수정했습니다.You have provisioned a new tenant in the recovery region and modified data of one of the restored tenants.

참고

샘플의 다른 자습서는 복구 상태의 앱에서 실행되도록 설계되지 않았습니다.Other tutorials in the sample are not designed to run with the app in the recovery state. 다른 자습서를 탐색하려면 먼저 애플리케이션을 송환해야 합니다.If you want to explore other tutorials, be sure to repatriate the application first.

송환 프로세스 개요Repatriation process overview

가동 중단이 해결되면 송환 프로세스에서 애플리케이션과 해당 데이터베이스를 원래 지역으로 되돌립니다.The repatriation process reverts the application and its databases to its original region after an outage is resolved.

지역 복원 송환

프로세스는 다음과 같습니다.The process:

  1. 진행 중인 복원 작업을 모두 중지하고, 미해결 또는 진행 중인 데이터베이스 복원 요청을 모두 취소합니다.Stops any ongoing restore activity and cancels any outstanding or in-flight database restore requests.

  2. 가동 중단 이후 변경되지 않은 원래 지역의 테넌트 데이터베이스에서 다시 활성화합니다.Reactivates in the original region tenant databases that have not been changed since the outage. 이러한 데이터베이스에는 아직 복구되지 않은 데이터베이스 및 복구되었으나 나중에 변경되지 않은 데이터베이스가 포함됩니다.These databases include those not recovered yet and those recovered but not changed afterward. 다시 활성화된 데이터베이스는 테넌트에서 마지막으로 액세스한 데이터베이스와 정확히 동일합니다.The reactivated databases are exactly as last accessed by their tenants.

  3. 원래 지역의 새 테넌트 서버와 탄력적 풀의 미러 이미지를 프로비전합니다.Provisions a mirror image of the new tenant's server and elastic pool in the original region. 이 작업이 완료되면 새 테넌트 별칭이 이 서버를 가리키도록 업데이트됩니다.After this action is complete, the new tenant alias is updated to point to this server. 별칭을 업데이트하면 새 테넌트 온보딩이 복구 지역 대신 원래 지역에서 발생합니다.Updating the alias causes new tenant onboarding to occur in the original region instead of the recovery region.

  4. 지역 복제를 사용하여 카탈로그를 복구 지역에서 원래 지역으로 이동합니다.Uses geo-replication to move the catalog to the original region from the recovery region.

  5. 원래 지역의 풀 구성을 업데이트하여 가동 중단 시 복구 지역에서 변경한 내용과 일치시킵니다.Updates pool configuration in the original region so it's consistent with changes that were made in the recovery region during the outage.

  6. 가동 중단 중에 만들어진 새 데이터베이스를 호스팅하는 데 필요한 서버와 풀을 만듭니다.Creates the required servers and pools to host any new databases created during the outage.

  7. 지역 복제를 사용하여 복원 후에 업데이트된 복원된 테넌트 데이터베이스와 가동 중단 중에 프로비전된 모든 새 테넌트 데이터베이스를 송환합니다.Uses geo-replication to repatriate restored tenant databases that have been updated post-restore and all new tenant databases provisioned during the outage.

  8. 복원 프로세스 중에 복구 지역에서 만든 리소스를 정리합니다.Cleans up resources created in the recovery region during the restore process.

송환되어야 하는 테넌트 데이터베이스의 수를 제한하려면 1-3단계를 신속하게 수행합니다.To limit the number of tenant databases that need to be repatriated, steps 1 to 3 are done promptly.

4단계는 가동 중단 중에 복구 지역의 카탈로그가 수정된 경우에만 수행됩니다.Step 4 is only done if the catalog in the recovery region has been modified during the outage. 새 테넌트가 만들어지거나 복구 지역에서 데이터베이스 또는 풀 구성이 변경되면 카탈로그가 업데이트됩니다.The catalog is updated if new tenants are created or if any database or pool configuration is changed in the recovery region.

7단계는 테넌트에 대한 중단을 최소화하고 데이터 손실이 없어야 합니다.It's important that step 7 causes minimal disruption to tenants and no data is lost. 이 목표를 달성하기 위해 프로세스에서 지역 복제를 사용합니다.To achieve this goal, the process uses geo-replication.

각 데이터베이스가 지리적으로 복제되기 전에 원래 지역의 해당 데이터베이스가 삭제됩니다.Before each database is geo-replicated, the corresponding database in the original region is deleted. 그런 다음, 복구 지역의 데이터베이스가 지리적으로 복제되어 원래 지역에 보조 복제본을 만듭니다.The database in the recovery region is then geo-replicated, creating a secondary replica in the original region. 복제가 완료되면 카탈로그에서 테넌트가 오프라인으로 표시되어 복구 지역의 데이터베이스에 대한 연결을 끊습니다.After replication is complete, the tenant is marked offline in the catalog, which breaks any connections to the database in the recovery region. 그런 다음, 데이터베이스가 장애 조치되므로 보류 중인 트랜잭션이 보조 데이터베이스에서 처리되므로 데이터가 손실되지 않습니다.The database is then failed over, causing any pending transactions to process on the secondary so no data is lost.

장애 조치 시 데이터베이스 역할이 취소됩니다.On failover, the database roles are reversed. 원래 지역의 보조 데이터베이스는 주 읽기-쓰기 데이터베이스가 되고, 복구 지역의 데이터베이스는 읽기 전용 보조 데이터베이스가 됩니다.The secondary in the original region becomes the primary read-write database, and the database in the recovery region becomes a read-only secondary. 카탈로그의 테넌트 항목이 원래 지역의 데이터베이스를 참조하도록 업데이트되고, 테넌트가 온라인으로 표시됩니다.The tenant entry in the catalog is updated to reference the database in the original region, and the tenant is marked online. 이 시점에서 데이터베이스의 송환이 완료되었습니다.At this point, repatriation of the database is complete.

연결이 끊어지면 자동으로 다시 연결되도록 애플리케이션을 다시 시도 논리로 작성해야 합니다.Applications should be written with retry logic to ensure that they reconnect automatically when connections are broken. 카탈로그를 사용하여 연결을 broker에 다시 연결하면 원래 지역의 송환된 데이터베이스에 연결됩니다.When they use the catalog to broker the reconnection, they connect to the repatriated database in the original region. 짧은 연결 해제가 자주 발견되지 않지만, 업무 시간 외에서 데이터베이스를 송환하도록 선택할 수 있습니다.Although the brief disconnect is often not noticed, you might choose to repatriate databases out of business hours.

데이터베이스가 송환되면 복구 지역의 보조 데이터베이스를 삭제할 수 있습니다.After a database is repatriated, the secondary database in the recovery region can be deleted. 그러면 원래 지역의 데이터베이스에서 DR을 보호하기 위해 지역 복원을 다시 사용합니다.The database in the original region then relies again on geo-restore for DR protection.

8단계에서는 복구 서버 및 풀을 포함하여 복구 지역의 리소스가 삭제됩니다.In step 8, resources in the recovery region, including the recovery servers and pools, are deleted.

송환 스크립트 실행Run the repatriation script

이제 가동 중단이 해결되었다고 가정하고 송환 스크립트를 실행하겠습니다.Let's imagine the outage is resolved and run the repatriation script.

자습서를 수행한 경우 스크립트는 변경되지 않았으므로 Fabrikam Jazz Club 및 Dogwood Dojo를 원래 지역에서 즉시 다시 활성화합니다.If you've followed the tutorial, the script immediately reactivates Fabrikam Jazz Club and Dogwood Dojo in the original region because they're unchanged. 그런 다음, 새 테넌트인 Hawthorn Hall을 송환하고, Contoso Concert Hall이 수정되었기 때문에 이 Contoso Concert Hall도 송환합니다.It then repatriates the new tenant, Hawthorn Hall, and Contoso Concert Hall because it has been modified. 또한 이 스크립트는 Hawthorn Hall이 프로비전될 때 업데이트된 카탈로그도 송환합니다.The script also repatriates the catalog, which was updated when Hawthorn Hall was provisioned.

  1. PowerShell ISE의 ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 스크립트에서 카탈로그 동기화 프로세스가 해당 PowerShell 인스턴스에서 계속 실행 중인지 확인합니다.In the PowerShell ISE, in the ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 script, verify that the Catalog Sync process is still running in its PowerShell instance. 필요한 경우 다음을 설정하여 다시 시작합니다.If necessary, restart it by setting:

    $DemoScenario = 1: 카탈로그로의 테넌트 서버, 풀 및 데이터베이스 구성 정보 동기화를 시작합니다.$DemoScenario = 1: Start synchronizing tenant server, pool, and database configuration info into the catalog.

    스크립트를 실행하려면 F5 키를 누릅니다.To run the script, select F5.

  2. 그런 다음, 송환 프로세스를 시작하려면 다음을 설정합니다.Then to start the repatriation process, set:

    $DemoScenario = 5: 앱을 원래 지역으로 송환합니다.$DemoScenario = 5: Repatriate the app into its original region.

    새 PowerShell 창에서 복구 스크립트를 실행하려면 F5 키를 누릅니다.To run the recovery script in a new PowerShell window, select F5. 송환에는 몇 분 정도 걸리며, PowerShell 창에서 모니터링할 수 있습니다.Repatriation takes several minutes and can be monitored in the PowerShell window.

  3. 스크립트가 실행되는 동안 이벤트 허브 페이지(http://events.wingtip-dpt.<user>.trafficmanager.net)를 새로 고칩니다.While the script is running, refresh the events hub page (http://events.wingtip-dpt.<user>.trafficmanager.net).

    모든 테넌트가 온라인 상태이며 이 프로세스를 통해 액세스할 수 있습니다.Notice that all the tenants are online and accessible throughout this process.

  4. Fabrikam Jazz Club을 선택하여 엽니다.Select the Fabrikam Jazz Club to open it. 이 테넌트를 수정하지 않은 경우 바닥글에서 서버가 이미 원래 서버로 되돌아갔는지 확인합니다.If you didn't modify this tenant, notice from the footer that the server is already reverted to the original server.

  5. Contoso Concert Hall 이벤트 페이지를 열거나 새로 고칩니다.Open or refresh the Contoso Concert Hall events page. 바닥글에서 처음에 데이터베이스가 여전히 -recovery 서버에 있음을 확인합니다.Notice from the footer that, initially, the database is still on the -recovery server.

  6. 송환 프로세스가 완료되면 Contoso Concert Hall 이벤트 페이지를 새로 고치고, 이제 데이터베이스가 원래 지역에 있는지 확인합니다.Refresh the Contoso Concert Hall events page when the repatriation process finishes, and notice that the database is now in your original region.

  7. 이벤트 허브를 다시 새로 고치고 Hawthorn Hall을 엽니다.Refresh the events hub again and open Hawthorn Hall. 데이터베이스가 원래 지역에 있는지 확인합니다.Notice that its database is also located in the original region.

송환 후 복구 지역 리소스 정리Clean up recovery region resources after repatriation

송환이 완료되면 복구 지역의 리소스를 안전하게 삭제할 수 있습니다.After repatriation is complete, it's safe to delete the resources in the recovery region.

중요

이러한 리소스를 즉시 삭제하여 해당 리소스에 대한 모든 청구를 중지합니다.Delete these resources promptly to stop all billing for them.

복원 프로세스는 복구 리소스 그룹에 모든 복구 리소스를 만듭니다.The restore process creates all the recovery resources in a recovery resource group. 정리 프로세스는 이 리소스 그룹을 삭제하고, 카탈로그에서 리소스에 대한 모든 참조를 제거합니다.The cleanup process deletes this resource group and removes all references to the resources from the catalog.

  1. PowerShell ISE의 ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 스크립트에서 다음을 설정합니다.In the PowerShell ISE, in the ...\Learning Modules\Business Continuity and Disaster Recovery\DR-RestoreFromBackup\Demo-RestoreFromBackup.ps1 script, set:

    $DemoScenario = 6: 복구 지역에서 사용되지 않는 리소스를 삭제합니다.$DemoScenario = 6: Delete obsolete resources from the recovery region.

  2. 스크립트를 실행하려면 F5 키를 누릅니다.To run the script, select F5.

스크립트가 정리되면 애플리케이션이 시작된 위치로 돌아갑니다.After cleaning up the scripts, the application is back where it started. 이 시점에서 스크립트를 다시 실행하거나 다른 자습서를 사용해 볼 수 있습니다.At this point, you can run the script again or try out other tutorials.

앱 및 데이터베이스가 공동 배치되도록 애플리케이션 디자인Designing the application to ensure that the app and the database are co-located

애플리케이션은 항상 테넌트의 데이터베이스와 동일한 지역에 있는 인스턴스에서 연결되도록 설계되었습니다.The application is designed to always connect from an instance in the same region as the tenant's database. 이 디자인은 애플리케이션과 데이터베이스 간의 대기 시간을 줄여줍니다.This design reduces latency between the application and the database. 이 최적화에서는 앱-데이터베이스 상호 작용이 사용자-앱 상호 작용보다 더 많이 수행된다고 가정합니다.This optimization assumes the app-to-database interaction is chattier than the user-to-app interaction.

테넌트 데이터베이스는 송환 중에 일정 기간 동안 복구 지역과 원래 지역에 걸쳐 분산되어 있을 수 있습니다.Tenant databases might be spread across recovery and original regions for some time during repatriation. 각 데이터베이스에 대해 응용 프로그램은 테넌트 서버 이름에서 DNS 조회를 수행하여 데이터베이스가 있는 지역을 찾습니다.For each database, the app looks up the region in which the database is located by doing a DNS lookup on the tenant server name. 서버 이름은 별칭입니다.The server name is an alias. 별칭이 지정된 서버 이름에는 지역 이름이 포함되어 있습니다.The aliased server name contains the region name. 애플리케이션이 데이터베이스와 동일한 지역에 있지 않으면, 서버와 동일한 지역에 있는 인스턴스로 리디렉션됩니다.If the application isn't in the same region as the database, it redirects to the instance in the same region as the server. 데이터베이스와 동일한 지역에 있는 인스턴스로 리디렉션하면 앱과 데이터베이스 간의 대기 시간이 최소화됩니다.Redirecting to the instance in the same region as the database minimizes latency between the app and the database.

다음 단계Next steps

이 자습서에서는 다음 작업 방법을 알아보았습니다.In this tutorial, you learned how to:

  • 테넌트 카탈로그를 사용하여 정기적으로 새로 고친 구성 정보를 보관하면 다른 지역에 미러 이미지 복구 환경을 만들 수 있습니다.Use the tenant catalog to hold periodically refreshed configuration information, which allows a mirror image recovery environment to be created in another region.
  • 지역 복원을 사용하여 데이터베이스를 복구 지역으로 복구합니다.Recover databases into the recovery region by using geo-restore.
  • 복원된 테넌트 데이터베이스 위치를 반영하도록 테넌트 카탈로그를 업데이트합니다.Update the tenant catalog to reflect restored tenant database locations.
  • DNS 별칭을 사용하여 애플리케이션을 재구성하지 않고 테넌트 카탈로그 전체에 연결할 수 있습니다.Use a DNS alias to enable an application to connect to the tenant catalog throughout without reconfiguration.
  • 가동 중단이 해결되면 지역 복제를 사용하여 복구된 데이터베이스를 원래 지역으로 송환합니다.Use geo-replication to repatriate recovered databases to their original region after an outage is resolved.

지역 복제를 사용하여 대규모 다중 테넌트 애플리케이션을 복구하는 데 필요한 시간을 대폭 줄이는 방법을 알아보려면 데이터베이스 지역 복제를 사용하여 다중 테넌트 SaaS 애플리케이션에 대한 재해 복구를 시도합니다.Try the Disaster recovery for a multitenant SaaS application using database geo-replication tutorial to learn how to use geo-replication to dramatically reduce the time needed to recover a large-scale multitenant application.

추가 리소스Additional resources

Wingtip SaaS 애플리케이션을 빌드하는 또 다른 자습서.Additional tutorials that build upon the Wingtip SaaS application