예약된 메모리 관리 - 아마존 ElastiCache (레디 스OSS)

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

예약된 메모리 관리

예약된 메모리는 비데이터 사용을 위해 구분된 메모리입니다. 백업 또는 장애 조치를 수행할 때 Redis OSS는 클러스터 데이터가.rdb 파일에 기록되는 동안 사용 가능한 메모리를 사용하여 클러스터에 쓰기 작업을 기록합니다. 모든 쓰기에 사용 가능한 메모리를 충분히 확보하지 못하면 프로세스가 실패합니다. 다음에서 ElastiCache (Redis OSS) 용 예약 메모리 관리 옵션 및 해당 옵션을 적용하는 방법에 대한 정보를 확인할 수 있습니다.

필요한 예약된 메모리의 양

2.8.22 이전 버전의 Redis OSS를 실행하는 경우 Redis OSS 2.8.22 이상을 실행하는 경우보다 백업 및 장애 조치를 위해 더 많은 메모리를 예약하십시오. 이 요구 사항은 (Redis OSS) 가 백업 프로세스를 구현하는 방식이 다양하기 때문입니다. ElastiCache 일반적으로 노드 유형 maxmemory 값의 절반은 2.8.22 이전 버전의 Redis OSS 오버헤드를 위해, 4분의 1을 Redis OSS 버전 2.8.22 이상용으로 예약하는 것입니다.

백업 및 복제 프로세스를 ElastiCache 구현하는 방법이 다르기 때문에 경험상 파라미터를 사용하여 노드 유형 값의 25% 를 예약하는 것이 일반적입니다. maxmemory reserved-memory-percent 이는 기본값이며 대부분의 경우에 권장됩니다.

버스트 가능한 마이크로 및 스몰 인스턴스 유형이 maxmemory 한도에 가깝게 작동하면 스왑 사용량이 발생할 수 있습니다. 백업, 복제 및 트래픽이 많은 동안 이러한 인스턴스 유형의 운영 안정성을 개선하려면 reserved-memory-percent 매개 변수 값을 소형 인스턴스 유형에서는 최대 30%, 마이크로 인스턴스 유형에서는 최대 50% 까지 높이는 것이 좋습니다.

데이터 계층화를 사용하는 ElastiCache 클러스터에서 쓰기 작업이 많은 경우 노드 가용 메모리의 최대 50% 까지 늘리는 것이 좋습니다. reserved-memory-percent

자세한 내용은 다음 자료를 참조하십시오.

예약된 메모리를 관리하기 위한 파라미터

2017년 3월 16일부터 Amazon ElastiCache (Redis OSS) 은 Redis OSS 메모리 관리를 위한 상호 배타적인 두 개의 매개 변수를 제공하며, reserved-memory reserved-memory-percent 이러한 파라미터 중 어느 것도 Redis OSS 배포에 포함되지 않습니다.

ElastiCache 고객이 된 시기에 따라 이러한 매개변수 중 하나 또는 다른 매개변수가 기본 메모리 관리 매개변수로 사용됩니다. 이 매개 변수는 새 Redis OSS 클러스터 또는 복제 그룹을 생성하고 기본 매개 변수 그룹을 사용할 때 적용됩니다.

  • 2017년 3월 16일 이전에 시작한 고객의 경우 - 기본 파라미터 그룹을 사용하여 Redis OSS 클러스터 또는 복제 그룹을 생성하는 경우 메모리 관리 파라미터는 입니다. reserved-memory 이 경우 0바이트의 메모리가 예약됩니다.

  • 2017년 3월 16일 또는 그 이후에 시작한 고객의 경우 — 기본 파라미터 그룹을 사용하여 Redis OSS 클러스터 또는 복제 그룹을 생성하는 경우 메모리 관리 매개변수는 입니다. reserved-memory-percent 이 경우 노드 maxmemory 값의 25%가 비데이터 용도로 예약됩니다.

두 Redis OSS 메모리 관리 파라미터에 대해 읽어본 후 기본값이 아닌 파라미터나 기본값이 아닌 파라미터를 사용하는 것이 좋을 수 있습니다. 이 경우, 다른 예약된 메모리 관리 파라미터로 변경할 수 있습니다.

이 파라미터의 값을 변경하려면 사용자 정의 파라미터 그룹을 생성하고 기본 설정 메모리 관리 파라미터 및 값을 사용하도록 수정할 수 있습니다. 그러면 새 Redis OSS 클러스터 또는 복제 그룹을 생성할 때마다 사용자 지정 파라미터 그룹을 사용할 수 있습니다. 기존 클러스터나 복제 그룹의 경우 사용자 지정 파라미터 그룹을 사용하도록 수정할 수 있습니다.

자세한 내용은 다음 자료를 참조하십시오.

reserved-memory 파라미터

2017년 3월 16일 이전에는 모든 ElastiCache (Redis OSS) 예약 메모리 관리가 파라미터를 사용하여 수행되었습니다. reserved-memory reserved-memory의 기본값은 0입니다. 이 기본값은 Redis OSS 오버헤드를 위한 메모리를 예약하지 않으며 Redis OSS가 노드의 모든 메모리를 데이터와 함께 소비하도록 허용합니다.

백업 및 장애 조치를 위해 충분한 메모리를 사용할 수 있도록 reserved-memory를 변경할 경우 사용자 지정 파라미터 그룹을 생성해야 합니다. 이 사용자 지정 파라미터 그룹에서는 클러스터에서 실행되는 Redis OSS 버전과 클러스터의 노드 유형에 적합한 값을 설정합니다reserved-memory. 자세한 정보는 필요한 예약된 메모리의 양섹션을 참조하십시오.

reserved-memory이 파라미터는 ElastiCache (Redis OSS) 에만 적용되며 일반 Redis OSS 배포에는 포함되지 않습니다.

다음 절차는 Redis OSS 클러스터의 메모리를 관리하는 reserved-memory 데 사용하는 방법을 보여줍니다.

reserved-memory를 사용하여 메모리를 예약하려면
  1. 실행 중인 엔진 버전과 일치하는 파라미터 그룹 패밀리를 지정하는 사용자 지정 파라미터 그룹을 생성합니다. 예를 들어 redis2.8 파라미터 그룹 패밀리를 지정합니다. 자세한 정보는 파라미터 그룹 생성을 참조하세요.

    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-family redis6.x
  2. Redis OSS 오버헤드를 위해 예약할 메모리 바이트 수를 계산하십시오. Redis OSS 노드 유형별 파라미터에서 노드 유형에 대한 maxmemory 값을 찾을 수 있습니다.

  3. reserved-memory 파라미터가 이전 단계에서 계산된 바이트 수가 되도록 사용자 지정 파라미터 그룹을 수정합니다. 다음 AWS CLI 예에서는 2.8.22 이전 버전의 Redis OSS를 실행 중이고 노드의 절반을 예약해야 한다고 가정합니다. maxmemory 자세한 정보는 파라미터 그룹 수정을 참조하세요.

    aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis28-m3xl \ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=7130316800"

    각 노드 유형에는 다른 maxmemory 값이 있으므로 사용할 각 노드 유형에 대해 별도의 사용자 지정 파라미터 그룹이 필요합니다. 따라서 각 노드 유형에는 reserved-memory에 대해 서로 다른 값이 필요합니다.

  4. 사용자 지정 파라미터 그룹을 사용하도록 Redis OSS 클러스터 또는 복제 그룹을 수정하세요.

    다음 CLI 예제에서는 my-redis-cluster 클러스터를 수정하여 즉시 시작되는 사용자 지정 파라미터 그룹 redis28-m3xl을 사용하도록 합니다. 자세한 정보는 클러스터 수정 ElastiCache 을 참조하세요.

    aws elasticache modify-cache-cluster \ --cache-cluster-id my-redis-cluster \ --cache-parameter-group-name redis28-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-name redis28-m3xl \ --apply-immediately

파라미터 reserved-memory-percent

2017년 3월 16일, Amazon은 이 파라미터를 ElastiCache reserved-memory-percent 도입하여 모든 버전의 ElastiCache (Redis OSS) 에서 사용할 수 있도록 했습니다. reserved-memory-percent의 목적은 모든 클러스터에 대해 예약된 메모리 관리를 간소화하는 것입니다. 노드 유형과 상관없이 클러스터의 예약된 메모리를 관리하기 위해 각 파라미터 그룹 패밀리에 대해 단일 파라미터 그룹(예: redis2.8)을 보유할 수 있도록 하여 이를 수행합니다. reserved-memory-percent에 대한 기본값은 25(25%)입니다.

reserved-memory-percent이 파라미터는 ElastiCache (Redis OSS) 전용이며 일반 Redis OSS 배포에는 포함되지 않습니다.

클러스터가 r6gd 패밀리의 노드 유형을 사용하고 있고 메모리 사용량이 75%에 도달하는 경우 데이터 계층화가 자동으로 트리거됩니다. 자세한 정보는 데이터 계층화을 참조하세요.

를 사용하여 메모리를 예약하려면 reserved-memory-percent

ElastiCache (Redis OSS) 클러스터의 메모리를 관리하는 reserved-memory-percent 데 사용하려면 다음 중 하나를 수행하십시오.

  • Redis OSS 2.8.22 이상을 실행하는 경우 클러스터에 기본 파라미터 그룹을 할당하십시오. 기본 25%가 적절합니다. 그렇지 않은 경우 다음 설명된 단계에 따라 값을 변경합니다.

  • 2.8.22 이전 버전의 Redis OSS를 실행하는 경우 기본값인 25% 보다 많은 메모리를 예약해야 할 수 있습니다. reserved-memory-percent 이렇게 하려면 다음 절차를 사용하세요.

백분율 값을 변경하려면 reserved-memory-percent
  1. 실행 중인 엔진 버전과 일치하는 파라미터 그룹 패밀리를 지정하는 사용자 지정 파라미터 그룹을 생성합니다. 예를 들어 redis2.8 파라미터 그룹 패밀리를 지정합니다. 기본 파라미터 그룹을 수정할 수 없으므로 사용자 지정 파라미터 그룹이 필요합니다. 자세한 정보는 파라미터 그룹 생성을 참조하세요.

    aws elasticache create-cache-parameter-group \ --cache-parameter-group-name redis28-50 \ --description "Redis OSS 2.8.x 50% reserved" \ --cache-parameter-group-family redis2.8

    reserved-memory-percent는 노드의 maxmemory%로 메모리를 예약하므로 각 노드 유형에 대해 사용자 지정 파라미터 그룹이 필요하지 않습니다.

  2. reserved-memory-percent가 50(50%)이 되도록 사용자 지정 파라미터 그룹을 수정합니다. 자세한 정보는 파라미터 그룹 수정을 참조하세요.

    aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis28-50 \ --parameter-name-values "ParameterName=reserved-memory-percent, ParameterValue=50"
  3. 2.8.22 이전 버전의 Redis OSS를 실행하는 모든 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-name redis28-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-name redis28-50 \ --apply-immediately

예약된 메모리 관리 파라미터 지정

2017년 3월 16일 현재 ElastiCache 고객이었던 경우 기본 예약 메모리 관리 매개변수는 예약 메모리가 reserved-memory 0바이트인 것입니다. 2017년 3월 16일 이후에 ElastiCache 고객이 된 경우 기본 예약 메모리 관리 매개변수는 reserved-memory-percent 노드 메모리의 25% 를 예약한 상태로 설정하는 것입니다. 이는 ElastiCache (Redis OSS) 클러스터 또는 복제 그룹을 생성한 시기와 상관없이 적용됩니다. 하지만 AWS CLI 또는 ElastiCache API를 사용하여 예약 메모리 관리 매개변수를 변경할 수 있습니다.

파라미터 reserved-memoryreserved-memory-percent는 함께 사용할 수 없습니다. 파라미터 그룹에는 항상 한 개의 파라미터가 있으며 둘 다 있을 수 없습니다. 파라미터 그룹을 수정하여 파라미터 그룹에서 예약된 메모리 관리에 사용할 파라미터를 변경할 수 있습니다. 기본 파라미터 그룹을 수정할 수 없으므로 파라미터 그룹은 사용자 지정 파라미터 그룹이어야 합니다. 자세한 정보는 파라미터 그룹 생성을 참조하세요.

지정하려면 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에 값을 지정해야 합니다. 자세한 정보는 파라미터 그룹 수정을 참조하세요.

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.xlargemaxmemory 중 25퍼센트에 해당하는 3565158400으로 설정했습니다. 자세한 내용은 파라미터 그룹 수정을(를) 참조하세요.

aws elasticache modify-cache-parameter-group \ --cache-parameter-group-name redis32-m3xl \ --parameter-name-values "ParameterName=reserved-memory, ParameterValue=3565158400"