

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

# 복제본에 Auto Scaling 사용
<a name="AutoScaling-Using-Replicas"></a>

ElastiCache 복제 그룹은 단일 논리적 노드로 작동하도록 하나 이상의 캐시를 설정할 수 있습니다.

다음은 대상 추적 및 예약된 정책에 대한 세부 정보와 AWS Management Console AWS CLI 및 API를 사용하여 이를 적용하는 방법을 제공합니다.

# 대상 추적 조정 정책
<a name="AutoScaling-Scaling-Policies-Replicas-Replicas"></a>

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

## 복제본에 대한 Auto Scaling 기준
<a name="AutoScaling-Scaling-Criteria-Replicas"></a>

Auto Scaling 정책은 클러스터에 대해 다음과 같은 사전 정의된 지표를 정의합니다.

`ElastiCacheReplicaEngineCPUUtilization`: ElastiCache가 오토 스케일링 작업을 트리거하는 데 사용하는 모든 복제본에서 집계된 AVG EngineCPU 사용률 임계값입니다. 사용률 목표를 35%에서 70% 사이로 설정할 수 있습니다.

서비스에서 `ElastiCacheReplicaEngineCPUUtilization` 지표가 목표 설정보다 크거나 같음을 감지하면 자동으로 샤드 전체에서 복제본을 증가시킵니다. ElastiCache는 2개의 숫자(목표 및 한 복제본 기준 변동 백분율) 중 더 큰 수만큼 클러스터 복제본을 스케일 아웃합니다. 스케일 인의 경우 ElastiCache는 전체 지표 값이 정의된 목표의 75% 미만인 경우가 아니면 자동으로 스케일 인하지 않습니다.

스케일 아웃 예제로, 샤드가 5개 있고 각각 복제본 1개가 있다고 가정합니다.

목표가 30% 위반되면 ElastiCache for Valkey 및 Redis OSS는 모든 샤드에서 복제본 1개(max(0.3, 기본값 1))씩 스케일 아웃합니다. 결과적으로 5개 샤드 각각이 복제본 2개를 갖게 됩니다.

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

### Auto Scaling 고려 사항
<a name="AutoScaling-Scaling-Considerations-Replicas"></a>

다음 사항에 유의하세요.
+ 대상 추적 조정 정책은 지정한 지표가 목표 값을 초과할 때 한해서 확장을 수행해야 합니다. 대상 추적 조정 정책에서는 지정한 지표가 목표 값보다 작을 때 확장할 수 없습니다. ElastiCache for Valkey 및 Redis OSS는 클러스터의 모든 샤드에서 기존 복제본의 최댓값(목표에서 반올림된 % 편차, 기본값 1)까지 복제본을 스케일 아웃합니다.
+ 대상 추적 조정 정책에서는 지정한 지표에 데이터가 부족할 때 조정을 수행하지 않습니다. 데이터가 부족하다고 해서 사용량이 낮은 것으로 해석하지 않기 때문에 축소를 수행하지 않습니다.
+ 목표 값과 실제 지표 데이터 포인트 사이에는 차이가 발생할 수 있습니다. 이것은 ElastiCache Auto Scaling이 추가하거나 제거할 용량을 결정할 때마다 항상 반올림 또는 내림을 통해 어림짐작으로 동작하기 때문입니다. 이는 용량을 부족하게 추가하거나 너무 많이 제거하는 일을 방지하기 위해서입니다.
+ 애플리케이션 가용성을 보장하기 위해 서비스는 지표에 비례하여 가능한 한 빠르게 스케일 아웃하지만, 스케일 인은 클러스터의 전체 샤드에서 복제본 1개의 최대 스케일 인을 사용하여 비교적 점진적으로 진행됩니다.
+ 각각 다른 지표를 사용한다는 전제 하에 다수의 대상 추적 조정 정책을 ElastiCache for Valkey 및 Redis OSS 클러스터에 구성할 수 있습니다. 오토 스케일링은 항상 가용성을 우선시하므로, 대상 추적 정책이 스케일 아웃 또는 스케일 인을 허용하는지에 따라 그 동작이 달라집니다. 대상 추적 정책 중 하나라도 확장을 허용할 경우 서비스를 확장하지만, 모든 대상 추적 정책(축소 부분이 활성화됨)이 축소를 허용하는 경우에만 서비스를 축소합니다.
+ ElastiCache Auto Scaling의 대상 추적 조정 정책에서 관리되는 CloudWatch 경보는 편집하거나 삭제하지 마세요. 조정 정책을 삭제하거나 클러스터를 삭제하면 오토 스케일링에서 경보가 자동으로 삭제됩니다.
+ ElastiCache Auto Scaling은 샤드 전체에서 복제본을 사용자가 수동으로 수정하는 것도 허용합니다. 이러한 수동 조정은 조정 정책에 연결된 기존의 CloudWatch 경보에는 영향을 주지 않지만 이러한 CloudWatch 경보를 트리거하는 지표에 영향을 줄 수 있습니다.
+ Auto Scaling으로 관리되는 이러한 CloudWatch 경보는 클러스터의 모든 샤드에 대한 AVG 지표를 통해 정의됩니다. 따라서 사용량이 많은 샤드가 있으면 다음 시나리오 중 하나가 발생할 수 있습니다.
  + CloudWatch 경보를 트리거하는 몇 개의 사용량이 많은 샤드에 대한 로드로 인해 필요하지 않을 때 조정이 발생합니다.
  + 경보에 영향을 미치는 모든 샤드에서 집계된 AVG는 정책을 위반하지 않기 때문에 필요할 때 조정이 발생하지 않습니다.
+ 클러스터당 노드에 대한 ElastiCache의 기본 제한은 계속 적용됩니다. 따라서 Auto Scaling을 선택할 때 최대 노드 수가 기본 제한보다 클 것으로 예상되는 경우 [AWS 서비스 한도](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)에서 한도 향상을 요청하고 한도 유형을 **인스턴스 유형별 클러스터당 노드**로 선택합니다.
+ VPC에서 스케일 아웃 중에 필요한 충분한 수의 ENI(탄력적 네트워크 인터페이스)를 사용할 수 있는지 확인합니다. 자세한 내용은 [탄력적 네트워크 인터페이스](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)를 참조하세요.
+ EC2에서 사용할 수 있는 용량이 충분하지 않은 경우 ElastiCache Auto Scaling은 용량을 사용할 수 있을 때까지 또는 클러스터를 충분한 용량이 있는 인스턴스 유형으로 수동으로 수정할 때까지 스케일 아웃하지 않습니다.
+ ElastiCache Auto Scaling은 클러스터의 `ReservedMemoryPercent`가 25% 미만인 복제본의 조정을 지원하지 않습니다. 자세한 내용은 [Valkey 및 Redis OSS에 대한 예약된 메모리 관리](redis-memory-management.md) 섹션을 참조하세요.

# 조정 정책 추가
<a name="AutoScaling-Adding-Policy-Replicas"></a>

AWS Management Console을 사용하여 조정 정책을 추가할 수 있습니다.

**AWS Management Console을 사용하여 조정 정책 추가**

ElastiCache for Valkey 및 Redis OSS에 오토 스케일링 정책을 추가하는 방법

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 Amazon ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey** 또는 **Redis OSS**를 선택합니다.

1. 정책을 추가할 클러스터를 선택합니다(클러스터 이름 왼쪽에 있는 버튼이 아닌 클러스터 이름 선택).

1. **Auto Scaling 정책** 탭을 선택합니다.

1. **동적 크기 조정 추가(add dynamic scaling)**를 선택합니다.

1. **조정 정책(Scaling policies)**에서 **동적 크기 조정 추가(Add dynamic scaling)**를 선택합니다.

1. **정책 이름**에 정책 이름을 입력합니다.

1. **조정 가능 차원**의 대화 상자에서 **복제본**을 선택합니다.

1. 목표 값에 ElastiCache 복제본에서 유지하려는 CPU 사용률의 평균 백분율을 입력합니다. 이 값은 >=35 및 <=70이어야 합니다. 클러스터 복제본이 추가되거나 제거되어 지정한 값에 가깝게 지표가 유지됩니다.

1. (선택 사항) 콘솔에서는 스케일 인 또는 스케일 아웃 휴지 기간이 지원되지 않습니다. 휴지 기간 값을 수정하려면 AWS CLI를 사용합니다.

1. **최소 용량**에 ElastiCache Auto Scaling 정책에 따라 유지해야 할 최소 복제본 수를 입력합니다.

1. **최대 용량**에 ElastiCache Auto Scaling 정책에 따라 유지해야 할 최대 복제본 수를 입력합니다. 이 값은 >=5이어야 합니다.

1. **생성(Create)**을 선택합니다.

# 확장 가능 목표 등록
<a name="AutoScaling-Register-Policy"></a>

미리 정의된 지표나 사용자 지정 지표를 기반으로 조정 정책을 적용할 수 있습니다. 이를 위해 AWS CLI 또는 Application Auto Scaling API를 사용할 수 있습니다. 첫 번째 단계는 Auto Scaling을 사용하여 ElastiCache for Valkey 및 Redis OSS 복제 그룹을 등록하는 것입니다.

클러스터에서 ElastiCache Auto Scaling을 사용하려면 먼저 ElastiCache Auto Scaling을 사용하여 클러스터를 등록해야 합니다. 그렇게 하려면 해당 클러스터에 적용할 크기 조정 차원 및 한계를 정의합니다. ElastiCache Auto Scaling은 샤드당 클러스터 복제본 수를 나타내는 확장 가능한 차원 `elasticache:replication-group:Replicas`에 따라 클러스터를 조정합니다.

**CLI 사용**: 

ElastiCache 클러스터를 등록하려면 [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 명령과 다음 파라미터를 사용합니다.
+ --service-namespace – 이 값을 elasticache로 설정합니다.
+ --resource-id – ElastiCache 클러스터의 리소스 식별자입니다. 이 파라미터의 경우 리소스 유형은 ReplicationGroup이고 고유 식별자는 `replication-group/myscalablecluster`와 같은 클러스터의 이름입니다.
+ --scalable-dimension – 이 값을 로 설정합니다`elasticache:replication-group:Replicas` 
+ --min-capacity – ElastiCache Auto Scaling에 의해 관리되는 최소 복제본 수입니다. --min-capacity, --max-capacity 및 클러스터의 복제본 수 간의 관계에 대한 자세한 내용은 [최소 및 최대 용량](AutoScaling-Policies.md#AutoScaling-MinMax) 섹션을 참조하세요.
+ --max-capacity – ElastiCache Auto Scaling에 의해 관리되는 최대 복제본 수입니다. --min-capacity, --max-capacity 및 클러스터의 복제본 수 간의 관계에 대한 자세한 내용은 [최소 및 최대 용량](AutoScaling-Policies.md#AutoScaling-MinMax) 섹션을 참조하세요.

**Example**  
다음 예제에서는 이름이 `myscalablecluster`인 ElastiCache 클러스터를 등록합니다. 등록은 1개에서 5개까지 복제본을 포함하도록 클러스터 크기를 동적으로 조정해야 함을 나타냅니다.  
Linux, macOS, Unix의 경우:  

```
aws application-autoscaling register-scalable-target \
    --service-namespace elasticache \
    --resource-id replication-group/myscalablecluster \
    --scalable-dimension elasticache:replication-group:Replicas \
    --min-capacity 1 \
    --max-capacity 5 \
```
Windows의 경우:  

```
aws application-autoscaling register-scalable-target ^
    --service-namespace elasticache ^
    --resource-id replication-group/myscalablecluster ^
    --scalable-dimension elasticache:replication-group:Replicas ^
    --min-capacity 1 ^
    --max-capacity 5 ^
```

**API 사용**

ElastiCache 클러스터를 등록하려면 [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 명령과 다음 파라미터를 사용합니다.
+ ServiceNamespace - 이 값을 elasticache로 설정합니다.
+ ResourceID – ElastiCache 클러스터의 리소스 식별자입니다. 이 파라미터의 경우 리소스 유형은 ReplicationGroup이고 고유 식별자는 `replication-group/myscalablecluster`와 같은 클러스터의 이름입니다.
+ ScalableDimension - 이 값을 `elasticache:replication-group:Replicas`로 설정합니다.
+ MinCapacity – ElastiCache Auto Scaling에 의해 관리되는 최소 복제본 수입니다. --min-capacity, --max-capacity 및 클러스터의 복제본 수 간의 관계에 대한 자세한 내용은 [최소 및 최대 용량](AutoScaling-Policies.md#AutoScaling-MinMax) 섹션을 참조하세요.
+ MaxCapacity – ElastiCache Auto Scaling에 의해 관리되는 최대 복제본 수입니다. --min-capacity, --max-capacity 및 클러스터의 복제본 수 간의 관계에 대한 자세한 내용은 [최소 및 최대 용량](AutoScaling-Policies.md#AutoScaling-MinMax) 섹션을 참조하세요.

**Example**  
다음 예제에서는 Application 오토 스케일링 API를 사용하여 이름이 `myscalablecluster`인 클러스터를 등록합니다. 이 등록은 1개에서 5개까지 복제본을 포함하도록 클러스터 크기를 동적으로 조정해야 함을 나타냅니다.

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:Replicas",
    "MinCapacity": 1,
    "MaxCapacity": 5
}
```

# 조정 정책 정의
<a name="AutoScaling-Defining-Policy"></a>

대상 추적 조정 정책 구성은 지표와 대상 값이 정의되어 있는 JSON 블록으로 나타냅니다. 텍스트 파일에 JSON 블록으로 조정 정책 구성을 저장할 수 있습니다. AWS CLI 또는 Application Auto Scaling API를 호출할 때 이 텍스트 파일을 사용합니다. 정책 구성 구문에 대한 자세한 정보는 *Application Auto Scaling API 참조*의 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)을 참조하세요.

대상 추적 조정 정책 구성을 정의하기 위해 다음과 같은 옵션을 사용할 수 있습니다.

**Topics**
+ [미리 정의된 지표 사용](#AutoScaling-Predefined-Metric)
+ [조정 정책 편집](AutoScaling-Editing-Policy.md)
+ [조정 정책 삭제](AutoScaling-Deleting-Policy.md)
+ [Auto Scaling 정책을 위한 CloudFormation 사용](AutoScaling-with-Cloudformation.md)
+ [예약된 조정](AutoScaling-with-Scheduled-Scaling-Replicas.md)

## 미리 정의된 지표 사용
<a name="AutoScaling-Predefined-Metric"></a>

대상 추적 조정 정책 구성은 지표와 대상 값이 정의되어 있는 JSON 블록으로 나타냅니다. 텍스트 파일에 JSON 블록으로 조정 정책 구성을 저장할 수 있습니다. AWS CLI 또는 Application Auto Scaling API를 호출할 때 이 텍스트 파일을 사용합니다. 정책 구성 구문에 대한 자세한 정보는 *Application Auto Scaling API 참조*의 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)을 참조하세요.

대상 추적 조정 정책 구성을 정의하기 위해 다음과 같은 옵션을 사용할 수 있습니다.

**Topics**
+ [미리 정의된 지표 사용](#AutoScaling-Predefined-Metric)
+ [사용자 지정 지표 사용](#AutoScaling-Custom-Metric)
+ [휴지 기간 사용](#AutoScaling-Using-Cooldowns)
+ [스케일 인 활동 비활성화](#AutoScaling-Disabling-Scalein)
+ [ElastiCache for Valkey 및 Redis OSS 클러스터에 조정 정책 적용](#AutoScaling-Applying-Policy)

### 미리 정의된 지표 사용
<a name="AutoScaling-Predefined-Metric"></a>

미리 정의된 지표를 사용하여 ElastiCache Auto Scaling의 대상 추적에서 작동하는 ElastiCache for Valkey 및 Redis OSS 클러스터에 대한 대상 추적 조정 정책을 신속하게 정의할 수 있습니다. 현재 ElastiCache는 ElastiCache 복제본 오토 스케일링에서 다음과 같이 미리 정의된 지표를 지원합니다.

`ElastiCacheReplicaEngineCPUUtilization` – 클러스터의 모든 복제본에 대한 CloudWatch의 EngineCPUUtilization 지표 평균 값입니다. CloudWatch의 집계된 지표 값은 필요한 ReplicationGroupId 및 Role Replica에 대한 ElastiCache `ReplicationGroupId, Role`에서 찾을 수 있습니다.

조정 정책에서 미리 정의된 지표를 사용하려면 조정 정책을 위한 대상 추적 구성을 생성합니다. 미리 정의된 지표의 `PredefinedMetricSpecification` 및 해당 지표의 대상 값에 대한 `TargetValue`를 이 구성에 포함해야 합니다.

### 사용자 지정 지표 사용
<a name="AutoScaling-Custom-Metric"></a>

사용자 지정 지표를 사용하여 사용자 지정 요구 사항에 맞는 대상 추적 조정 정책을 정의할 수 있습니다. 조정에 따라 변경되는 모든 ElastiCache for Valkey 및 Redis OSS 지표를 기반으로 사용자 지정 지표를 정의할 수 있습니다. 일부 ElastiCache 지표를 대상 추적에 사용할 수 있습니다. 지표는 유효한 사용량 수치로서 인스턴스의 사용량을 설명해야 합니다. 클러스터에 있는 복제본 수에 비례하여 지표 값이 증가하거나 줄어들어야 합니다. 지표 데이터를 사용하여 복제본 수를 비례적으로 늘리거나 줄이려면 이 비례적인 증가나 감소가 필요합니다.

**Example**  
다음 예제에서는 조정 정책의 대상 추적 구성을 설명합니다. 이 구성에서 사용자 지정 지표는 `my-db-cluster`라는 클러스터의 모든 복제본에 대해 평균 CPU 사용률 50%를 기반으로 클러스터를 조정합니다.  

```
{"TargetValue": 50,
    "CustomizedMetricSpecification":
    {"MetricName": "EngineCPUUtilization",
        "Namespace": "AWS/ElastiCache",
        "Dimensions": [
            {"Name": "ReplicationGroup","Value": "my-db-cluster"},
            {"Name": "Role","Value": "REPLICA"}
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```

### 휴지 기간 사용
<a name="AutoScaling-Using-Cooldowns"></a>

`ScaleOutCooldown`에 초 단위로 값을 지정하여 클러스터를 확장하기 위한 휴지 기간을 추가할 수 있습니다. 마찬가지로 `ScaleInCooldown`에 초 단위로 값을 추가하여 클러스터를 축소하기 위한 휴지 기간을 추가할 수 있습니다. `ScaleInCooldown` 및 `ScaleOutCooldown`에 대한 자세한 내용은 *Application Auto Scaling API 참조*의 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)을 참조하세요. 다음 예제에서는 조정 정책의 대상 추적 구성을 설명합니다. 이 구성에서 `ElastiCacheReplicaEngineCPUUtilization`미리 정의된 지표는 해당 클러스터의 모든 복제본에서 40%의 평균 CPU 사용률을 기준으로 클러스터를 조정하는 데 사용됩니다. 구성에서는 스케일 인 휴지 기간 10분과 스케일 아웃 휴지 기간 5분을 제공합니다.

```
{"TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```

### 스케일 인 활동 비활성화
<a name="AutoScaling-Disabling-Scalein"></a>

스케일 인 활동을 비활성화하여 대상 추적 조정 정책 구성에서 ElastiCache for Valkey 및 Redis OSS 클러스터를 축소하지 않도록 할 수 있습니다. 스케일 인 활동을 비활성화하면 조정 정책에서 필요에 따라 복제본을 추가할 수 있지만 삭제할 수는 없습니다.

`DisableScaleIn`에 부울 값을 지정하여 클러스터에 대한 스케일 인 활동을 활성화하거나 비활성화할 수 있습니다. `DisableScaleIn`에 대한 자세한 내용은 *Application Auto Scaling API 참조*의 [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_TargetTrackingScalingPolicyConfiguration.html)을 참조하세요.

**Example**  
다음 예제에서는 조정 정책의 대상 추적 구성을 설명합니다. 이 구성에서 `ElastiCacheReplicaEngineCPUUtilization` 미리 정의된 지표는 해당 클러스터에 있는 모든 복제본에 대해 평균 CPU 사용률 40%를 기반으로 클러스터를 조정합니다. 구성에서는 조정 정책의 스케일 인 활동을 비활성화합니다.

```
{"TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization"
    },
    "DisableScaleIn": true
}
```

### ElastiCache for Valkey 및 Redis OSS 클러스터에 조정 정책 적용
<a name="AutoScaling-Applying-Policy"></a>

ElastiCache for Valkey 및 Redis OSS Auto Scaling으로 클러스터를 등록하고 조정 정책을 정의한 후 등록된 클러스터에 조정 정책을 적용합니다. 조정 정책을 ElastiCache for Valkey 및 Redis OSS 클러스터에 적용하려면 AWS CLI 또는 Application Auto Scaling API를 사용할 수 있습니다.

** 사용AWS CLI**

ElastiCache for Valkey 및 Redis OSS 클러스터에 조정 정책을 적용하려면 다음 파라미터와 함께 [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html) 명령을 사용합니다.
+ --policy-name – 조정 정책의 이름입니다.
+ --policy-type – 이 값을 으로 설정합니다`TargetTrackingScaling` 
+ --resource-id – 클러스터의 리소스 식별자입니다. 이 파라미터의 경우 리소스 유형은 ReplicationGroup이고 고유 식별자는 `replication-group/myscalablecluster`와 같은 클러스터의 이름입니다.
+ --service-namespace – 이 값을 elasticache로 설정합니다.
+ --scalable-dimension – 이 값을 `elasticache:replication-group:Replicas`로 설정합니다.
+ --target-tracking-scaling-policy-configuration – 클러스터에 사용할 대상 추적 조정 정책 구성입니다.

**Example**  
다음 예제에서는 ElastiCache Auto Scaling을 사용하여 `myscalablepolicy`라는 대상 추적 조정 정책을 `myscalablecluster`라는 클러스터에 적용합니다. 이를 위해 `config.json`이라는 파일에 저장된 정책 구성을 사용합니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

```
aws application-autoscaling put-scaling-policy \
    --policy-name myscalablepolicy \
    --policy-type TargetTrackingScaling \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:Replicas \
    --target-tracking-scaling-policy-configuration file://config.json
```

```
{"TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {"PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization"
    },
    "DisableScaleIn": true
}
```

Windows의 경우:

```
aws application-autoscaling put-scaling-policy ^
    --policy-name myscalablepolicy ^
    --policy-type TargetTrackingScaling ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:Replicas ^
    --target-tracking-scaling-policy-configuration file://config.json
```

**API 사용**

Application Auto Scaling API를 사용하여 ElastiCache 클러스터에 조정 정책을 적용하려면 다음 파라미터와 함께 [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) Application Auto Scaling API 작업을 사용합니다.
+ PolicyName – 조정 정책의 이름입니다.
+ PolicyType – 이 값을 `TargetTrackingScaling`으로 설정합니다.
+ ResourceID – 클러스터의 리소스 식별자입니다. 이 파라미터의 경우 리소스 유형은 ReplicationGroup이고 고유 식별자는 `replication-group/myscalablecluster`와 같은 ElastiCache for Redis OSS 클러스터의 이름입니다.
+ ServiceNamespace - 이 값을 elasticache로 설정합니다.
+ ScalableDimension - 이 값을 `elasticache:replication-group:Replicas`로 설정합니다.
+ TargetTrackingScalingPolicyConfiguration – 클러스터에 사용할 대상 추적 조정 정책 구성입니다.

**Example**  
다음 예제에서는 ElastiCache Auto Scaling을 사용하여 `scalablepolicy`라는 대상 추적 조정 정책을 `myscalablecluster`라는 클러스터에 적용합니다. `ElastiCacheReplicaEngineCPUUtilization` 사전 정의 지표를 기반으로 하는 정책 구성을 사용합니다.

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "PolicyName": "myscalablepolicy",
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:Replicas",
    "PolicyType": "TargetTrackingScaling",
    "TargetTrackingScalingPolicyConfiguration": {
        "TargetValue": 40.0,
        "PredefinedMetricSpecification":
        {
            "PredefinedMetricType": "ElastiCacheReplicaEngineCPUUtilization"
        }
    }
}
```

# 조정 정책 편집
<a name="AutoScaling-Editing-Policy"></a>

AWS Management Console, AWS CLI 또는 Application Auto Scaling API를 사용하여 크기 조정 정책을 편집할 수 있습니다.

**AWS Management Console을 사용하여 조정 정책 편집**

AWS Management Console을 사용하여 미리 정의된 지표 유형이 있는 정책을 편집할 수 있습니다.

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 Amazon ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey** 또는 **Redis OSS**를 선택합니다.

1. 정책을 추가할 클러스터를 선택합니다(클러스터 이름 왼쪽에 있는 버튼이 아닌 클러스터 이름 선택).

1. **Auto Scaling 정책** 탭을 선택합니다.

1. **조정 정책(Scaling policies)**에서 변경할 자동 크기 조정 정책 왼쪽에 있는 버튼을 선택한 다음 **수정(Modify)**을 선택합니다.

1. 정책을 필요에 따라 변경합니다.

1. **수정**을 선택합니다.

1. 정책을 변경합니다.

1. **수정**을 선택합니다.

**AWS CLI 또는 Application Auto Scaling API를 사용하여 크기 조정 정책 편집 **

스케일링 정책을 적용하는 것과 같은 방식으로 AWS CLI 또는 Application Auto Scaling API를 사용하여 스케일링 정책을 편집할 수 있습니다.
+ Application Auto Scaling API를 사용할 때는 `PolicyName` 파라미터에서 편집하려는 정책의 이름을 지정하세요. 변경할 파라미터의 새로운 값을 지정합니다.

자세한 내용은 [ElastiCache for Valkey 및 Redis OSS 클러스터에 조정 정책 적용](AutoScaling-Defining-Policy.md#AutoScaling-Applying-Policy) 섹션을 참조하세요.

# 조정 정책 삭제
<a name="AutoScaling-Deleting-Policy"></a>

AWS Management Console, AWS CLI 또는 Application Auto Scaling API를 사용하여 크기 조정 정책을 삭제할 수 있습니다.

**AWS Management Console을 사용하여 조정 정책 삭제**

AWS Management Console을 사용하여 미리 정의된 지표 유형이 있는 정책을 편집할 수 있습니다.

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)에서 Amazon ElastiCache 콘솔을 엽니다.

1. 탐색 창에서 **Valkey** 또는 **Redis OSS**를 선택합니다.

1. 자동 크기 조정 정책을 삭제할 클러스터를 선택합니다.

1. **Auto Scaling 정책** 탭을 선택합니다.

1. **조정 정책(Scaling policies)**에서 자동 크기 조정 정책을 선택한 후 **삭제(Delete)**를 선택합니다.

**AWS CLI 또는 Application Auto Scaling API를 사용하여 크기 조정 정책 삭제 **

AWS CLI 또는 Application 오토 스케일링 API를 사용하여 ElastiCache 클러스터에서 크기 조정 정책을 삭제할 수 있습니다.

** CLI**

ElastiCache for Valkey 및 Redis OSS 클러스터에서 조정 정책을 삭제하려면 다음 파라미터와 함께 [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html) 명령을 사용합니다.
+ --policy-name – 조정 정책의 이름입니다.
+ --resource-id – 클러스터의 리소스 식별자입니다. 이 파라미터의 경우 리소스 유형은 ReplicationGroup이고 고유 식별자는 `replication-group/myscalablecluster`와 같은 클러스터의 이름입니다.
+ --service-namespace – 이 값을 elasticache로 설정합니다.
+ --scalable-dimension – 이 값을 `elasticache:replication-group:Replicas`로 설정합니다.

**Example**  
다음 예제에서는 `myscalablepolicy`라는 대상 추적 조정 정책을 `myscalablecluster`라는 ELC; 클러스터에서 삭제합니다.

Linux, macOS, Unix의 경우:

```
aws application-autoscaling delete-scaling-policy \
    --policy-name myscalablepolicy \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:Replicas \
```

Windows의 경우:

```
aws application-autoscaling delete-scaling-policy ^
    --policy-name myscalablepolicy ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:Replicas ^
```

**API**.

ElastiCache for Valkey 및 Redis OSS 클러스터에서 조정 정책을 삭제하려면 다음 파라미터와 함께 [DeleteScalingPolicy](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_DeleteScalingPolicy.html) Application Auto Scaling API 작업을 사용합니다.
+ PolicyName – 조정 정책의 이름입니다.
+ ResourceID – 클러스터의 리소스 식별자입니다. 이 파라미터의 경우 리소스 유형은 ReplicationGroup이고 고유 식별자는 `replication-group/myscalablecluster`와 같은 클러스터의 이름입니다.
+ ServiceNamespace - 이 값을 elasticache로 설정합니다.
+ ScalableDimension - 이 값을 `elasticache:replication-group:Replicas`로 설정합니다.

다음 예제에서는 Application 오토 스케일링 API를 사용하여 `myscalablepolicy`라는 대상 추적 조정 정책을 `myscalablecluster`라는 클러스터에서 삭제합니다.

```
POST / HTTP/1.1
>>>>>>> mainline
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "PolicyName": "myscalablepolicy",
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:Replicas"
}
```

# Auto Scaling 정책을 위한 CloudFormation 사용
<a name="AutoScaling-with-Cloudformation"></a>

이 코드 조각은 예약된 작업을 생성하고 [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) 리소스를 사용하여 [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) 리소스에 적용하는 방법을 보여줍니다. [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) 및 [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 내장 함수를 사용하여 동일한 템플릿에 지정된 `AWS::ElastiCache::ReplicationGroup` 리소스의 논리적 이름으로 `ResourceId` 속성을 구성합니다.

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 0
     MinCapacity: 0
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:Replicas'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"

  ScalingPolicy:
    Type: "AWS::ApplicationAutoScaling::ScalingPolicy"
    Properties:
      ScalingTargetId: !Ref ScalingTarget
      ServiceNamespace: elasticache
      PolicyName: testpolicy
      PolicyType: TargetTrackingScaling
      ScalableDimension: 'elasticache:replication-group:Replicas'
      TargetTrackingScalingPolicyConfiguration:
        PredefinedMetricSpecification:
          PredefinedMetricType: ElastiCacheReplicaEngineCPUUtilization
        TargetValue: 40
```

# 예약된 조정
<a name="AutoScaling-with-Scheduled-Scaling-Replicas"></a>

일정을 기반으로 조정을 수행하면 수요에 따른 로드 변경에 맞게 애플리케이션을 조정할 수 있습니다. 예약된 조정을 사용하려면 ElastiCache for Valkey 및 Redis OSS가 특정 시간에 조정 작업을 수행하도록 하는 예약된 작업을 생성할 수 있습니다. 예약된 작업을 생성할 때, 기존 ElastiCache 클러스터, 규모 조정 활동이 발생해야 할 시점, 최소 용량 및 최대 용량을 지정할 수 있습니다. 규모를 한 번만 조정하거나 반복되는 일정으로 조정하도록 예약된 작업을 생성할 수 있습니다.

 이미 존재하는 ElastiCache 클러스터에 대한 예약된 작업만 생성할 수 있습니다. 클러스터를 생성하는 동시에 예약된 작업을 생성할 수는 없습니다.

예약된 작업 생성, 관리 및 삭제와 관련된 용어에 대한 자세한 내용은 [예약된 작업 생성, 관리 및 삭제에 일반적으로 사용되는 명령](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html#scheduled-scaling-commonly-used-commands)을 참조하세요.

**1회성 예약된 작업을 생성하려면**

샤드 차원과 유사합니다. [예약된 조정](AutoScaling-with-Scheduled-Scaling-Shards.md) 섹션을 참조하세요.

**예약된 작업 삭제**

샤드 차원과 유사합니다. [예약된 조정](AutoScaling-with-Scheduled-Scaling-Shards.md) 섹션을 참조하세요.

**를 사용하여 예약된 조정을 관리하려면 AWS CLI**

다음과 같은 애플리케이션 자동 크기 조정 API를 사용합니다.
+ [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) 
+ [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html) 
+ [delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scheduled-action.html) 

## CloudFormation을 사용하여 Auto Scaling 정책 생성
<a name="AutoScaling-with-Cloudformation-Update-Action"></a>

이 코드 조각은 예약된 작업을 생성하고 [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) 리소스를 사용하여 [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) 리소스에 적용하는 방법을 보여줍니다. [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) 및 [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 내장 함수를 사용하여 동일한 템플릿에 지정된 `AWS::ElastiCache::ReplicationGroup` 리소스의 논리적 이름으로 `ResourceId` 속성을 구성합니다.

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 0
     MinCapacity: 0
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:Replicas'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"
     ScheduledActions:
       - EndTime: '2020-12-31T12:00:00.000Z'
         ScalableTargetAction:
           MaxCapacity: '5'
           MinCapacity: '2'
         ScheduledActionName: First
         Schedule: 'cron(0 18 * * ? *)'
```