기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Valkey 및 Redis OSS에 대한 예약된 메모리 관리
예약된 메모리는 비데이터 사용을 위해 구분된 메모리입니다. 백업 또는 장애 조치를 수행할 때 클러스터의 데이터가 .rdb 파일에 작성되는 동안 Valkey 및 Redis OSS에서는 사용 가능한 메모리를 사용하여 클러스터에 쓰기 작업을 기록합니다. 모든 쓰기에 사용 가능한 메모리를 충분히 확보하지 못하면 프로세스가 실패합니다. 아래에서 ElastiCache for Redis OSS의 예약 메모리를 관리하기 위한 옵션과 이러한 옵션을 적용하는 방법에 대한 정보를 확인할 수 있습니다.
필요한 예약된 메모리의 양
Redis OSS 2.8.22 이전 버전을 실행하고 있는 경우 Redis OSS 2.8.22 이후 버전을 실행하는 것보다 백업 및 장애 조치를 위해 더 많은 메모리를 예약해야 합니다. 이 요구 사항은 ElastiCache for Redis OSS가 백업 프로세스를 구현하는 다양한 방법 때문입니다. 경험상, 2.8.22 이전 버전의 Redis OSS 오버헤드에 대해서는 노드 유형 maxmemory
값의 절반을 예약하고 Redis OSS 버전 2.8.22 이후에 대해서는 1/4을 예약합니다.
ElastiCache가 백업 및 복제 프로세스를 구현하는 방법이 다르기 때문에 일반적으로 reserved-memory-percent
파라미터를 사용하여 노드 유형 maxmemory
값의 25%를 예약하는 것이 좋습니다. 이 값은 기본값이며 대부분의 경우에 권장됩니다.
버스트 가능한 마이크로 및 작은 인스턴스 유형이 maxmemory
한도 근처에서 작동하는 경우 스왑 사용량이 발생할 수 있습니다. 백업, 복제 및 트래픽이 많은 동안 이러한 인스턴스 유형의 운영 안정성을 개선하려면 작은 인스턴스 유형의 경우 reserved-memory-percent
파라미터 값을 최대 30%, 마이크로 인스턴스 유형의 경우 최대 50% 늘리는 것이 좋습니다.
데이터 계층화가 있는 ElastiCache 클러스터에서 쓰기가 많은 워크로드의 경우 reserved-memory-percent
를 노드 사용 가능한 메모리의 최대 50%까지 늘리는 것이 좋습니다.
자세한 내용은 다음 자료를 참조하세요.
예약된 메모리를 관리하기 위한 파라미터
2017년 3월 16일부터 Amazon ElastiCache에서는 Valkey 또는 Redis OSS 메모리 관리를 위해 상호 배타적인 파라미터 두 개, 즉 reserved-memory
와 reserved-memory-percent
를 제공합니다. 이 두 파라미터는 Valkey 또는 Redis OSS 배포의 일부가 아닙니다.
ElastiCache 고객이 된 시점에 따라, 이러한 파라미터 중 하나 또는 다른 파라미터가 기본 메모리 관리 파라미터입니다. 새 Valkey 또는 Redis OSS 클러스터 또는 복제 그룹을 생성하고 기본 파라미터 그룹을 사용할 때 이 파라미터가 적용됩니다.
-
2017년 3월 16일 이전에 시작한 고객의 경우 기본 파라미터 그룹을 사용하여 Redis OSS 클러스터 또는 복제 그룹을 생성할 때 메모리 관리 파라미터가
reserved-memory
입니다. 이 경우 0바이트의 메모리가 예약됩니다. -
2017년 3월 16일 이후에 시작된 고객의 경우 기본 파라미터 그룹을 사용하여 Valkey 또는 Redis OSS 클러스터 또는 복제 그룹을 생성할 때 메모리 관리 파라미터는
reserved-memory-percent
입니다. 이 경우 노드maxmemory
값의 25%가 비데이터 용도로 예약됩니다.
두 개의 Valkey 또는 Redis OSS 메모리 관리 파라미터를 읽은 후에는 기본이 아니거나 기본이 아닌 값을 가진 파라미터를 사용하는 것이 좋습니다. 이 경우, 다른 예약된 메모리 관리 파라미터로 변경할 수 있습니다.
이 파라미터의 값을 변경하려면 사용자 정의 파라미터 그룹을 생성하고 기본 설정 메모리 관리 파라미터 및 값을 사용하도록 수정할 수 있습니다. 그다음부터는 Valkey 또는 Redis OSS 클러스터나 복제 그룹을 새로 생성할 때마다 이 사용자 지정 파라미터 그룹을 사용할 수 있습니다. 기존 클러스터나 복제 그룹의 경우 사용자 지정 파라미터 그룹을 사용하도록 수정할 수 있습니다.
자세한 내용은 다음 자료를 참조하세요.
reserved-memory 파라미터
2017년 3월 16일 이전에는 모든 ElastiCache for Redis OSS 예약 메모리 관리가 파라미터를 사용하여 수행되었습니다reserved-memory
. reserved-memory
의 기본값은 0입니다. 이 기본값은 Valkey 또는 Redis OSS 오버헤드에 대해 메모리를 예약하지 않으며, Valkey 또는 Redis OSS가 모든 노드의 메모리를 데이터로 사용하는 것을 허용합니다.
백업 및 장애 조치를 위해 충분한 메모리를 사용할 수 있도록 reserved-memory
를 변경할 경우 사용자 지정 파라미터 그룹을 생성해야 합니다. 이 사용자 지정 파라미터 그룹에서 reserved-memory
를 클러스터에 대해 실행 중인 Valkey 또는 Redis OSS 버전과 클러스터의 노드 유형에 적합한 값으로 설정합니다. 자세한 내용은 필요한 예약된 메모리의 양 단원을 참조하세요.
파라미터 reserved-memory
는 ElastiCache에만 해당되며 일반 Redis OSS 배포의 일부가 아닙니다.
다음 절차는 reserved-memory
를 사용하여 Valkey 또는 Redis OSS 클러스터의 메모리를 관리하는 방법을 보여줍니다.
reserved-memory를 사용하여 메모리를 예약하려면
-
실행 중인 엔진 버전과 일치하는 파라미터 그룹 패밀리를 지정하는 사용자 지정 파라미터 그룹을 생성합니다. 예를 들어
redis2.8
파라미터 그룹 패밀리를 지정합니다. 자세한 내용은 ElastiCache 파라미터 그룹 생성 단원을 참조하십시오.aws elasticache create-cache-parameter-group \ --cache-parameter-group-name
redis6x-m3xl
\ --description "Redis OSS 2.8.x for m3.xlarge node type
" \ --cache-parameter-group-familyredis6.x
-
Valkey 또는 Redis OSS 오버헤드를 위해 예약해야 하는 메모리의 바이트 수를 계산합니다. Redis OSS 노드 유형별 파라미터에서 노드 유형에 대한
maxmemory
값을 찾을 수 있습니다. -
reserved-memory
파라미터가 이전 단계에서 계산된 바이트 수가 되도록 사용자 지정 파라미터 그룹을 수정합니다. 다음 AWS CLI 예제에서는 2.8.22 이전에 Redis OSS 버전을 실행 중이며 노드의 절반을 예약해야 한다고 가정합니다maxmemory
. 자세한 내용은 ElastiCache 파라미터 그룹 수정 단원을 참조하십시오.aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis28-m3xl
\ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=7130316800
"각 노드 유형에는 다른
maxmemory
값이 있으므로 사용할 각 노드 유형에 대해 별도의 사용자 지정 파라미터 그룹이 필요합니다. 따라서 각 노드 유형에는reserved-memory
에 대해 서로 다른 값이 필요합니다. -
Redis OSS 클러스터나 복제 그룹을 수정하여 사용자 지정 파라미터 그룹을 사용하도록 합니다.
다음 CLI 예제에서는
my-redis-cluster
클러스터를 수정하여 즉시 시작되는 사용자 지정 파라미터 그룹redis28-m3xl
을 사용하도록 합니다. 자세한 내용은 ElastiCache 클러스터 수정 단원을 참조하십시오.aws elasticache modify-cache-cluster \ --cache-cluster-id
my-redis-cluster
\ --cache-parameter-group-nameredis28-m3xl
\ --apply-immediately다음 CLI 예제에서는 복제 그룹
my-redis-repl-grp
를 수정하여 즉시 시작되는 사용자 지정 파라미터 그룹redis28-m3xl
을 사용하도록 합니다. 자세한 내용은 복제 그룹 수정 섹션을 참조하세요.aws elasticache modify-replication-group \ --replication-group-id
my-redis-repl-grp
\ --cache-parameter-group-nameredis28-m3xl
\ --apply-immediately
reserved-memory-percent 파라미터
2017년 3월 16일 Amazon ElastiCache는 파라미터를 도입reserved-memory-percent
하여 ElastiCache for Redis OSS의 모든 버전에서 사용할 수 있도록 했습니다. reserved-memory-percent
의 목적은 모든 클러스터에 대해 예약된 메모리 관리를 간소화하는 것입니다. 노드 유형과 상관없이 클러스터의 예약된 메모리를 관리하기 위해 각 파라미터 그룹 패밀리에 대해 단일 파라미터 그룹(예: redis2.8
)을 보유할 수 있도록 하여 이를 수행합니다. reserved-memory-percent
에 대한 기본값은 25(25%)입니다.
파라미터 reserved-memory-percent
는 ElastiCache에만 해당되며 일반 Redis OSS 배포의 일부가 아닙니다.
클러스터가 r6gd 패밀리의 노드 유형을 사용하고 있고 메모리 사용량이 75%에 도달하는 경우 데이터 계층화가 자동으로 트리거됩니다. 자세한 내용은 ElastiCache의 데이터 계층화 단원을 참조하십시오.
reserved-memory-percent를 사용하여 메모리를 예약하려면
reserved-memory-percent
를 사용하여 ElastiCache for Redis OSS 클러스터의 메모리를 관리하려면 다음 중 하나를 수행합니다.
-
Redis OSS 2.8.22 이상을 실행 중이면 클러스터에 기본 파라미터 그룹을 할당합니다. 기본 25%가 적절합니다. 그렇지 않은 경우 다음 설명된 단계에 따라 값을 변경합니다.
-
Redis OSS 2.8.22 이전 버전을 실행하고 있는 경우
reserved-memory-percent
의 기본 25%보다 더 많은 메모리를 예약해야 할 수 있습니다. 이렇게 하려면 다음 절차를 사용하세요.
reserved-memory-percent의 백분율 값을 변경하려면
-
실행 중인 엔진 버전과 일치하는 파라미터 그룹 패밀리를 지정하는 사용자 지정 파라미터 그룹을 생성합니다. 예를 들어
redis2.8
파라미터 그룹 패밀리를 지정합니다. 기본 파라미터 그룹을 수정할 수 없으므로 사용자 지정 파라미터 그룹이 필요합니다. 자세한 내용은 ElastiCache 파라미터 그룹 생성 단원을 참조하십시오.aws elasticache create-cache-parameter-group \ --cache-parameter-group-name
redis28-50
\ --description "Redis OSS 2.8.x 50% reserved
" \ --cache-parameter-group-familyredis2.8
reserved-memory-percent
는 노드의maxmemory
%로 메모리를 예약하므로 각 노드 유형에 대해 사용자 지정 파라미터 그룹이 필요하지 않습니다. -
reserved-memory-percent
가 50(50%)이 되도록 사용자 지정 파라미터 그룹을 수정합니다. 자세한 내용은 ElastiCache 파라미터 그룹 수정 단원을 참조하십시오.aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis28-50
\ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50
" -
Redis OSS 2.8.22 이전 버전을 실행하는 Redis OSS 클러스터나 복제 그룹에 대해 이 사용자 지정 파라미터 그룹을 사용합니다.
다음 CLI 예제에서는 Redis OSS 클러스터
my-redis-cluster
를 수정하여 즉시 시작되는 사용자 지정 파라미터 그룹redis28-50
을 사용하도록 합니다. 자세한 내용은 ElastiCache 클러스터 수정 단원을 참조하십시오.aws elasticache modify-cache-cluster \ --cache-cluster-id
my-redis-cluster
\ --cache-parameter-group-nameredis28-50
\ --apply-immediately다음 CLI 예제에서는 Redis OSS 복제 그룹
my-redis-repl-grp
를 수정하여 즉시 시작되는 사용자 지정 파라미터 그룹redis28-50
을 사용하도록 합니다. 자세한 내용은 복제 그룹 수정 단원을 참조하십시오.aws elasticache modify-replication-group \ --replication-group-id
my-redis-repl-grp
\ --cache-parameter-group-nameredis28-50
\ --apply-immediately
예약된 메모리 관리 파라미터 지정
2017년 3월 16일 현재 ElastiCache 고객이었던 사용자의 경우 예약된 메모리 관리 기본 파라미터는 예약된 메모리가 영(0) 바이트인 reserved-memory
입니다. 2017년 3월 16일을 지난 시점에 ElastiCache 고객이 된 사용자의 경우 예약된 메모리 관리 기본 파라미터는 노드의 메모리 중 25%가 예약된 reserved-memory-percent
입니다. 이는 ElastiCache for Redis OSS 클러스터 또는 복제 그룹을 생성한 시기와 관계없이 적용됩니다. 그러나 AWS CLI 또는 ElastiCache API를 사용하여 예약된 메모리 관리 파라미터를 변경할 수 있습니다.
파라미터 reserved-memory
및 reserved-memory-percent
는 함께 사용할 수 없습니다. 파라미터 그룹에는 항상 한 개의 파라미터가 있으며 둘 다 있을 수 없습니다. 파라미터 그룹을 수정하여 파라미터 그룹에서 예약된 메모리 관리에 사용할 파라미터를 변경할 수 있습니다. 기본 파라미터 그룹을 수정할 수 없으므로 파라미터 그룹은 사용자 지정 파라미터 그룹이어야 합니다. 자세한 내용은 ElastiCache 파라미터 그룹 생성 단원을 참조하십시오.
reserved-memory-percent를 지정하려면
reserved-memory-percent
를 예약된 메모리 관리 파라미터로 사용하려면 modify-cache-parameter-group
명령어를 사용하여 사용자 지정 파라미터 그룹을 수정해야 합니다. reserved-memory-percent
파라미터를 사용하여 parameter-name-values
및 해당 값을 지정합니다.
다음 CLI 예제는 예약된 메모리를 관리하기 위해 reserved-memory-percent
를 사용하도록 사용자 지정 파라미터 그룹 redis32-cluster-on
을 수정합니다. 예약된 메모리 관리를 위해 파라미터 그룹에서 ParameterName
파라미터를 사용할 수 있도록 ParameterValue
에 값을 지정해야 합니다. 자세한 내용은 ElastiCache 파라미터 그룹 수정 단원을 참조하십시오.
aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis32-cluster-on
\ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=25
"
reserved-memory를 지정하려면
reserved-memory
를 예약된 메모리 관리 파라미터로 사용하려면 modify-cache-parameter-group
명령어를 사용하여 사용자 지정 파라미터 그룹을 수정해야 합니다. reserved-memory
파라미터를 사용하여 parameter-name-values
및 해당 값을 지정합니다.
다음 CLI 예제는 예약된 메모리를 관리하기 위해 reserved-memory
를 사용하도록 사용자 지정 파라미터 그룹 redis32-m3xl
을 수정합니다. 예약된 메모리 관리를 위해 파라미터 그룹에서 ParameterName
파라미터를 사용할 수 있도록 ParameterValue
에 값을 지정해야 합니다. 엔진 버전이 2.8.22보다 더 새로운 버전이므로 값을 cache.m3.xlarge
의 maxmemory
중 25퍼센트에 해당하는 3565158400
으로 설정했습니다. 자세한 내용은 ElastiCache 파라미터 그룹 수정 단원을 참조하십시오.
aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name
redis32-m3xl
\ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=3565158400
"