의 데이터 계층화 ElastiCache - Amazon ElastiCache

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

의 데이터 계층화 ElastiCache

ElastiCache 복제 그룹을 구성하고 r6gd 패밀리의 노드 유형을 사용하는 Valkey 또는 Redis OSS 클러스터를 사용하면 메모리와 로컬SSD(솔리드 스테이트 드라이브) 스토리지 간에 데이터가 계층화됩니다. 데이터 계층화는 메모리에 데이터를 저장하는 것 외에도 각 클러스터 노드의 저렴한 솔리드 스테이트 드라이브(SSDs)를 활용하여 Valkey 또는 Redis OSS 워크로드에 대한 새로운 가격 대비 성능 옵션을 제공합니다. 전체 데이터 세트의 최대 20%에 정기적으로 액세스하는 워크로드와 에서 데이터에 액세스할 때 추가 지연 시간을 견딜 수 있는 애플리케이션에 적합합니다SSD.

데이터 계층화가 있는 ElastiCache 클러스터에서 는 저장하는 모든 항목의 마지막 액세스 시간을 ElastiCache 모니터링합니다. 사용 가능한 메모리(DRAM)가 완전히 소모되면 ElastiCache는 최근에 가장 적게 사용되는 (LRU) 알고리즘을 사용하여 자주 액세스하지 않는 항목을 메모리에서 로 자동으로 이동합니다SSD. 이후에 SSD 의 데이터에 액세스하면 요청을 처리하기 전에 ElastiCache 자동 및 비동기적으로 데이터를 메모리로 다시 이동합니다. 데이터의 하위 집합에만 정기적으로 액세스하는 워크로드가 있는 경우 데이터 계층화는 용량을 비용 효율적으로 확장할 수 있는 최적의 방법입니다.

데이터 계층화를 사용하는 경우 키 자체는 항상 메모리에 남아 있는 반면 는 메모리 대 디스크에 값 배치를 LRU 제어합니다. 일반적으로 데이터 계층화를 사용하는 경우 키 크기가 값 크기보다 작은 것이 좋습니다.

데이터 계층화는 애플리케이션 워크로드에 미치는 성능 영향을 최소화하도록 설계되었습니다. 예를 들어, 500바이트 문자열 값을 가정하면 메모리에 저장된 데이터에 대한 요청과 SSD 비교하여 에 저장된 데이터에 대한 요청의 지연 시간이 평균 300마이크로초 더 걸릴 수 있습니다.

가장 큰 데이터 계층화 노드 크기(cache.r6gd.16xlarge)를 사용하면 단일 500노드 클러스터에 최대 1페타바이트까지 저장할 수 있습니다(읽기 전용 복제본 1개를 사용하는 경우는 500TB). 데이터 계층화는 에서 지원되는 모든 Valkey 또는 Redis OSS 명령 및 데이터 구조와 호환됩니다 ElastiCache. 이 기능을 사용하려면 클라이언트 측 변경 사항이 필요하지 않습니다.

모범 사례

다음 모범 사례를 따르는 것이 좋습니다.

  • 데이터 계층화는 전체 데이터 세트의 최대 20%에 정기적으로 액세스하는 워크로드와 에서 데이터에 액세스할 때 추가 지연 시간을 견딜 수 있는 애플리케이션에 적합합니다SSD.

  • 데이터 계층 노드에서 사용 가능한 SSD 용량을 사용할 때는 값 크기가 키 크기보다 큰 것이 좋습니다. 항목이 DRAM 및 사이에서 이동되면 SSD키는 항상 메모리에 남아 있으며 값만 SSD 계층으로 이동합니다.

제한 사항

데이터 계층화에는 다음과 같은 제한 사항이 있습니다.

  • 복제 그룹에 속하는 클러스터에서만 데이터 계층화를 사용할 수 있습니다.

  • 사용하는 노드 유형은 us-east-2, us-east-1, us-west-2, us-west-1, eu-west-1, eu-central-1, eu-north-1, eu-west-3, ap-northeast-1, ap-southeast-1, ap-southeast-2, ap-south-1, ca-central-1sa-east-1과 같은 리전에서 사용할 수 있는 r6gd 패밀리의 노드 유형이어야 합니다.

  • Valkey 7.2 이상 또는 Redis OSS 6.2 이상의 엔진을 사용해야 합니다.

  • r6gd 클러스터를 사용하지 않는 한 r6gd 클러스터의 백업을 다른 클러스터로 복원할 수 없습니다.

  • 데이터 계층화 클러스터를 위해 백업을 Amazon S3로 내보낼 수 없습니다.

  • r6gd 노드 유형에서 실행되는 클러스터에는 온라인 마이그레이션이 지원되지 않습니다.

  • 데이터 계층화 클러스터(예: r6gd 노드 유형을 사용하는 클러스터)에서 데이터 계층화를 사용하지 않는 클러스터(예: r6g 노드 유형을 사용하는 클러스터)로 확장은 지원되지 않습니다. 자세한 내용은 크기 조정 ElastiCache 단원을 참조하십시오.

  • Auto Scaling은 Valkey 버전 7.2 이상 및 Redis OSS 버전 7.0.7 이상의 데이터 계층화를 사용하는 클러스터에서 지원됩니다. 자세한 내용은 Auto Scaling Valkey 및 Redis OSS 클러스터 단원을 참조하세요.

  • 데이터 계층화는 volatile-lru, allkeys-lru, volatile-lfu, allkeys-lfunoeviction 메모리 사용량 제한 정책만 지원합니다.

  • Forkless 저장은 Valkey 버전 7.2 이상 및 Redis OSS 버전 7.0.7 이상에서 지원됩니다. 자세한 내용은 동기화 및 백업 구현 방법 단원을 참조하십시오.

  • 128MiB보다 큰 항목은 로 이동되지 않습니다SSD.

요금

R6gd 노드는 총 용량(메모리 + SSD)의 4.8배가 더 많으며 R6g 노드(메모리만 해당)에 비해 최대 사용률로 실행 시 60% 이상 절감할 수 있습니다. 자세한 내용은 ElastiCache 요금 섹션을 참조하세요.

모니터링

ElastiCache 는 데이터 계층화를 사용하는 성능 클러스터를 모니터링하도록 특별히 설계된 지표를 제공합니다. 와 DRAM 비교하여 의 항목 비율을 모니터링하려면 Valkey 및 Redis CurrItems 에 대한 지표에서 지표를 사용할 SSD수 있습니다. OSS 백분율은 (차원: 계층 = 메모리 * CurrItems 100) / (차원 필터 CurrItems 없음)로 계산할 수 있습니다.

구성된 제거 정책이 허용하는 경우 ElastiCache 는 메모리의 항목 비율이 5% 미만으로 감소하면 항목 제거를 시작합니다. 제거 정책으로 구성된 노드에서 쓰기 작업은 메모리 부족 오류를 수신합니다.

메모리의 항목 비율이 5% 미만으로 감소할 경우 클러스터 모드 활성화 클러스터에 대해 스케일 아웃을 고려하거나 클러스터 모드 비활성화 클러스터에 대해 스케일 업을 고려하는 것이 좋습니다. 크기 조정에 대한 자세한 내용은 섹션을 참조하세요Valkey 또는 Redis에서 클러스터 크기 조정OSS(클러스터 모드 활성화됨). 데이터 계층화를 사용하는 Valkey 또는 Redis OSS 클러스터의 지표에 대한 자세한 내용은 섹션을 참조하세요Valkey 및 Redis에 대한 지표 OSS.

데이터 계층화 사용

복제 그룹에 속하는 클러스터를 생성할 때 cache.r6gd.xlarge와 같은 r6gd 패밀리의 노드 유형을 선택하여 데이터 계층화를 사용합니다. 해당 노드 유형을 선택하면 데이터 계층화가 자동으로 사용됩니다.

클러스터 생성에 대한 자세한 내용은 Valkey 또는 Redis용 클러스터 생성 OSS 섹션을 참조하세요.

를 사용하여 복제 그룹을 생성할 때 cache.r6gd.xlarge와 같은 r6gd 패밀리에서 노드 유형을 선택하고 --data-tiering-enabled 파라미터를 설정하여 데이터 계층화를 AWS CLI사용합니다.

r6gd 패밀리의 노드 유형을 선택하는 경우 데이터 계층화를 선택 해제할 수 없습니다. --no-data-tiering-enabled 파라미터를 설정하는 경우 작업이 실패합니다.

Linux, macOS, Unix의 경우:

aws elasticache create-replication-group \ --replication-group-id redis-dt-cluster \ --replication-group-description "Redis OSS cluster with data tiering" \ --num-node-groups 1 \ --replicas-per-node-group 1 \ --cache-node-type cache.r6gd.xlarge \ --engine redis \ --cache-subnet-group-name default \ --automatic-failover-enabled \ --data-tiering-enabled

Windows의 경우:

aws elasticache create-replication-group ^ --replication-group-id redis-dt-cluster ^ --replication-group-description "Redis OSS cluster with data tiering" ^ --num-node-groups 1 ^ --replicas-per-node-group 1 ^ --cache-node-type cache.r6gd.xlarge ^ --engine redis ^ --cache-subnet-group-name default ^ --automatic-failover-enabled ^ --data-tiering-enabled

이 작업을 실행하면 다음과 유사한 응답이 표시됩니다.

{ "ReplicationGroup": { "ReplicationGroupId": "redis-dt-cluster", "Description": "Redis OSS cluster with data tiering", "Status": "creating", "PendingModifiedValues": {}, "MemberClusters": [ "redis-dt-cluster" ], "AutomaticFailover": "enabled", "DataTiering": "enabled", "SnapshotRetentionLimit": 0, "SnapshotWindow": "06:00-07:00", "ClusterEnabled": false, "CacheNodeType": "cache.r6gd.xlarge", "TransitEncryptionEnabled": false, "AtRestEncryptionEnabled": false } }

데이터 계층화가 활성화된 상태에서 백업에서 클러스터로 데이터 복원

(콘솔), () 또는 (AWS CLI)를 사용하여 데이터 계층화가 활성화된 새 클러스터로 백업을 복원할 수 있습니다ElastiCache API. r6gd 패밀리의 노드 유형을 사용하여 클러스터를 생성하는 경우 데이터 계층화가 활성화됩니다.

데이터 계층화가 활성화된 새 클러스터로 백업을 복원하려면(콘솔)
  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/elasticache/에서 ElastiCache 콘솔을 엽니다.

  2. 탐색 창에서 [Backups]를 선택합니다.

  3. 백업 목록에서 복원할 백업의 이름 왼쪽에 있는 상자를 선택합니다.

  4. 복원을 선택합니다.

  5. [Restore Cluster] 대화 상자를 완료합니다. 모든 필수 필드와 기본값을 변경하려는 다른 필드를 완료해야 합니다.

    1. 클러스터 ID - 필수입니다. 새 클러스터의 이름입니다.

    2. 클러스터 모드 활성화(스케일 아웃) - Valkey 또는 RedisOSS(클러스터 모드 활성화) 클러스터에 대해 이 옵션을 선택합니다.

    3. 노드 유형 - cache.r6gd.xlarge 또는 r6gd 패밀리의 다른 노드 유형을 지정합니다.

    4. 샤드 수 - 새 클러스터(API/CLI: 노드 그룹)에서 원하는 샤드 수를 선택합니다.

    5. 샤드 당 복제본 - 각 샤드에 포함할 읽기 전용 복제본 노드 수를 선택합니다.

    6. 슬롯 및 키스페이스 - 샤드에 키를 배포할 방법을 선택합니다. 키 배포를 지정하도록 선택할 경우 각 샤드의 키 범위를 지정하는 표를 완료합니다.

    7. 가용 영역 - 클러스터의 가용 영역 선택 방법을 지정합니다.

    8. 포트 - 이 클러스터에 다른 포트를 사용하려는 경우에만 변경합니다.

    9. 선택 VPC- 이 클러스터를 생성할 VPC 를 선택합니다.

    10. 파라미터 그룹 - 선택한 노드 유형에 대한 Valkey 또는 Redis OSS 오버헤드에 충분한 메모리를 예약하는 파라미터 그룹을 선택합니다.

  6. 원하는 대로 설정되었으면 [Create]를 선택합니다.

클러스터 생성에 대한 자세한 내용은 Valkey 또는 Redis용 클러스터 생성 OSS 섹션을 참조하세요.

를 사용하여 복제 그룹을 생성할 때 AWS CLI기본적으로 데이터 계층화는 cache.r6gd.xlarge와 같은 r6gd 패밀리에서 노드 유형을 선택하고 --data-tiering-enabled 파라미터를 설정하여 사용됩니다.

r6gd 패밀리의 노드 유형을 선택하는 경우 데이터 계층화를 선택 해제할 수 없습니다. --no-data-tiering-enabled 파라미터를 설정하는 경우 작업이 실패합니다.

Linux, macOS, Unix의 경우:

aws elasticache create-replication-group \ --replication-group-id redis-dt-cluster \ --replication-group-description "Redis OSS cluster with data tiering" \ --num-node-groups 1 \ --replicas-per-node-group 1 \ --cache-node-type cache.r6gd.xlarge \ --engine redis \ --cache-subnet-group-name default \ --automatic-failover-enabled \ --data-tiering-enabled \ --snapshot-name my-snapshot

Linux, macOS, Unix의 경우:

aws elasticache create-replication-group ^ --replication-group-id redis-dt-cluster ^ --replication-group-description "Redis OSS cluster with data tiering" ^ --num-node-groups 1 ^ --replicas-per-node-group 1 ^ --cache-node-type cache.r6gd.xlarge ^ --engine redis ^ --cache-subnet-group-name default ^ --automatic-failover-enabled ^ --data-tiering-enabled ^ --snapshot-name my-snapshot

이 작업을 실행하면 다음과 유사한 응답이 표시됩니다.

{ "ReplicationGroup": { "ReplicationGroupId": "redis-dt-cluster", "Description": "Redis OSS cluster with data tiering", "Status": "creating", "PendingModifiedValues": {}, "MemberClusters": [ "redis-dt-cluster" ], "AutomaticFailover": "enabled", "DataTiering": "enabled", "SnapshotRetentionLimit": 0, "SnapshotWindow": "06:00-07:00", "ClusterEnabled": false, "CacheNodeType": "cache.r6gd.xlarge", "TransitEncryptionEnabled": false, "AtRestEncryptionEnabled": false } }