대상 추적 조정 정책 - Amazon ElastiCache

대상 추적 조정 정책

대상 추적 조정 정책을 사용하는 경우 지표를 선택하고 목표 값을 설정합니다. ElastiCache for Valkey 및 Redis OSS Auto Scaling은 조정 정책을 트리거하는 CloudWatch 경보를 생성 및 관리하고 지표와 대상 값을 기준으로 조정 조절을 계산합니다. 조정 정책은 필요에 따라 샤드를 추가하거나 제거하여 지표를 지정한 대상 값으로 또는 대상 값에 가깝게 유지합니다. 대상 추적 조정 정책은 지표를 목표 값에 가깝게 유지하는 것 외에도 로드 패턴의 변화로 인한 지표 변동에 따라 반응하여 플릿의 용량이 갑작스럽게 바뀌는 것을 최소화합니다.

목표 값이 구성되어 있으며 미리 정의된 평균 ElastiCachePrimaryEngineCPUUtilization 지표가 사용되는 조정 정책을 예로 든다면, 이러한 정책은 CPU 사용률을 지정된 목표 값에 근접하게 유지할 수 있습니다.

사전 정의된 지표

사전 정의된 지표는 해당 CloudWatch 지표의 특정 이름, 차원 및 통계(average)를 참조하는 구조입니다. Auto Scaling 정책은 클러스터에 대해 다음 사전 정의된 지표 중 하나를 정의합니다.

사전 정의된 지표 유형 CloudWatch 지표 이름 CloudWatch 지표 차원 부적격 인스턴스 유형
ElastiCachePrimaryEngineCPUUtilization

EngineCPUUtilization

ReplicationGroupId, 역할 = 프라이머리

없음
ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage

DatabaseCapacityUsageCountedForEvictPercentage

Valkey 또는 Redis OSS 복제 그룹 지표

없음
ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage

DatabaseMemoryUsageCountedForEvictPercentage

Valkey 또는 Redis OSS 복제 그룹 지표

R6gd

데이터 계층형 인스턴스 유형은 데이터를 메모리와 SSD 모두에 저장하므로 ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage를 사용할 수 없습니다. 데이터 계층형 인스턴스의 예상 사용 사례는 100% 메모리를 사용하고 필요에 따라 SSD를 가득 채우는 것입니다.

샤드의 Auto Scaling 기준

서비스에서 사전 정의된 지표가 목표 설정보다 크거나 같음을 감지하면 자동으로 샤드 용량을 증가시킵니다. ElastiCache for Valkey 및 Redis OSS는 두 개의 숫자(목표 기준 변동 백분율 및 현재 샤드 수의 20%) 중 더 큰 수만큼 클러스터 샤드를 스케일 아웃합니다. 스케일 인의 경우 ElastiCache는 전체 지표 값이 정의된 목표의 75% 미만인 경우가 아니면 자동으로 스케일 인하지 않습니다.

스케일 아웃 예제로, 샤드가 50개 있다고 가정합니다.

  • 목표가 30% 위반되면 ElastiCache는 30%만큼 스케일 아웃하여 클러스터당 65개의 샤드를 유지합니다.

  • 목표가 10% 위반되면 ElastiCache는 기본적으로 최솟값인 20%만큼 스케일 아웃하여 클러스터당 60개의 샤드를 유지합니다.

스케일 인 예제로, 목표 값을 60%로 선택했다고 가정합니다. ElastiCache는 지표가 45%(목표 60%보다 25% 아래)보다 작거나 같아질 때까지 자동으로 스케일 인하지 않습니다.

Auto Scaling 고려 사항

다음 사항에 유의하세요.

  • 대상 추적 조정 정책은 지정한 지표가 목표 값을 초과할 때 한해서 확장을 수행해야 합니다. 대상 추적 조정 정책에서는 지정한 지표가 목표 값보다 작을 때 확장할 수 없습니다. ElastiCache for Valkey 및 Redis OSS는 클러스터에 있는 기존 샤드의 목표 편차 최솟값인 20%만큼 샤드를 스케일 아웃합니다.

  • 대상 추적 조정 정책에서는 지정한 지표에 데이터가 부족할 때 조정을 수행하지 않습니다. 데이터가 부족하다고 해서 사용량이 낮은 것으로 해석하지 않기 때문에 축소를 수행하지 않습니다.

  • 목표 값과 실제 지표 데이터 포인트 사이에는 차이가 발생할 수 있습니다. 이것은 ElastiCache Auto Scaling이 추가하거나 제거할 용량을 결정할 때마다 항상 반올림 또는 내림을 통해 어림짐작으로 동작하기 때문입니다. 이는 용량을 부족하게 추가하거나 너무 많이 제거하는 일을 방지하기 위해서입니다.

  • 애플리케이션 가용성을 보장하기 위해 서비스는 지표에 비례하여 가능한 한 빠르게 스케일 아웃하지만, 스케일 인은 훨씬 보수적으로 수행합니다.

  • 각각 다른 지표를 사용한다는 전제하에 다수의 대상 추적 조정 정책을 ElastiCache for Valkey 및 Redis OSS 클러스터에 구성할 수 있습니다. ElastiCache Auto Scaling은 항상 가용성을 우선시하므로, 대상 추적 정책이 스케일 아웃 또는 스케일 인을 허용하는지에 따라 그 동작이 달라집니다. 대상 추적 정책 중 하나라도 확장을 허용할 경우 서비스를 확장하지만, 모든 대상 추적 정책(축소 부분이 활성화됨)이 축소를 허용하는 경우에만 서비스를 축소합니다.

  • ElastiCache Auto Scaling의 대상 추적 조정 정책에서 관리되는 CloudWatch 경보는 편집하거나 삭제하지 마세요. 조정 정책을 삭제하면 ElastiCache 오토 스케일링에서 경보가 자동으로 삭제됩니다.

  • ElastiCache 오토 스케일링은 클러스트 샤드를 사용자가 수동으로 수정하는 것도 허용합니다. 이러한 수동 조정은 조정 정책에 연결된 기존의 CloudWatch 경보에는 영향을 주지 않지만 이러한 CloudWatch 경보를 트리거하는 지표에 영향을 줄 수 있습니다.

  • Auto Scaling으로 관리되는 이러한 CloudWatch 경보는 클러스터의 모든 샤드에 대한 AVG 지표를 통해 정의됩니다. 따라서 사용량이 많은 샤드가 있으면 다음 시나리오 중 하나가 발생할 수 있습니다.

    • CloudWatch 경보를 트리거하는 몇 개의 사용량이 많은 샤드에 대한 로드로 인해 필요하지 않을 때 조정이 발생합니다.

    • 경보에 영향을 미치는 모든 샤드에서 집계된 AVG는 정책을 위반하지 않기 때문에 필요할 때 조정이 발생하지 않습니다.

  • 클러스터당 노드에 대한 ElastiCache의 기본 제한은 계속 적용됩니다. 따라서 Auto Scaling을 선택할 때 최대 노드 수가 기본 제한보다 클 것으로 예상되는 경우 AWS 서비스 한도에서 한도 향상을 요청하고 한도 유형을 인스턴스 유형별 클러스터당 노드로 선택합니다.

  • VPC에서 스케일 아웃 중에 필요한 충분한 수의 ENI(탄력적 네트워크 인터페이스)를 사용할 수 있는지 확인합니다. 자세한 내용은 탄력적 네트워크 인터페이스를 참조하세요.

  • EC2에서 사용할 수 있는 용량이 충분하지 않은 경우 ElastiCache 오토 스케일링은 조정하지 않고 용량을 사용할 수 있게 될 때까지 지연됩니다.

  • 스케일 인 중에 ElastiCache for Redis OSS Auto Scaling은 직렬화 후 크기가 256MB 이상인 항목이 있는 슬롯이 포함된 샤드를 제거하지 않습니다.

  • 스케일 인 중에 결과 샤드 구성에서 사용할 수 있는 메모리가 충분하지 않으면 샤드를 제거하지 않습니다.