다음을 통해 공유


지역 복제 사용

이 문서에서는 Azure App Configuration 저장소의 복제에 대해 설명합니다. 구성 저장소에서 복제본을 만들고, 사용하고, 삭제하는 방법에 대해 알아봅니다.

지역 복제 개념에 대한 자세한 내용은 Azure App Configuration의 지역 복제를 참조하세요.

필수 조건

복제본 만들기 및 나열

포털에서 구성 저장소의 복제본을 만들려면 아래 단계를 수행합니다.

참고 항목

고정 IP로 구성된 프라이빗 엔드포인트가 있는 App Configuration 저장소에 대해 복제본을 만드는 것은 지원되지 않습니다. 고정 IP 구성을 사용하는 프라이빗 엔드포인트를 선호하는 경우 프라이빗 엔드포인트가 저장소에 추가되기 전에 복제본을 만들어야 합니다.

  1. App Configuration 저장소의 설정 아래에서 지역 복제를 선택합니다.

  2. 복제본 아래에서 만들기를 선택합니다. 드롭다운에서 새 복제본의 위치를 선택한 다음, 이름을 복제본에 할당합니다. 이 복제본 이름은 고유해야 합니다.

    복제본 만들기 단추와 강조 표시된 지역 복제 단추의 스크린샷

  3. 만들기를 실행합니다.

  4. 이제 [복제본] 아래에 새 복제본이 나열됩니다. 복제본의 상태가 "성공"으로 표시되는지 확인합니다. 이는 복제본이 성공적으로 만들어졌음을 나타냅니다.

    구성 저장소에 대해 만들어진 복제본 목록의 스크린샷

복제본 삭제

포털에서 복제본을 삭제하려면 다음 단계를 수행합니다.

  1. App Configuration 저장소의 설정 아래에서 지역 복제를 선택합니다.

  2. 복제본 아래에서 삭제하려는 복제본의 오른쪽에 있는 ...를 선택합니다. 드롭다운에서 삭제를 선택합니다.

     선택하는 복제본의 오른쪽에서 삭제 옵션을 표시하는 세 개의 점을 보여 주는 스크린샷

  3. 삭제할 복제본의 이름을 확인하고, 확인을 선택하여 확인합니다.

  4. 프로세스가 완료되면 올바른 복제본이 삭제된 복제본 목록을 확인합니다.

자동 복제본 검색

App Configuration 공급자는 지정된 App Configuration 엔드포인트에서 모든 복제본을 자동으로 검색하고 연결을 시도할 수 있습니다. 이 기능을 사용하면 코드를 변경하거나 애플리케이션을 다시 배포하지 않고도 지역에서 복제를 활용할 수 있습니다. 즉, 애플리케이션이 배포된 후에도 지역에서 복제를 사용하도록 설정하거나 추가 복제본을 추가할 수 있습니다.

자동 복제본 검색은 기본적으로 사용하도록 설정되어 있지만 다음 샘플 코드를 참조하여 사용하지 않도록 설정할 수 있습니다(권장하지 않음).

애플리케이션의 program.cs 파일에서 흔히 볼 수 있는 AddAzureAppConfiguration 메서드에 대한 호출을 편집합니다.

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Disable automatic replica discovery
    options.ReplicaDiscoveryEnabled = false;

    // Other changes to options
});

참고 항목

다음 패키지 중 버전 7.1.0 이상을 사용하는 경우 자동 복제본 검색 지원을 사용할 수 있습니다.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

복제본을 사용하여 스케일링 및 장애 조치(failover)

만든 각 복제본에는 전용 엔드포인트가 있습니다. 애플리케이션이 여러 지리적 위치에 있는 경우 한 위치에 더 가까운 복제본에 연결할 수 있도록 이 위치에 있는 애플리케이션의 각 배포를 업데이트합니다. 이렇게 하면 애플리케이션과 App Configuration 간의 네트워크 대기 시간을 최소화할 수 있습니다. 각 복제본에는 별도의 요청 할당량이 있으므로 이 설정은 애플리케이션이 다중 지역 분산 서비스로 확장하는 동안 이 애플리케이션의 확장성에도 도움이 됩니다.

지역 복제가 사용하도록 설정되어 있고 하나의 복제본에 액세스할 수 없는 경우 복원력을 향상시키기 위해 애플리케이션이 다른 복제본으로 장애 조치(failover)되도록 할 수 있습니다. App Configuration 공급자는 사용자가 제공한 복제본 및/또는 자동으로 검색된 추가 복제본을 통해 기본 제공 장애 조치(failover) 지원을 제공합니다. 기본 설정 엔드포인트를 가장 높은 순위에서 가장 낮은 순위의 순서로 나열되는 순서로 된 복제본 엔드포인트 목록을 제공할 수 있습니다. 현재 엔드포인트에 액세스할 수 없는 경우 공급자는 낮은 순위의 엔드포인트로 장애 조치(failover)되지만, 경우에 따라 높은 순위의 엔드포인트에 연결하려고 시도합니다. 사용자가 제공한 모든 복제본에 액세스할 수 없는 경우 자동으로 검색된 복제본이 임의로 선택되고 사용됩니다. 더 높은 순위의 엔드포인트를 사용할 수 있게 되면 공급자는 이후 요청을 위해 해당 엔드포인트로 전환됩니다.

Azure App Configuration을 사용하는 애플리케이션이 있다고 가정하면 다음 샘플 코드로 업데이트하여 장애 조치(failover) 기능을 활용할 수 있습니다. Microsoft Entra 인증에 대한 엔드포인트 목록 또는 액세스 키 기반 인증을 위한 연결 문자열 목록을 제공할 수 있습니다.

애플리케이션의 program.cs 파일에서 흔히 볼 수 있는 AddAzureAppConfiguration 메서드에 대한 호출을 편집합니다.

Microsoft Entra ID로 연결

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Provide an ordered list of replica endpoints
    var endpoints = new Uri[] {
        new Uri("<first-replica-endpoint>"),
        new Uri("<second-replica-endpoint>") };
    
    // Connect to replica endpoints using Microsoft Entra authentication
    options.Connect(endpoints, new DefaultAzureCredential());

    // Other changes to options
});

연결 문자열로 연결

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Provide an ordered list of replica connection strings
    var connectionStrings = new string[] {
        Environment.GetEnvironmentVariable("FIRST_REPLICA_CONNECTION_STRING"),
        Environment.GetEnvironmentVariable("SECOND_REPLICA_CONNECTION_STRING") };
    
    // Connect to replica endpoints using connection strings
    options.Connect(connectionStrings);

    // Other changes to options
});

참고 항목

다음 패키지 중 버전 6.0.0 이상을 사용하는 경우 장애 조치(failover) 지원을 사용할 수 있습니다.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

App Configuration 공급자가 다음 조건을 준수하는 경우 장애 조치(failover)가 수행될 수 있습니다.

  • '서비스를 사용할 수 없음' 상태(500 HTTP 상태 코드 이상)가 포함된 응답을 받습니다.
  • 네트워크 연결 문제가 발생합니다.
  • 요청이 제한됩니다(429 HTTP 상태 코드).

인증 실패와 같은 클라이언트 오류에 대해서는 장애 조치(failover)가 수행되지 않습니다.

복제본을 사용하여 부하 분산

기본적으로 애플리케이션은 장애 조치(failover) 발생 시를 제외하고 항상 사용자가 제공하는 가장 선호하는 엔드포인트로 요청을 보냅니다. 그러나 장애 조치(failover) 외에도 복제본을 사용하여 요청 부하를 분산할 수도 있습니다. 시간이 지남에 따라 사용 가능한 모든 복제본에 요청을 사전에 배포하면 단일 복제본의 요청 할당량이 소진되는 것을 방지하고 애플리케이션의 전반적인 확장성을 향상시킬 수 있습니다.

App Configuration 공급자는 코드에서 제공되거나 자동으로 검색되는지 여부에 관계없이 복제본 간에 부하 분산을 기본적으로 지원합니다. 다음 코드 샘플을 사용하여 애플리케이션에서 이 기능을 사용하도록 설정할 수 있습니다(권장).

애플리케이션의 program.cs 파일에서 흔히 볼 수 있는 AddAzureAppConfiguration 메서드에 대한 호출을 편집합니다.

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Enable load balancing
    options.LoadBalancingEnabled = true;

    // Other changes to options
});

참고 항목

다음 패키지 중 버전 8.0.0-preview.3 이상을 사용하는 경우 부하 분산 지원을 사용할 수 있습니다.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

다음 단계