Amazon Web Services 한국 블로그
Amazon ElastiCache 업데이트– Redis 클러스터 온라인 크기 조절 기능 출시
Amazon ElastiCache를 사용하면 고속 인 메모리 데이터 스토어와 캐시를 쉽게 설정할 수 있습니다. ElastiCache에서는 가장 인기 있는 두 오픈 소스 제품(Redis 및 Memcached)을 지원하여 게임 리더보드, 인 메모리 분석 및 대규모 메시징의 까다로운 요구 사항을 지원합니다.
오늘은 Redis용 Amazon ElastiCache의 중요한 추가 기능에 대해 살펴보겠습니다. 최대 15개의 샤드를 포함하는 클러스터를 만들 수 있습니다. 각 샤드는 특정 슬롯 세트에 대한 키와 값을 저장하고, 각 클러스터에는 정확히 16,384개의 슬롯이 있습니다. 단일 클러스터를 확장하여 초당 최대 2,000만 회의 읽기와 450만 회의 쓰기를 지원하면서 3.55TB의 인 메모리 데이터를 저장할 수 있습니다.
온라인 크기 조절
이제 클러스터를 온라인 상태로 유지하고 요청에 응답하면서 실행 중인 Redis용 ElastiCache 클러스터에서 샤드 수를 조정할 수 있습니다. 그러면 클러스터를 오프라인으로 전환하거나 빈 캐시로 시작할 필요 없이 트래픽 및 데이터 볼륨 변경에 대응할 수 있습니다. 또한 샤드 수를 변경하지 않고도 실행 중인 클러스터를 재조정하여 슬롯 공간을 균일하게 재배포할 수 있습니다.
리샤딩 또는 재분배 작업을 시작하면 Redis용 ElastiCache는 클러스터 내 전체 샤드에 슬롯을 균등하게 배포하는 계획을 준비하여 시작됩니다. 그런 다음 전체 샤드에 슬롯을 전송하여 많은 슬롯을 병렬로 이동하는 방식으로 효율성을 확보합니다. 이 과정에서 클러스터는 요청에 지속적으로 응답하여 이동 중인 슬롯에 대한 쓰기 처리량에 미치는 영향을 완화합니다. 마이그레이션 속도는 인스턴스 유형, 네트워크 속도, 슬롯에 대한 읽기/쓰기 트래픽 등에 따라 달라지며 일반적으로 분당 약 1GB입니다.
리샤딩 및 재분배 작업은 클러스터 모드를 활성화하여 만든 Redis 클러스터에 적용됩니다.
클러스터 리샤딩
일반적으로 메모리가 심각하게 부족하거나 개별 노드에서 병목 현상이 발생할 경우 리샤딩을 통해 클러스터를 확장해야 합니다. 클러스터의 CloudWatch 측정치를 조사하여 각 상황을 확인할 수 있습니다.
메모리 부족 – FreeableMemory, SwapUsage, BytesUsedForCache.
CPU 병목 현상 – CPUUtilization, CurrConnections, NewConnections.
네트워크 병목 현상 – NetworkBytesIn, NetworkBytesOut.
CloudWatch 대시보드를 사용하여 이러한 측정치를 모니터링하고 CloudWatch 경보를 사용하여 리샤딩 프로세스를 자동화할 수 있습니다.
ElastiCache 대시보드에서 Redis 클러스터를 리샤딩하려면 클러스터를 클릭하여 세부 정보 페이지를 방문한 다음 [Add shards] 버튼을 클릭합니다.
추가할 샤드 수와 (선택 사항)원하는 가용 영역을 입력한 다음 [Add]를 클릭합니다.
클러스터의 상태가 [modifying]으로 변경되고 리샤딩 프로세스가 시작됩니다. 위에 표시된 대로 이 작업은 몇 분에서 몇 시간까지 걸릴 수 있습니다. 클러스터에 대한 세부 정보 페이지에서 진행률을 추적할 수 있습니다.
샤드 간에 이동하는 슬롯을 볼 수 있습니다.
클러스터에 대한 이벤트를 확인할 수도 있습니다.
리샤딩 중에 클러스터 샤드에 대한 부하를 완화하기 위해 KEYS
및 SMEMBERS
명령 및 컴퓨팅 집약적인 Lua 스크립트를 사용해서는 안 됩니다. 또한 FLUSHDB
및 FLUSHALL
명령을 사용해서는 안 됩니다. 그러면 리샤딩 프로세스가 중단됩니다.
프로세스가 완료되면 각 샤드의 상태가 [available]로 되돌아갑니다.
샤드를 삭제할 때에도 동일한 프로세스를 수행합니다.
슬롯 재분배
클러스터의 세부 정보 페이지로 이동한 다음 [Rebalance Slot Distribution]을 클릭하여 이 작업을 수행할 수 있습니다.
알아야 할 것들
다음은 이 새로운 기능과 관련하여 몇 가지 알고 있어야 할 사항입니다.
- 엔진 버전 – 클러스터에서 3.2.10 버전 Redis 엔진을 실행하고 있어야 합니다.
- 마이그레이션 크기 – 직렬화 이후에 256MB를 초과하는 항목을 포함하는 슬롯은 마이그레이션되지 않습니다.
- 클러스터 엔드포인트 – 클러스터 엔드포인트는 리샤딩 또는 재분배로 인해 변경되지 않습니다.
지금 이용 가능
이 기능은 지금 이용 가능하며 오늘부터 사용할 수 있습니다.
— Jeff;
이 글은 Amazon ElastiCache Update – Online Resizing for Redis Clusters의 한국어 번역입니다.