Azure Managed Redis(미리 보기) 인스턴스에 대한 활성 지역 복제 구성
이 문서에서는 Azure Portal을 사용하여 활성 지역 복제 캐시를 구성하는 방법에 대해 설명합니다.
활성 지역에서 복제 기능을 통해 최대 5개의 Azure Managed Redis(미리 보기) 인스턴스를 Azure 지역 전체를 아우르는 단일 캐시로 통합할 수 있습니다. 모든 인스턴스는 로컬 기본 캐시 역할을 합니다. 애플리케이션은 읽기 및 쓰기 요청에 사용할 인스턴스를 결정합니다.
참고 항목
Azure 지역 간 데이터 전송은 표준 대역폭 요금으로 청구됩니다.
활성 지역 복제의 작동 방식
활성 지역 복제는 충돌 없는 CRDT(복제된 데이터 형식)를 사용하여 대륙에 분산될 수 있는 Redis 인스턴스 간에 데이터를 원활하게 분산합니다. 이러한 인스턴스는 활성-활성 구성에서 연결됩니다. 여기서 한 인스턴스에 대한 쓰기는 동일한 지역 복제 그룹의 다른 인스턴스에 자동으로 반영됩니다. 이 양방향 데이터 복제는 데이터가 주 복제본에서 지역 복제본으로 복제되는 단방향 활성-수동 복제 방식과 다르지만 다른 방향은 아닙니다. 이 도구는 여러 가지 방법으로 일반적으로 사용되는 강력한 도구입니다.
- 사용자에게 더 가까운 캐싱을 배포하여 로컬 대기 시간을 제공합니다. 활성 지역 복제 Redis 인스턴스 네트워크를 사용하면 캐시를 각 지역의 사용자와 지리적으로 더 가깝게 배치하여 대기 시간을 줄이고 앱 성능을 향상시킬 수 있습니다.
- 글로벌 애플리케이션 동기화. 지역에서 복제된 캐시는 단일 Redis 인스턴스처럼 표시되므로 지역별로 데이터를 분할할 필요 없이 전역적으로 데이터를 배포할 수 있습니다. 예를 들어 단일 Redis 정렬 집합을 사용하여 각 지역에 대해 별도의 순위표를 제공하는 대신 전 세계 모든 사용자에게 게임 순위표를 제공할 수 있습니다.
- 지역 가동 중단으로 인한 가동 중지 시간 및 위험을 줄입니다. 지역 복제 그룹의 각 Redis 인스턴스는 그룹의 다른 인스턴스의 최신 데이터로 지속적으로 업데이트되므로 지역 가동 중단 시 데이터가 잘 보존됩니다. 애플리케이션은 그룹의 다른 인스턴스 중 하나를 사용하도록 일시적으로 전환할 수 있으며, 지역이 다시 온라인 상태가 되면 Redis 인스턴스가 다른 지역에서 복제된 캐시의 데이터와 함께 자동으로 다시 로드됩니다.
활성 지역 복제의 작동 방식에 대한 자세한 내용은 활성-활성 지역 배포(CRDTS 기반)를 참조 하세요.
가용성 범위
서비스 계층 | 메모리 최적화, 분산, 컴퓨팅 최적화하기 | 최적화된 플래시 |
---|---|---|
사용 가능 | 예(B0 및 B1 제외) | 예 |
Important
Balanced B0 및 B1 SKU는 활성 지역 복제를 지원하지 않습니다.
활성 지역 복제 필수 구성 요소
활성 지역 복제를 사용하는 경우 몇 가지 제한 사항이 있습니다.
- 활성 지역 복제는 Azure Managed Redis에서 고가용성을 목적으로 복제 기능을 활용하는 등의 구성 시에만 사용 가능합니다.
- RediSearch 및 RedisJSON 모듈만 지원됩니다.
- 최적화된 플래시 계층에서는 제거 없음 제거 정책만 사용할 수 있습니다. 다른 계층에서 모든 제거 정책이 지원됩니다.
- 활성 지역 복제는 뛰어난 환경을 제공하기 때문에 데이터 지속성은 지원되지 않습니다.
- 지역 복제 그룹 내의 모든 캐시는 구성이 동일해야 합니다. 예를 들어 모든 캐시에는 동일한 SKU, 용량, 제거 정책, 클러스터링 정책, 모듈 및 TLS 설정이 있어야 합니다.
- 지역에서 복제 그룹의 한 인스턴스의 크기를 조정하는 경우 추가 크기 조정이 수행되기 전에 해당 그룹의 다른 인스턴스의 크기를 동일한 크기로 조정해야 합니다. 자세한 내용은 지역 복제 그룹의 인스턴스 크기 조정을 참조하세요.
- 활성 지역 복제를 사용하는 경우
FLUSHALL
및FLUSHDB
Redis 명령을 사용할 수 없습니다. 명령을 금지하면 의도하지 않은 데이터 삭제가 방지됩니다. 대신 플러시 작업을 사용합니다.
활성 지역 복제 그룹 만들기 또는 조인하기
새 Azure Managed Redis 리소스를 만드는 경우 고급 탭을 선택합니다. 클러스터링 정책을 포함한 양식의 첫 번째 부분을 완료합니다. 클러스터링 정책 선택에 대한 자세한 내용은 Azure Managed Redis의 클러스터링을 참조합니다.
구성을 선택하여 활성 지역 복제를 설정합니다.
첫 번째 캐시 인스턴스에 대해 새 복제 그룹을 만듭니다. 또는 목록에서 기존 항목을 선택합니다.
구성을 선택하여 완료합니다.
첫 번째 캐시가 성공적으로 만들어질 때까지 기다립니다. 완료되면 활성 지역 복제에 대해 구성됨 집합이 표시됩니다. 지역 복제 그룹의 캐시 인스턴스별로 위 단계를 반복합니다.
활성 지역 복제 그룹에 기존 인스턴스 추가
기존 캐시 인스턴스를 활성 지역 복제 그룹에 추가하기 위해 REST API를 사용하여 강제 링크 작업을 수행할 수 있습니다.
캐시 인스턴스와 연결된 데이터는 모두 삭제됩니다. 인스턴스가 지역 복제 그룹에 조인되는 동안 몇 분간 일시적인 서비스 중단이 발생할 수 있습니다. 포털 및 CLI에서 해당 기능은 아직 지원되지 않습니다.
활성 지역 복제 그룹에서 제거
활성 지역 복제 그룹에서 캐시 인스턴스를 제거하려는 경우 해당 인스턴스를 삭제하기만 하면 됩니다. 나머지 인스턴스는 자동으로 다시 구성됩니다.
지역 가동 중단이 있는 경우 강제 연결 해제
Azure Managed Redis의 활성 지역 복제 기능은 가용성을 현저히 향상시키는 강력한 기능입니다. 그러나 지역 가동 중단이 있는 경우 캐시 준비 단계를 수행해야 합니다.
예를 들어 다음 팁을 고려해 보세요.
- 한 지역이 가동 중단되면 전환할 지역 복제 그룹의 다른 캐시를 미리 식별합니다.
- 모든 애플리케이션과 클라이언트가 식별된 백업 캐시에 액세스할 수 있도록 방화벽이 설정되어 있는지 확인합니다.
- 지역 복제 그룹의 각 캐시에는 자체 액세스 키가 있습니다. 백업 캐시를 대상으로 지정할 때 애플리케이션이 다른 액세스 키로 전환하는 방법을 결정합니다.
- 지역 복제 그룹의 캐시가 가동 중단되면 지역 복제 그룹의 모든 캐시에서 메타데이터가 증가하기 시작합니다. 쓰기를 모든 캐시에 다시 동기화할 수 있을 때까지 메타데이터를 삭제할 수 없습니다. 다운된 캐시를 강제로 연결 해제하여 메타데이터가 커지는 것을 방지할 수 있습니다. 특히 쓰기가 많은 워크로드의 경우 캐시에서 사용 가능한 메모리를 모니터링하고 메모리 압력이 있는 경우 연결을 해제하는 것이 좋습니다.
회로 차단기 패턴을 사용할 수도 있습니다. 이 패턴을 사용하여 지역 중단이 발생한 캐시에서 동일한 지역 복제 그룹의 백업 캐시로 트래픽을 자동으로 리디렉션합니다. Azure Traffic Manager 또는 Azure Load Balancer와 같은 Azure 서비스를 사용하여 리디렉션을 사용하도록 설정합니다.
지역 중단으로 인해 복제 그룹의 캐시 중 하나를 사용할 수 없는 경우 복제 그룹에서 사용할 수 없는 캐시를 강제로 제거할 수 있습니다.
복제 그룹의 나머지 캐시가 사용할 수 없는 캐시에 공유되지 않은 메타데이터를 저장하기 시작하므로 사용할 수 없는 캐시를 제거해야 합니다. 이 경우 복제 그룹의 사용 가능한 캐시에 메모리가 부족할 수 있습니다.
Azure Portal로 이동하여 여전히 사용할 수 있는 복제 그룹의 캐시 중 하나를 선택합니다.
왼쪽의 리소스 메뉴에서 활성 지역 복제로 선택하여 작업 창에서 설정을 확인합니다.
확인란을 선택하여 강제로 연결 해제해야 하는 캐시를 선택합니다.
강제 연결 해제를 선택한 다음, 확인을 선택하여 확인합니다.
영향을 받는 지역의 가용성이 복원되면 영향을 받는 캐시를 삭제하고 다시 만들어 복제 그룹에 다시 추가해야 합니다.
Azure CLI 또는 PowerShell을 사용하여 활성 지역 복제 설정
Azure CLI
Azure CLI를 사용하여 새 캐시 및 지역 복제 그룹을 만들거나 기존 지역 복제 그룹에 새 캐시를 추가합니다. 자세한 내용은 az redisenterprise create를 참조하세요.
Azure CLI를 사용하여 새 지역 복제 그룹에서 새 Azure Managed Redis 인스턴스 만들기
이 예에서는 미국 동부 지역에 Cache1이라고 하는 새 Azure Managed Redis Balanced B10 인스턴스를 만듭니다. 그런 다음 캐시가 replicationGroup이라는 새로운 활성 지역 복제 그룹에 추가됩니다.
az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"
활성 지역 복제를 올바르게 구성하려면 만드는 중인 캐시 인스턴스의 ID를 --linked-databases
매개 변수와 함께 추가해야 합니다. ID의 형식은 다음과 같습니다.
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Azure CLI를 사용하여 기존 지역 복제 그룹에서 새 Azure Managed Redis 인스턴스 만들기
이 예에서는 미국 서부 지역에 Cache2라고 하는 새 Balanced B10 캐시 인스턴스를 만듭니다. 그런 다음, 스크립트는 이전 절차에서 만든 replicationGroup
활성 지역 복제 그룹에 캐시를 추가합니다. 이렇게 하면 Cache1을 사용하여 활성-활성 구성으로 연결됩니다.
az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"
이전과 마찬가지로 --linked-databases
매개 변수를 사용하여 Cache1 및 Cache2를 모두 나열해야 합니다.
Azure PowerShell
Azure PowerShell을 사용하여 새 캐시 및 지역 복제 그룹을 만들거나 기존 지역 복제 그룹에 새 캐시를 추가합니다. 자세한 내용은 New-AzRedisEnterpriseCache를 참조하세요.
PowerShell을 사용하여 새 지역 복제 그룹에서 새 Azure Managed Redis 인스턴스 만들기
이 예에서는 미국 동부 지역에 Cache1이라고 하는 새 Azure Managed Redis Balanced B10 캐시 인스턴스를 만듭니다. 그런 다음 캐시가 replicationGroup이라는 새로운 활성 지역 복제 그룹에 추가됩니다.
New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'
활성 지역 복제를 올바르게 구성하려면 만드는 중인 캐시 인스턴스의 ID를 -LinkedDatabase
매개 변수와 함께 추가해야 합니다. ID의 형식은 다음과 같습니다.
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
PowerShell을 사용하여 기존 지역 복제 그룹에서 새 Azure Managed Redis 인스턴스 만들기
이 예에서는 미국 서부 지역에 Cache2라고 하는 새 Balanced B10 캐시 인스턴스를 만듭니다. 이후, 스크립트는 “replicationGroup”라는 이름의, 이전 단계에서 생성된 활성 지역 복제 그룹에 캐시를 추가합니다. 그 결과 Cache1 및 Cache2라고 하는 두 개의 캐시가 활성-활성 구성으로 연결됩니다.
New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'
이전과 마찬가지로 -LinkedDatabase
매개 변수를 사용하여 Cache1 및 Cache2를 모두 나열해야 합니다.
지역 복제 그룹에서 인스턴스 크기 조정
활성 지역 복제를 사용하도록 구성된 인스턴스 크기를 조정할 수 있습니다. 지역 복제 그룹은 캐시 크기가 서로 다를 경우 문제가 발생할 소지가 있습니다. 이러한 문제를 방지하기 위해, 지역 복제 그룹에 속한 모든 캐시의 크기와 성능 계층은 동일하게 설정되어야 합니다.
크기 조정 과정에서 크기 또는 계층을 변경해야 하며, 지역 복제 그룹에 속한 모든 인스턴스의 크기를 동시에 조절하는 것이 쉽지 않기 때문에 Azure Managed Redis는 잠금 메커니즘을 사용하고 있습니다. 지역 복제 그룹 내에서 인스턴스 크기를 조정할 시, 기본 VM의 크기는 변경되지만, 다른 인스턴스들이 확장을 완료하기 전까지는 사용 가능한 메모리는 기존 크기로 제한됩니다. 추가적으로, 나머지 인스턴스에 대한 크기 조정 작업은 첫 번째 캐시와 동일한 구성으로 조정이 완료될 때까지 잠금 상태를 유지합니다.
크기 조정 예제:
예를 들어, 지역 복제 그룹 내에 세 개의 메모리 최적화 M10 인스턴스가 존재할 수 있습니다.
인스턴스 이름 | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | 메모리 최적화 M10 | 메모리 최적화 M10 | 메모리 최적화 M10 |
이 지역의 복제 그룹을 구성하는 각 인스턴스를 컴퓨팅 최적화 X20 인스턴스로 확장하는 상황을 가정해 보겠습니다. 먼저 캐시 중 하나를 X20으로 확장합니다.
인스턴스 이름 | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | 컴퓨팅 최적화 X20 | 메모리 최적화 M10 | 메모리 최적화 M10 |
이때 Redis01
및 Redis02
인스턴스는 컴퓨팅 최적화 X20 인스턴스만 확장할 수 있습니다. 기타 모든 크기 조정 작업은 차단됩니다.
참고 항목
이때 Redis00
인스턴스 크기 조정은 더 이상 차단되지 않습니다. 그러나 Redis01
또는 Redis02
가 컴퓨팅 최적화 X20으로 크기 조정되면 차단됩니다.
모든 인스턴스의 계층 및 크기가 동일하게 조정되면, 크기 조정 잠금이 해제됩니다.
인스턴스 이름 | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | 컴퓨팅 최적화 X20 | 컴퓨팅 최적화 X20 | 컴퓨팅 최적화 X20 |
플러시 작업
실수로 데이터가 손실될 수 있으므로 지역 복제 그룹에 있는 캐시 인스턴스에는 FLUSHALL
및 FLUSHDB
Redis 명령을 사용할 수 없습니다. 대신 활성 지역 복제 작업 창의 맨 위에 있는 캐시 플러시 단추를 사용합니다.
Azure CLI 또는 PowerShell을 사용하여 캐시 플러시
Azure CLI 및 PowerShell을 사용하여 플러시 작업을 트리거할 수도 있습니다. Azure CLI 사용에 대한 자세한 내용은 az redisenterprise database flush를 참조하세요. PowerShell 사용에 대한 자세한 내용은 Invoke-AzRedisEnterpriseCacheDatabaseFlush를 참조하세요.
Important
Flush Caches 기능을 사용할 때는 주의해야 합니다. 단추를 선택하면 현재 캐시 및 지역 복제 그룹의 모든 연결된 캐시에서 모든 데이터가 제거됩니다.
Azure 역할 기반 액세스 제어를 사용하여 기능에 대한 액세스를 관리합니다. 권한 있는 사용자만 모든 캐시를 플러시할 수 있는 액세스 권한을 부여받아야 합니다.