View a markdown version of this page

내구성 옵션 - Amazon ElastiCache

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

내구성 옵션

ElastiCache for Valkey는 동기 및 비동기 쓰기라는 두 가지 내구성 옵션을 제공합니다.

동기 쓰기를 사용하면 클라이언트로 돌아가기 전에 성공적인 쓰기 작업이 다중 AZ 트랜잭션 로그에 안정적으로 저장됩니다. 이렇게 하면 한 자릿수 밀리초의 쓰기 지연 시간이 발생하고 장애 발생 시 승인된 쓰기 작업이 손실되지 않습니다.

비동기 쓰기를 사용하면 성공적인 쓰기 작업이 다중 AZ 트랜잭션 로그에 내구성 있게 저장되기 전에 클라이언트에 반환됩니다. 쓰기 작업은 다중 AZ 트랜잭션 로그에 안정적으로 저장될 때까지 기다리지 않으므로 쓰기 작업 지연 시간은 내구성 없이 ElastiCache와 동일합니다. 그러나 실패 시 마지막 10초의 성공적인 쓰기 작업이 손실될 수 있습니다.

비동기 쓰기로 인한 잠재적 데이터 손실을 이해하려면 내구성 버퍼의 개념을 고려하세요. 내구성 버퍼는 프라이머리 노드에서 수락했지만 다중 AZ 트랜잭션 로그에 아직 유지되지 않은 쓰기의 최대 수명을 나타냅니다. 프라이머리 노드는 승인되지 않은 가장 오래된 쓰기의 수명을 추적합니다. 이 수명이 10초 미만으로 유지되는 한 노드는 새 쓰기를 정상적으로 계속 수락합니다. 확인되지 않은 가장 오래된 쓰기의 수명이 10초 이상 증가하면 기본 노드는 모든 수신 쓰기 명령을 따라잡을 때까지 거부합니다. 이 기간 동안 읽기 작업은 마이크로초 지연 시간으로 계속 제공됩니다. 보류 중인 쓰기가 지속되면 노드는 쓰기 자동 수락을 재개합니다. 이렇게 하면 장애 발생 시 잠재적 데이터 손실이 10초 분량의 쓰기로 제한됩니다.

비동기식 내구성 클러스터로 트래픽을 전송하도록 클라이언트를 구성할 때 클라이언트는 클러스터 다운 오류 메시지와 함께 거부된 모든 쓰기 명령을 지수 백오프로 자동으로 재시도해야 합니다. 이 오류와 기타 일시적 오류를 처리하도록 클라이언트를 구성하는 방법에 대한 지침은 모범 사례: Valkey/Redis OSS 클라이언트 및 Amazon ElastiCache를 참조하세요.

비동기식 내구성 버퍼가 버퍼에 입력되는 쓰기, 트랜잭션 로그 유지, 버퍼가 10초를 초과하는 경우 로그가 포착될 때까지 새 쓰기가 거부되는 5가지 상태에서 작동하는 방식을 보여주는 다이어그램입니다.

내구성 옵션 선택

애플리케이션에서 장애 발생 시 데이터 손실을 허용할 수 없는 경우 동기 쓰기를 사용합니다. 동기 쓰기를 사용하면 RAG 애플리케이션의 지식 기반, AI 에이전트 메모리, AI 에이전트 워크플로 상태, 결제 토큰화, 스트리밍 메타데이터, 게임 플레이어 상태, 실시간 인벤토리 관리 등 데이터 손실이 허용되지 않는 캐싱 이외의 광범위한 사용 사례에 ElastiCache를 사용할 수 있습니다.

애플리케이션이 쓰기 성능에 우선순위를 두고 장애 발생 시 커밋되지 않은 데이터의 최대 10초 손실 가능성을 허용할 수 있는 경우 비동기 쓰기를 사용합니다. 이 옵션은 애플리케이션 데이터 캐싱, 세션 스토어, 게임 리더보드, 실시간 분석과 같은 워크로드에 적합합니다.