기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터 계층화
r6gd 패밀리의 노드 유형을 사용하는 클러스터에는 메모리와 로컬SSD(솔리드 스테이트 드라이브) 스토리지 간에 계층화된 데이터가 있습니다. 데이터 계층화는 메모리에 데이터를 저장하는 것 외에도 각 클러스터 노드의 저렴한 솔리드 스테이트 드라이브(SSDs)를 활용하여 Valkey 및 Redis OSS 워크로드에 대한 새로운 가격 대비 성능 옵션을 제공합니다. 다른 노드 유형과 마찬가지로 r6gd 노드에 기록된 데이터는 다중 AZ 트랜잭션 로그에 안정적으로 저장됩니다. 데이터 계층화는 전체 데이터 세트의 최대 20%에 정기적으로 액세스하는 워크로드와 에서 데이터에 액세스할 때 추가 지연 시간을 견딜 수 있는 애플리케이션에 적합합니다SSD.
데이터 계층화가 있는 클러스터에서 MemoryDB는 저장하는 모든 항목의 마지막 액세스 시간을 모니터링합니다. 사용 가능한 메모리(DRAM)가 완전히 사용되면 MemoryDB는 최근에 가장 적게 사용된 (LRU) 알고리즘을 사용하여 자주 액세스하지 않는 항목을 메모리에서 로 자동으로 이동합니다SSD. 의 데이터에 나중에 액세스하면 요청을 처리하기 전에 MemoryDBSSD가 자동으로 비동기적으로 메모리로 다시 이동합니다. 데이터의 하위 집합에만 정기적으로 액세스하는 워크로드가 있는 경우 데이터 계층화는 용량을 비용 효율적으로 확장할 수 있는 최적의 방법입니다.
데이터 계층화를 사용하는 경우 키 자체는 항상 메모리에 남아 있는 반면 는 메모리 대 디스크에 값 배치를 LRU 제어합니다. 일반적으로 데이터 계층화를 사용하는 경우 키 크기가 값 크기보다 작은 것이 좋습니다.
데이터 계층화는 애플리케이션 워크로드에 미치는 성능 영향을 최소화하도록 설계되었습니다. 예를 들어, 500바이트 문자열 값을 가정하면 메모리에 있는 데이터에 대한 읽기 요청과 SSD 비교하여 에 저장된 데이터에 대한 읽기 요청에 대해 일반적으로 450마이크로초의 추가 지연 시간을 예상할 수 있습니다.
가장 큰 데이터 계층화 노드 크기(db.r6gd.8xlarge)를 사용하면 단일 500 노드 클러스터TBs에 최대 500개의 를 저장할 수 있습니다(읽기 전용 복제본 1개를 사용하는 경우 250TB). 데이터 계층화의 경우 MemoryDB는 비 데이터 사용을 위해 노드당 (DRAM) 메모리의 19%를 예약합니다. 데이터 계층화는 MemoryDB 에서 지원되는 모든 Valkey 및 Redis OSS 명령 및 데이터 구조와 호환됩니다. 이 기능을 사용하려면 클라이언트 측 변경 사항이 필요하지 않습니다.
모범 사례
다음 모범 사례를 따르는 것이 좋습니다.
데이터 계층화는 전체 데이터 세트의 최대 20%에 정기적으로 액세스하는 워크로드와 에서 데이터에 액세스할 때 추가 지연 시간을 견딜 수 있는 애플리케이션에 적합합니다SSD.
데이터 계층 노드에서 사용 가능한 SSD 용량을 사용할 때는 값 크기가 키 크기보다 큰 것이 좋습니다. 값 크기는 128MB를 초과할 수 없습니다. 그렇지 않으면 디스크로 이동되지 않습니다. 항목이 DRAM 및 사이에서 이동되면 SSD키는 항상 메모리에 남아 있으며 값만 SSD 계층으로 이동합니다.
제한 사항
데이터 계층화에는 다음과 같은 제한 사항이 있습니다.
사용하는 노드 유형은
us-east-2
,us-east-1
,us-west-2
,us-west-1
,eu-west-1
,eu-west-3
,eu-central-1
,ap-northeast-1
,ap-southeast-1
,ap-southeast-2
,ap-south-1
,ca-central-1
및sa-east-1
과 같은 리전에서 사용할 수 있는 r6gd 패밀리의 노드 유형이어야 합니다.r6gd 클러스터를 사용하지 않는 한 r6gd 클러스터의 스냅샷을 다른 클러스터로 복원할 수 없습니다.
데이터 계층화 클러스터를 위해 스냅샷을 Amazon S3로 내보낼 수 없습니다.
Forkless 저장은 지원되지 않습니다.
데이터 계층화 클러스터(예: r6gd 노드 유형을 사용하는 클러스터)에서 데이터 계층화를 사용하지 않는 클러스터(예: r6g 노드 유형을 사용하는 클러스터)로 확장은 지원되지 않습니다.
데이터 계층화는
volatile-lru
,allkeys-lru
및noeviction
메모리 사용량 제한 정책만 지원합니다.128MiB보다 큰 항목은 로 이동되지 않습니다SSD.
데이터 계층화 요금
R6gd 노드는 총 용량이 5배 더 많으며(메모리 + SSD) R6g 노드(메모리만 해당)에 비해 최대 사용률로 실행 시 스토리지 비용을 60% 이상 절감할 수 있습니다. 자세한 내용은 MemoryDB 요금
모니터링
MemoryDB는 데이터 계층화를 사용하는 성능 클러스터를 모니터링하도록 특별히 설계된 지표를 제공합니다. 와 DRAM 비교하여 의 항목 비율을 모니터링하려면 CurrItems
의 지표를 사용할 SSD수 있습니다MemoryDB에 대한 지표. 백분율은 (CurrItems with Dimension: Tier = Memory * 100) / (CurrItems with no dimension filter)
와(과) 같이 계산할 수 있습니다. 메모리에 있는 항목의 비율이 5% 미만으로 감소하면 MemoryDB 클러스터 크기 조정을 고려하는 것이 좋습니다.
자세한 내용은 MemoryDB에 대한 지표에서 데이터 계층화를 사용하는 MemoryDB 클러스터의 지표를 참조하세요.
데이터 계층화 사용
클러스터를 생성할 때 db.r6gd.xlarge와 같은 r6gd 패밀리의 노드 유형을 선택하여 데이터 계층화를 사용합니다. 해당 노드 유형을 선택하면 데이터 계층화가 자동으로 사용됩니다.
클러스터 생성에 대한 자세한 내용은 2단계: 클러스터 생성 섹션을 참조하세요.
를 사용하여 클러스터를 생성할 때 AWS CLIdb.r6gd.xlarge와 같은 r6gd 패밀리에서 노드 유형을 선택하고 --data-tiering
파라미터를 설정하여 데이터 계층화를 사용합니다.
r6gd 패밀리의 노드 유형을 선택하는 경우 데이터 계층화를 선택 해제할 수 없습니다. --no-data-tiering
파라미터를 설정하는 경우 작업이 실패합니다.
Linux, macOS, Unix의 경우:
aws memorydb create-cluster \ --cluster-name my-cluster \ --node-type db.r6gd.xlarge \ --engine valkey \ --acl-name my-acl \ --subnet-group my-sg \ --data-tiering
Windows의 경우:
aws memorydb create-cluster ^ --cluster-name my-cluster ^ --node-type db.r6gd.xlarge ^ --engine valkey ^ --acl-name my-acl ^ --subnet-group my-sg --data-tiering
이 작업을 실행하면 다음과 유사한 응답이 표시됩니다.
{ "Cluster": { "Name": "my-cluster", "Status": "creating", "NumberOfShards": 1, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Port": 6379 }, "NodeType": "db.r6gd.xlarge", "EngineVersion": "7.2", "EnginePatchVersion": "7.2.6", "Engine": "valkey" "ParameterGroupName": "default.memorydb-valkey7", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxxxxxxxxx:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering":"true", "AutoMinorVersionUpgrade": true } }
데이터 계층화가 활성화된 상태에서 스냅샷에서 클러스터로 데이터 복원
(콘솔), (AWS CLI) 또는 (MemoryDB)를 사용하여 데이터 계층화가 활성화된 새 클러스터로 스냅샷을 복원할 수 있습니다API. r6gd 패밀리의 노드 유형을 사용하여 클러스터를 생성하는 경우 데이터 계층화가 활성화됩니다.
데이터 계층화가 활성화된 상태로 스냅샷에서 클러스터로 데이터 복원(콘솔)
데이터 계층화가 활성화된 새 클러스터(콘솔)로 스냅샷을 복원하려면 스냅샷에서 복원(콘솔)의 단계를 따르세요.
데이터 계층화를 활성화하려면 r6gd 패밀리의 노드 유형을 선택해야 합니다.
를 사용하여 클러스터를 생성할 때 AWS CLI데이터 계층화는 기본적으로 db.r6gd.xlarge와 같은 r6gd 패밀리에서 노드 유형을 선택하고 --data-tiering
파라미터를 설정하여 사용됩니다.
r6gd 패밀리의 노드 유형을 선택하는 경우 데이터 계층화를 선택 해제할 수 없습니다. --no-data-tiering
파라미터를 설정하는 경우 작업이 실패합니다.
Linux, macOS, Unix의 경우:
aws memorydb create-cluster \ --cluster-name my-cluster \ --node-type db.r6gd.xlarge \ --engine valkey --acl-name my-acl \ --subnet-group my-sg \ --data-tiering \ --snapshot-name
my-snapshot
Windows의 경우:
aws memorydb create-cluster ^ --cluster-name my-cluster ^ --node-type db.r6gd.xlarge ^ --engine valkey ^ --acl-name my-acl ^ --subnet-group my-sg ^ --data-tiering ^ --snapshot-name
my-snapshot
이 작업을 실행하면 다음과 유사한 응답이 표시됩니다.
{ "Cluster": { "Name": "my-cluster", "Status": "creating", "NumberOfShards": 1, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Port": 6379 }, "NodeType": "db.r6gd.xlarge", "EngineVersion": "7.2", "EnginePatchVersion": "7.2.6", "Engine": "valkey" "ParameterGroupName": "default.memorydb-valkey7", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxxxxxxxxx:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering": "true" }