장애 조치 중에 ElastiCache의 가동 중지 시간을 최소화하려면 어떻게 해야 합니까?

4분 분량
0

Amazon ElastiCache for Redis OSS와 Amazon ElastiCache for Valkey의 장애 조치 중에 가동 중지 시간을 최소화하기 위해 모범 사례를 따르려고 합니다.

간략한 설명

ElastiCache에서 다음과 같은 이유로 애플리케이션 성능 및 안정성에 영향을 미치는 장애 조치가 발생할 수 있습니다.

  • 메모리, CPU 및 네트워크 대역폭과 같은 리소스가 고갈되면 노드의 장애 조치가 실시될 수 있습니다.
  • AWS에서 업데이트를 위한 유지 관리 이벤트를 예약하는 경우 노드의 장애 조치가 실시될 수 있습니다.
  • 노드를 호스팅하는 인프라의 물리적 하드웨어에 장애가 발생하거나 문제가 있는 경우 노드의 장애 조치가 실시될 수 있습니다.
  • 캐시와 상호 작용하는 애플리케이션 또는 서비스를 올바르게 구성하지 않으면 구성으로 인해 가동 중지 시간이 길어질 수 있습니다.

해결 방법

다중 AZ 설정

AWS 리전의 여러 가용 영역(AZ)에서 기본 및 복제본 노드를 생성하고 유지 관리하려면 ElastiCache 다중 AZ 기능을 사용하십시오. 기본 노드에 장애가 발생하면 복제본 노드가 가동 중지 시간을 최소화하면서 기본 노드 역할을 대신합니다.

읽기 전용 복제본 추가

Redis 배포에 읽기 전용 복제본을 추가하면 장애 조치 작업 시 가동 중지 시간과 데이터 손실을 크게 최소화할 수 있습니다. 읽기 전용 복제본이 읽기 요청을 관리할 때 쓰기 작업을 처리하도록 기본 노드를 구성합니다. 이 구성은 다음 이점을 제공합니다.

  • 읽기 처리량 향상
  • 지연 시간 감소
  • 내결함성 제공
  • 클러스터의 가동 중지 시간을 유발하는 유지 관리 작업 간소화

가용 영역 전체에 노드 분산

노드를 여러 가용 영역에 분산하면 서로 다른 AZ의 복제본이 고가용성과 지속적 읽기 작업을 제공합니다. 이 구성은 시스템 복원력을 향상시키고 노드 장애 조치 시 가동 중지 시간을 줄입니다. 클러스터를 처음 구성하거나 기존 클러스터에 새 노드를 추가할 때 노드를 여러 AZ에 분산할 수 있습니다. 자세한 내용은 ElastiCache의 리전 및 가용 영역 선택을 참조하십시오.

최신 Valkey 또는 Redis OSS 버전 사용

클러스터 및 노드 유형에 따라 최신 기능을 지원하는 최신 버전의 Valkey 또는 Redis OSS를 사용하십시오. 예를 들어, 클러스터 모드가 비활성화된 클러스터에서 계획된 노드 교체 기능을 사용하려면 Valkey 버전 7.2 또는 Redis OSS 버전 5.0.6 이상이 필요합니다. 자세한 내용은 지원되는 노드 유형을 참조하십시오.

클러스터 이벤트 모니터링

장애 조치를 식별하고 이에 대응하려면 ElastiCache 클러스터 이벤트를 검토하십시오. 장애 조치를 조기에 감지하려면 Amazon Simple Notification Service(Amazon SNS)를 사용하여 중요한 클러스터 이벤트에 대한 알림을 전송하도록 ElastiCache를 구성하십시오.

올바른 엔드포인트 사용

장애 조치 중 가동 중지 시간을 최소화하려면 클러스터 구성에 따라 ElastiCache for Redis OSS 클러스터에 올바른 엔드포인트를 사용해야 합니다. 클러스터 모드가 비활성화된 클러스터의 복제본 전체에 읽기 워크로드를 분산하려면 쓰기 작업에는 기본 엔드포인트를 사용하고 읽기 작업에는 리더 엔드포인트를 사용합니다. 클러스터 모드가 활성화된 클러스터의 경우 모든 작업에 구성 엔드포인트를 사용하여 올바른 노드에 대한 연결을 자동으로 관리합니다. 클러스터 모드에 적합한 엔드포인트를 선택하면 성능을 최적화하고 원활한 장애 조치 프로세스를 만들 수 있습니다. 자세한 내용은 ElastiCache에서 연결 엔드포인트 찾기를 참조하십시오.

참고: 개별 노드 엔드포인트를 직접 사용하는 것은 바람직하지 않습니다. 대신 연결 유형에 맞는 엔드포인트를 사용하십시오. 장애 조치 이벤트 중에 노드 역할이 변경될 수 있으므로 개별 노드 엔드포인트를 사용하면 애플리케이션 문제가 더 많이 발생합니다.

정기적인 자동 장애 조치 테스트

안정적인 Redis 배포를 유지하려면 정기적으로 자동 장애 조치 테스트를 실시하는 것이 가장 좋습니다. 자동 장애 조치를 테스트하려면 기본 노드 장애를 시뮬레이션하여 복제본이 기본 상태로 승격되었는지 확인해야 합니다. 이러한 테스트를 통해 구성의 문제를 식별하고 클러스터에 영향을 미치기 전에 문제를 해결할 수 있습니다. 또한 장애 조치 테스트는 애플리케이션 성능과 아키텍처 및 복구 절차를 최적화하는 방법에 대한 인사이트를 제공합니다.

Redis 클라이언트 모범 사례 따르기

Redis 클라이언트의 경우 다음 모범 사례를 따르십시오.

  • 애플리케이션 성능 및 확장성을 높이려면 연결 풀링을 사용하여 재사용 가능하고 사전 설정된 연결을 관리하십시오. 자세한 내용은 Redis 웹사이트의 연결 풀 및 멀티플렉싱을 참조하십시오.
  • 예외 및 시간 초과 처리를 구현하여 Redis 클러스터의 효율적인 애플리케이션을 유지하십시오. 로그에서 시간 초과를 검토하여 문제를 식별하고 구성을 조정할 수도 있습니다. 자세한 내용은 Redis 웹사이트에서 클라이언트 시간 초과를 참조하십시오.
  • 복원력이 뛰어난 애플리케이션을 유지하려면 지수 백오프 전략을 사용하는 재시도 메커니즘을 구현해야 합니다. 재시도가 필요한 일시적 오류와 재시도가 필요하지 않은 영구적 오류를 구분하도록 메커니즘을 구성하십시오. 자세한 내용은 클러스터 클라이언트 검색 및 지수 백오프(Valkey 및 Redis OSS)를 참조하십시오.
  • 로그를 설정하여 주요 지표와 오류를 캡처하고, 클러스터의 성능 기준을 설정합니다. 자세한 내용은 Redis 웹사이트의 이벤트 로깅을 참조하십시오.
  • 클러스터 토폴로지 변경을 동적으로 처리하고 노드 및 역할 변경에 적응하도록 클라이언트를 설계합니다. 클러스터 노드에 대한 연결을 유지하고 클러스터를 최적화하려면 스마트 연결 풀링을 구현하십시오. 자세한 내용은 Redis 웹사이트에서 Redis 클러스터 및 클라이언트 라이브러리를 참조하십시오.

관련 정보

Amazon CloudWatch를 사용하여 Amazon ElastiCache for Redis의 모범 사례 모니터링

ElastiCache for Redis에서 지연 시간이 길어지는 문제를 해결하려면 어떻게 해야 합니까?

Redis 웹사이트의 지원되는 연결 클라이언트

AWS 공식업데이트됨 2달 전