Auto Scaling Valkey 및 Redis OSS 클러스터 - Amazon ElastiCache

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Auto Scaling Valkey 및 Redis OSS 클러스터

사전 조건

ElastiCache Auto Scaling은 다음으로 제한됩니다.

  • Valkey 7.2 이상을 실행하거나 Redis OSS 엔진 버전 6.0 이상을 실행하는 Valkey 또는 RedisOSS(클러스터 모드 활성화됨) 클러스터

  • Valkey 7.2 이상을 실행하거나 Redis OSS 엔진 버전 7.0.7 이상을 실행하는 데이터 계층화(클러스터 모드 활성화됨) 클러스터

  • 인스턴스 크기 - 대형, XLarge, 2XLarge

  • 인스턴스 유형 패밀리 - R7g, R6g, R6gd, R5, M7g, M6g, M5, C7gn

  • 의 Auto Scaling ElastiCache 은 글로벌 데이터 스토어, Outpost 또는 로컬 영역에서 실행되는 클러스터에는 지원되지 않습니다.

Valkey 또는 Redis를 사용한 ElastiCache Auto Scaling으로 용량 자동 관리 OSS

ElastiCache Valkey 또는 Redis를 사용한 Auto ScalingOSS은 ElastiCache 서비스에서 원하는 샤드 또는 복제본을 자동으로 늘리거나 줄이는 기능입니다. 는 Application Auto Scaling 서비스를 ElastiCache 활용하여 이 기능을 제공합니다. 자세한 내용은 Application Auto Scaling 섹션을 참조하세요. 자동 조정을 사용하려면 할당한 CloudWatch 지표와 대상 값을 사용하는 조정 정책을 정의하고 적용합니다. ElastiCache 자동 조정은 정책을 사용하여 실제 워크로드에 대한 응답으로 인스턴스 수를 늘리거나 줄입니다.

AWS Management Console 를 사용하여 사전 정의된 지표를 기반으로 조정 정책을 적용할 수 있습니다. predefined metric이 열거 형식으로 정의되어 이를 코드의 이름별로 지정하거나 AWS Management Console에서 사용할 수 있습니다. AWS Management Console을 사용하여 선택하는 경우에는 사용자 지정 지표를 사용할 수 없습니다. 또는 AWS CLI 또는 Application Auto ScalingAPI을 사용하여 사전 정의된 지표 또는 사용자 지정 지표를 기반으로 조정 정책을 적용할 수 있습니다.

ElastiCache 와 함께 Valkey 또는 Redis는 다음 차원에 대한 크기 조정을 OSS 지원합니다.

  • 샤드 - 수동 온라인 리샤딩과 유사하게 클러스터에서 샤드를 자동으로 추가/제거합니다. 이 경우 ElastiCache 자동 조정은 사용자를 대신하여 조정을 트리거합니다.

  • 복제본 - 수동 복제본 증가/감소 작업과 유사하게 클러스터에서 복제본을 자동으로 추가/제거합니다. ElastiCache Valkey 또는 Redis OSS Auto Scaling을 사용하면 클러스터의 모든 샤드에서 복제본을 균일하게 추가/제거할 수 있습니다.

ElastiCache 와 함께 Valkey 또는 Redis는 다음과 같은 유형의 자동 조정 정책을 OSS 지원합니다.

Valkey 또는 Redis를 ElastiCache 사용한 에 대한 Auto Scaling 이미지 OSS

다음 단계에서는 이전 다이어그램과 같이 Valkey 또는 Redis OSS Auto Scaling 프로세스를 ElastiCache 사용하여 를 요약합니다.

  1. 복제 그룹에 대한 ElastiCache 자동 조정 정책을 생성합니다.

  2. ElastiCache Valkey 또는 Redis를 사용한 자동 조정은 사용자를 대신하여 한 쌍의 CloudWatch 경보를 OSS 생성합니다. 각 쌍은 지표의 상한값과 하한값을 나타냅니다. 이러한 CloudWatch 경보는 클러스터의 실제 사용률이 일정 기간 동안 목표 사용률에서 벗어나면 트리거됩니다. 콘솔에서 경보를 볼 수 있습니다.

  3. 구성된 지표 값이 특정 기간 동안 목표 사용률을 초과(또는 목표 미만으로)하는 경우 는 자동 조정을 호출하여 조정 정책을 평가하는 경보를 CloudWatch 트리거합니다.

  4. ElastiCache Valkey 또는 Redis OSS Auto Scaling을 사용하면 클러스터 용량을 조정하기 위한 수정 요청이 발생합니다.

  5. ElastiCache Valkey 또는 Redis를 사용하면 수정 요청을 OSS 처리하여 클러스터 샤드/복제본 용량을 동적으로 증가(또는 감소)하여 대상 사용률에 도달합니다.

Valkey 또는 Redis OSS Auto Scaling ElastiCache 의 작동 방식을 이해하려면 라는 클러스터가 있다고 가정해 보겠습니다UsersCluster. 에 대한 CloudWatch 지표를 모니터링하여 트래픽이 피크에 있을 때 클러스터에 필요한 최대 샤드와 트래픽이 가장 낮은 지점에 있을 때 필요한 최소 샤드를 UsersCluster결정합니다. UsersCluster 클러스터의 CPU 사용률에 대한 목표 값도 결정합니다. ElastiCache Auto ScalingUsersCluster은 대상 추적 알고리즘을 사용하여 의 프로비저닝된 샤드가 필요에 따라 조정되어 사용률이 대상 값과 같거나 가까운 상태로 유지되도록 합니다.

참고

스케일링에는 상당한 시간이 걸릴 수 있으며 샤드가 리밸런싱되려면 추가 클러스터 리소스가 필요합니다. Valkey 또는 Redis OSS Auto Scaling을 ElastiCache 사용하면 실제 워크로드가 몇 분 동안 상승(또는 우울)된 상태로 유지되는 경우에만 리소스 설정을 수정합니다. Auto Scaling 대상 추적 알고리즘은 장기적으로 대상 사용률을 선택한 값 또는 그 근처에서 유지하려고 합니다.

IAM Auto Scaling에 필요한 권한

ElastiCache Valkey 또는 Redis OSS Auto Scaling을 사용하면 ElastiCache CloudWatch, 및 Application Auto Scaling을 조합하여 사용할 수 있습니다APIs. 클러스터는 ElastiCache (Redis OSS)를 사용하여 생성 및 업데이트되고, 경보는 를 사용하여 생성되며 CloudWatch, 조정 정책은 Application Auto Scaling 을 사용하여 생성됩니다. 클러스터 생성 및 업데이트에 대한 표준 IAM 권한 외에도 ElastiCache Auto Scaling 설정에 액세스하는 IAM 사용자는 동적 조정을 지원하는 서비스에 대한 적절한 권한을 가지고 있어야 합니다. IAM 사용자는 다음 예제 정책에 표시된 작업을 사용할 수 있는 권한이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration", "elasticache:IncreaseReplicaCount", "elasticache:DecreaseReplicaCount", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheParameters", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": "arn:aws:iam::123456789012:role/autoscaling-roles-for-cluster" } ] }

서비스 연결 역할

또한 Valkey 또는 Redis OSS Auto Scaling 서비스가 ElastiCache 포함된 에는 클러스터 및 CloudWatch 경보를 설명하는 권한과 사용자를 대신하여 ElastiCache 대상 용량을 수정할 수 있는 권한이 필요합니다. 클러스터에 대해 Auto Scaling을 활성화하면 라는 서비스 연결 역할이 생성됩니다AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG. 이 서비스 연결 역할은 정책의 경보를 설명하고, 플릿의 현재 용량을 모니터링하고, 플릿의 용량을 수정할 수 있는 ElastiCache 자동 조정 권한을 부여합니다. 서비스 연결 역할은 ElastiCache 자동 조정의 기본 역할입니다. 자세한 내용은 Application Auto Scaling 사용 설명서의 ElastiCache (Redis OSS) Auto Scaling에 대한 서비스 연결 역할을 참조하세요. Auto Scaling

Auto Scaling 모범 사례

Auto Scaling에 등록하기 전에 다음 작업을 수행하는 것이 좋습니다.

  1. 하나의 추적 지표만 사용 - 클러스터에 CPU 또는 데이터 집약적 워크로드가 있는지 식별하고 해당하는 사전 정의된 지표를 사용하여 조정 정책을 정의합니다.

    • 엔진 CPU: ElastiCachePrimaryEngineCPUUtilization (샤드 차원) 또는 ElastiCacheReplicaEngineCPUUtilization (복제 차원)

    • 데이터베이스 사용: ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage 이 크기 조정 정책은 클러스터에서 maxmemory-policy를 noeviction으로 설정한 경우에 가장 잘 작동합니다.

    클러스터의 차원당 여러 정책을 피하는 것이 좋습니다. Valkey 또는 Redis OSS Auto 스케일링 ElastiCache 을 사용하면 대상 추적 정책이 스케일 아웃할 준비가 되면 확장 가능한 대상을 스케일 아웃하지만 모든 대상 추적 정책( 스케일 인 부분이 활성화된 상태)이 스케일 인할 준비가 된 경우에만 스케일 인됩니다. 여러 정책이 조정 가능한 대상에 스케일 아웃 또는 인을 동시에 지시하는 경우 대상은 스케일 인과 스케일 아웃 모두에 대해 가장 큰 용량을 제공하는 정책에 따라 조정합니다.

  2. 대상 추적을 위한 사용자 지정 지표 - Auto Scaling은 정책에 대해 선택한 지표의 변화에 비례하는 스케일 아웃/인에 가장 적합하므로 대상 추적에 사용자 지정 지표를 사용할 경우 주의해야 합니다. 이와 같이 크기 조정 작업에 비례하여 변경되지 않는 지표가 정책 생성에 사용되는 경우 가용성이나 비용에 영향을 줄 수 있는 지속적인 스케일 아웃 또는 스케일 인 작업이 발생할 수 있습니다.

    데이터 계층화 클러스터(r6gd 패밀리 인스턴스 유형)의 경우 크기 조정에 메모리 기반 지표를 사용하지 마세요.

  3. 예약된 조정(Scheduled Scaling) - 워크로드가 결정적인지(특정 시간에 상한/하한에 도달) 확인되면 예약 조정을 사용하고 필요에 따라 대상 용량을 구성하는 것이 좋습니다. 대상 추적은 비결정적 워크로드와 필요한 대상 지표에 따라 더 많은 리소스가 필요할 때 스케일 아웃되고 더 적은 리소스가 필요할 때 스케일 인되는 방식으로 작동하는 클러스터에 가장 적합합니다.

  4. 스케일 인 사용 중지(Disable Scale-In) - 지표의 급속한 증가/감소는 연속적인 스케일 아웃/인 변동을 트리거할 수 있으므로 대상 추적의 자동 크기 조정은 워크로드가 점진적으로 증가/감소하는 클러스터에 가장 적합합니다. 이러한 변동을 방지하기 위해 스케일 인을 사용 중지한 상태로 시작하고 나중에 언제든지 필요에 따라 수동으로 스케일 인할 수 있습니다.

  5. 애플리케이션 테스트(Test your application) - 예상 최소/최대 워크로드를 사용하여 애플리케이션을 테스트하여 가용성 문제를 방지하기 위한 조정 정책을 생성하는 동안 클러스터에 필요한 최소, 최대 샤드/복제본의 절대 수를 확인하는 것이 좋습니다. 자동 크기 조정은 대상에 구성된 최대 임계값까지 스케일 아웃하고 최소 임계값까지 스케일 인할 수 있습니다.

  6. 목표 값 정의 - 4주 기간 동안 클러스터 사용률에 대한 해당 CloudWatch 지표를 분석하여 목표 값 임계값을 결정할 수 있습니다. 어떤 값을 선택할지 잘 모르는 경우 지원되는 최소 사전 정의 지표 값으로 시작하는 것이 좋습니다.

  7. AutoScaling 대상 추적은 샤드/복제본 차원에 워크로드가 균일하게 분산된 클러스터에 가장 적합합니다. 균일하게 분산되지 않으면 다음과 같은 결과가 발생할 수 있습니다.

    • 사용량이 많은 몇 개의 샤드/복제본에서 워크로드의 급격한 증가/감소로 인해 필요하지 않을 때 조정이 발생할 수 있습니다.

    • 사용량이 많은 샤드/복제본이 있어도 전체 평균이 대상에 가깝기 때문에 필요할 때 조정이 발생하지 않을 수 있습니다.

참고

클러스터를 확장할 때 ElastiCache 는 기존 노드(임의로 선택됨) 중 하나에 로드된 함수를 새 노드(들)에 자동으로 복제합니다. 클러스터에 Valkey 또는 Redis OSS 7.0 이상이 있고 애플리케이션이 함수 를 사용하는 경우 클러스터가 다른 샤드에서 다른 함수로 끝나지 않도록 스케일 아웃하기 전에 모든 함수를 모든 샤드에 로드하는 것이 좋습니다.

에 등록한 후 다음 사항에 AutoScaling유의하세요.

  • 자동 크기 조정의 지원되는 구성에 제한이 있으므로 자동 크기 조정에 등록된 복제 그룹의 구성을 변경하지 않는 것이 좋습니다. 예를 들어, 다음과 같습니다.

    • 인스턴스 유형을 지원되지 않는 유형으로 수동으로 수정합니다.

    • 복제 그룹을 글로벌 데이터 스토어에 연결합니다.

    • ReservedMemoryPercent 파라미터를 변경합니다.

    • 정책 생성 중에 구성된 최소/최대 용량을 초과하여 샤드/복제본을 수동으로 늘리거나 줄입니다.