장애 완화 - 아마존 포 ElastiCache 레디스용

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

장애 완화

Amazon ElastiCache 구현을 계획할 때는 장애가 애플리케이션과 데이터에 미치는 영향을 최소화하도록 계획을 세워야 합니다. 이 섹션의 항목은 애플리케이션 및 데이터를 장애로부터 보호하기 위해 취할 수 있는 접근 방식을 다룹니다.

Redis 실행 시 장애 완화

Redis 엔진을 실행할 때 노드 또는 가용 영역 장애의 영향을 최소화하기 위한 다음과 같은 옵션이 있습니다.

노드 장애 완화

서버리스 캐시는 다중 AZ 아키텍처를 통해 노드 장애를 자동으로 완화하므로 노드 장애가 애플리케이션에 영향을 미치지 않도록 합니다. 개별 노드의 장애를 완화하려면 자체 설계된 클러스터를 적절하게 구성해야 합니다.

자체 설계된 클러스터에서 Redis 노드 장애로 인한 영향을 완화할 수 있도록 다음과 같은 옵션이 마련되어 있습니다.

장애 완화: Redis 복제 그룹

Redis 복제 그룹은 애플리케이션이 읽고 쓸 수 있는 단일 기본 노드와 1~5개의 읽기 전용 복제본 노드로 구성되어 있습니다. 기본 노드에 데이터가 작성될 때마다 읽기 전용 복제본 노드에서도 비동기식으로 업데이트됩니다.

읽기 전용 복제본 장애의 경우
  1. ElastiCache 실패한 읽기 전용 복제본을 탐지합니다.

  2. ElastiCache 장애가 발생한 노드를 오프라인 상태로 전환합니다.

  3. ElastiCache 동일한 AZ에서 대체 노드를 시작하고 프로비저닝합니다.

  4. 새 노드가 기본 노드와 동기화됩니다.

이 기간 동안 애플리케이션에서는 다른 노드를 사용하여 계속 읽고 쓸 수 있습니다.

Redis 다중 AZ

Redis 복제 그룹에서 다중 AZ를 활성화할 수 있습니다. 다중 AZ를 활성화했는지 여부와 상관없이 장애가 있는 기본 노드가 자동으로 감지되고 대체됩니다. 다중 AZ가 활성화되었는지 여부에 따라 이러한 작동 방식이 달라집니다.

다중 AZ가 활성화된 경우
  1. ElastiCache 기본 노드 장애를 감지합니다.

  2. ElastiCache 복제 지연이 가장 적은 읽기 전용 복제본 노드를 기본 노드로 승격합니다.

  3. 다른 복제본이 새 기본 노드와 동기화됩니다.

  4. ElastiCache 장애가 발생한 기본 복제본의 AZ에서 읽기 전용 복제본을 가동합니다.

  5. 새 노드가 새로 승격된 기본 노드와 동기화됩니다.

복제본 노드에 장애 조치하는 것은 일반적으로 새 기본 노드를 생성하고 프로비저닝하는 것보다 빠릅니다. 즉, 애플리케이션에서는 다중 AZ가 활성화되지 않은 경우보다 더 빠르게 기본 노드에 대한 쓰기를 재개할 수 있습니다.

자세한 설명은 다중 AZ로 ElastiCache for Redis의 가동 중지 시간 최소화 섹션을 참조하세요.

다중 AZ가 비활성화된 경우
  1. ElastiCache 기본 장애를 감지합니다.

  2. ElastiCache 기본 서버를 오프라인 상태로 전환합니다.

  3. ElastiCache 장애가 발생한 기본 노드를 대체하기 위해 새 기본 노드를 만들고 프로비저닝합니다.

  4. ElastiCache 새 기본 복제본을 기존 복제본 중 하나와 동기화합니다.

  5. 동기화가 완료되면 새 노드가 클러스터의 기본 노드로 작동합니다.

이 프로세스의 1단계에서 4단계까지는 애플리케이션에서는 기본 노드에 쓸 수 없습니다. 그러나 애플리케이션에서는 복제본 노드에서 계속 읽을 수 있습니다.

추가 보호를 위해 서로 다른 AZ(가용 영역)의 복제 그룹에서 노드를 시작하는 것이 좋습니다. 이렇게 할 경우 AZ 장애는 해당 AZ의 노드에만 영향을 주며 다른 노드에는 영향을 주지 않습니다.

자세한 설명은 고가용성을 위한 복제 그룹 사용 섹션을 참조하세요.

가용 영역 장애 완화

서버리스 캐시는 복제된 다중 AZ 아키텍처를 통해 가용 영역 장애를 자동으로 완화하므로 AZ 장애가 애플리케이션에 영향을 미치지 않도록 합니다.

자체 설계된 클러스터에서 가용 영역 장애로 인한 영향을 완화하려면 가능한 한 많은 가용 영역에 샤드별 노드를 배치합니다.

샤드에 보유한 노드의 수와 상관없이 동일한 가용 영역에 노드가 모두 배치된 경우, 해당 AZ에 치명적인 장애가 발생하면 모든 샤드 데이터가 손실됩니다. 그러나 여러 AZ에 노드를 배치할 경우 AZ에 장애가 발생하면 해당 AZ에 있는 노드만 손실됩니다.

읽기 작업이 이제 더 적은 수의 노드에서 공유되므로 노드가 손실될 때마다 성능 저하를 경험할 수 있습니다. 노드가 대체될 때까지 이 성능 저하가 계속됩니다.

Redis 노드의 가용 영역 지정에 대한 자세한 내용은 Redis(클러스터 모드 비활성화됨) 클러스터 생성(콘솔) 섹션을 참조하세요.

리전 및 가용 영역에 대한 자세한 내용은 리전 및 가용 영역 선택 섹션을 참조하세요.

추천

추가 구성 없이 내결함성이 자동으로 향상되므로 자체 설계된 클러스터에서 서버리스 캐시를 생성하는 것이 좋습니다. 하지만 자체 설계된 클러스터를 생성할 때 계획해야 할 장애의 유형에는 개별 노드 장애와 광범위한 가용 영역 장애라는 2가지 유형이 있습니다. 가장 좋은 장애 완화 계획은 두 유형의 장애를 모두 해결하는 것입니다.

노드 장애로 인한 영향 최소화

노드 장애의 영향을 최소화하려면 구현 시 각 샤드에서 여러 노드를 사용하고 여러 가용 영역에 노드를 분산하는 것이 좋습니다. 이 작업은 서버리스 캐시에서 자동으로 수행됩니다.

자체 설계된 클러스터의 경우 주 노드에 장애가 발생할 경우 복제본으로 자동 장애 ElastiCache 조치되도록 복제 그룹에서 다중 AZ를 활성화하는 것이 좋습니다.

가용 영역 장애의 영향 최소화

가용 영역 장애의 영향을 최소화하려면 가능한 한 여러 개의 서로 다른 가용 영역에서 노드를 시작하는 것이 좋습니다. AZ에 노드를 균등하게 분산하면, 드물지만 AZ 장애가 발생할 경우 영향을 최소화합니다. 이 작업은 서버리스 캐시에서 자동으로 수행됩니다.

기타 주의 사항

Redis를 실행할 경우, 위 사항 이외에 클러스터의 정기적 백업을 예약하는 것이 좋습니다. 백업(스냅샷)은 장애 또는 손상이 발생할 경우 캐시를 복원하는 데 사용할 수 있는 .rdb 파일을 생성합니다. 자세한 내용은 스냅샷 및 복원을(를) 참조하세요.