기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon ElastiCache의 복원성
AWS 글로벌 인프라는 AWS 리전 및 가용 영역을 중심으로 구축됩니다. AWS 리전은 물리적으로 분리되고 격리된 여러 가용 영역을 제공하며,이 가용 영역은 지연 시간이 짧고 처리량이 높으며 중복성이 높은 네트워킹과 연결됩니다. 가용 영역을 사용하면 중단 없이 가용 영역 간에 자동으로 장애 조치가 이루어지는 애플리케이션 및 데이터베이스를 설계하고 운영할 수 있습니다. 가용 영역은 기존의 단일 또는 복수 데이터 센터 인프라보다 가용성, 내결함성, 확장성이 뛰어납니다.
AWS 리전 및 가용 영역에 대한 자세한 내용은 AWS 글로벌 인프라를
AWS 글로벌 인프라 외에도 Amazon ElastiCache는 데이터 복원력 및 백업 요구 사항을 지원하는 몇 가지 기능을 제공합니다.
주제
장애 완화
Amazon ElastiCache 구현을 계획할 때는 장애가 애플리케이션 및 데이터에 미치는 영향을 최소화하도록 계획해야 합니다. 이 섹션의 항목은 애플리케이션 및 데이터를 장애로부터 보호하기 위해 취할 수 있는 접근 방식을 다룹니다.
Memcached 실행 시 장애 완화
Memcached 엔진을 실행할 때 장애의 영향을 최소화하기 위한 다음과 같은 옵션이 있습니다. 장애 완화 계획에서 해결할 장애 유형에는 노드 장애와 가용 영역 장애의 두 유형이 있습니다.
노드 장애 완화
서버리스 캐시는 복제된 다중 AZ 아키텍처를 통해 노드 장애를 자동으로 완화하므로 노드 장애가 애플리케이션에 영향을 미치지 않도록 합니다. 자체 설계된 클러스터에서 노드 장애로 인한 영향을 완화하려면 캐시 데이터를 더 많은 노드로 분산합니다. 자체 설계된 클러스터는 복제를 지원하지 않으므로 노드 장애가 발생하면 항상 클러스터에서 일부 데이터가 손실됩니다.
Memcached 클러스터를 생성할 때 1~60개의 노드를 포함하여 생성하거나, 특별한 요청이 있는 경우 더 많은 노드를 포함하여 생성할 수 있습니다. 더 많은 노드로 데이터를 분할하면 노드에 장애가 발생할 경우 데이터 손실이 줄어듭니다. 예를 들어, 10개의 노드에 데이터를 분할하면 단일 노드는 캐시된 데이터의 약 10%를 저장합니다. 이 경우, 노드 장애로 인해 대체 노드가 생성되고 프로비저닝될 때 대체해야 하는 캐시의 약 10%가 손실됩니다. 동일한 데이터가 3개의 대형 노드에 캐시된 경우 노드의 장애가 발생하면 캐시된 데이터의 약 33%가 손실됩니다.
Memcached 클러스터에서 노드 수를 지정하는 방법에 대한 자세한 내용은 Memcached 클러스터 생성(콘솔) 섹션을 참조하세요.
가용 영역 장애 완화
서버리스 캐시는 복제된 다중 AZ 아키텍처를 통해 가용 영역 장애를 자동으로 완화하므로 AZ 장애가 애플리케이션에 영향을 미치지 않도록 합니다.
자체 설계된 클러스터에서 가용 영역 장애로 인한 영향을 완화하려면 가능한 한 많은 가용 영역에 노드를 배치합니다. 드물지만 AZ 장애가 발생할 경우 해당 AZ에 캐시된 데이터가 손실되며 다른 AZ에 캐시된 데이터는 손실되지 않습니다.
그러면 여러 개의 노드가 필요한 이유는 무엇입니까?
내 리전에 가용 영역이 3개만 있는 경우 AZ 장애 시 내 데이터의 약 1/3이 손실되므로 3개가 넘는 노드가 필요한 이유는 무엇입니까?
매우 좋은 질문입니다. 노드와 가용 영역이라는 두 개의 구분된 장애 유형을 완화하려고 시도하고 있습니다. 맞습니다. 가용 영역에 데이터가 분산되어 있으며 영역 중 하나에 장애가 발생하면 보유한 노드 수와 상관없이 해당 AZ에 캐시된 데이터만 손실됩니다. 그러나 노드 장애 시 더 많은 노드가 있으면 손실된 데이터의 비율이 감소됩니다.
클러스터에 포함할 노드 수를 결정하기 위한 "마법 공식"은 없습니다. 데이터 손실의 영향과 장애 가능성 및 비용을 비교하여 자체적인 결론을 내려야 합니다.
Memcached 클러스터에서 노드 수를 지정하는 방법에 대한 자세한 내용은 Memcached 클러스터 생성(콘솔) 섹션을 참조하세요.
리전 및 가용 영역에 대한 자세한 내용은 ElastiCache에 대한 리전 및 가용 영역 선택 섹션을 참조하세요.
Valkey 또는 Redis OSS 실행 시 장애 완화
Valkey 또는 Redis OSS 엔진을 실행할 때 노드 또는 가용 영역 장애의 영향을 최소화하기 위한 다음과 같은 옵션이 있습니다.
노드 장애 완화
서버리스 캐시는 다중 AZ 아키텍처를 통해 노드 장애를 자동으로 완화하므로 노드 장애가 애플리케이션에 영향을 미치지 않도록 합니다. 개별 노드의 장애를 완화하려면 자체 설계된 클러스터를 적절하게 구성해야 합니다.
자체 설계된 클러스터에서 Valkey 또는 Redis OSS 노드 장애로 인한 영향을 완화할 수 있도록 다음과 같은 옵션이 마련되어 있습니다.
장애 완화: Valkey 또는 Redis OSS 복제 그룹
Valkey 또는 Redis OSS 복제 그룹은 애플리케이션이 읽고 쓸 수 있는 단일 프라이머리 노드와 1~5개의 읽기 전용 복제본 노드로 구성되어 있습니다. 기본 노드에 데이터가 작성될 때마다 읽기 전용 복제본 노드에서도 비동기식으로 업데이트됩니다.
읽기 전용 복제본 장애의 경우
ElastiCache는 장애가 있는 읽기 전용 복제본을 감지합니다.
ElastiCache는 장애가 있는 노드를 오프라인 상태로 전환합니다.
ElastiCache는 동일한 AZ에서 대체 노드를 시작하고 프로비저닝합니다.
새 노드가 기본 노드와 동기화됩니다.
이 기간 동안 애플리케이션에서는 다른 노드를 사용하여 계속 읽고 쓸 수 있습니다.
Valkey 또는 Redis OSS 다중 AZ
Valkey 또는 Redis OSS 복제 그룹에서 다중 AZ를 활성화할 수 있습니다. 다중 AZ를 활성화했는지 여부와 상관없이 장애가 있는 기본 노드가 자동으로 감지되고 대체됩니다. 다중 AZ가 활성화되었는지 여부에 따라 이러한 작동 방식이 달라집니다.
다중 AZ가 활성화된 경우
ElastiCache가 기본 노드 장애를 감지합니다.
ElastiCache가 복제 지연 시간이 가장 짧은 읽기 전용 복제본 노드를 기본 노드로 승격시킵니다.
다른 복제본이 새 기본 노드와 동기화됩니다.
ElastiCache가 장애가 있는 기본 노드의 AZ에서 읽기 전용 복제본을 실행합니다.
새 노드가 새로 승격된 기본 노드와 동기화됩니다.
복제본 노드에 장애 조치하는 것은 일반적으로 새 기본 노드를 생성하고 프로비저닝하는 것보다 빠릅니다. 즉, 애플리케이션에서는 다중 AZ가 활성화되지 않은 경우보다 더 빠르게 기본 노드에 대한 쓰기를 재개할 수 있습니다.
자세한 내용은 Valkey 및 Redis OSS와 함께 다중 AZ를 사용하여 ElastiCache의 가동 중지 시간 최소화 단원을 참조하십시오.
다중 AZ가 비활성화된 경우
ElastiCache가 기본 장애를 감지합니다.
ElastiCache가 기본 오프라인 상태로 전환합니다.
ElastiCache가 새 기본 노드를 생성하고 프로비저닝하여 장애가 있는 기본 노드를 대체합니다.
ElastiCache가 새 기본 노드를 기존 복제본 중 하나와 동기화합니다.
동기화가 완료되면 새 노드가 클러스터의 기본 노드로 작동합니다.
이 프로세스의 1단계에서 4단계까지는 애플리케이션에서는 기본 노드에 쓸 수 없습니다. 그러나 애플리케이션에서는 복제본 노드에서 계속 읽을 수 있습니다.
추가 보호를 위해 서로 다른 AZ(가용 영역)의 복제 그룹에서 노드를 시작하는 것이 좋습니다. 이렇게 할 경우 AZ 장애는 해당 AZ의 노드에만 영향을 주며 다른 노드에는 영향을 주지 않습니다.
자세한 내용은 고가용성을 위한 복제 그룹 사용 단원을 참조하십시오.
가용 영역 장애 완화
서버리스 캐시는 복제된 다중 AZ 아키텍처를 통해 가용 영역 장애를 자동으로 완화하므로 AZ 장애가 애플리케이션에 영향을 미치지 않도록 합니다.
자체 설계된 클러스터에서 가용 영역 장애로 인한 영향을 완화하려면 가능한 한 많은 가용 영역에 샤드별 노드를 배치합니다.
샤드에 보유한 노드의 수와 상관없이 동일한 가용 영역에 노드가 모두 배치된 경우, 해당 AZ에 치명적인 장애가 발생하면 모든 샤드 데이터가 손실됩니다. 그러나 여러 AZ에 노드를 배치할 경우 AZ에 장애가 발생하면 해당 AZ에 있는 노드만 손실됩니다.
읽기 작업이 이제 더 적은 수의 노드에서 공유되므로 노드가 손실될 때마다 성능 저하를 경험할 수 있습니다. 노드가 대체될 때까지 이 성능 저하가 계속됩니다.
Valkey 또는 Redis OSS 노드의 가용 영역 지정에 대한 자세한 내용은 Valkey(클러스터 모드 비활성화됨) 클러스터 생성(콘솔) 섹션을 참조하세요.
리전 및 가용 영역에 대한 자세한 내용은 ElastiCache에 대한 리전 및 가용 영역 선택 섹션을 참조하세요.
추천
추가 구성 없이 내결함성이 자동으로 향상되므로 자체 설계된 클러스터에서 서버리스 캐시를 생성하는 것이 좋습니다. 하지만 자체 설계된 클러스터를 생성할 때 계획해야 할 장애의 유형에는 개별 노드 장애와 광범위한 가용 영역 장애라는 2가지 유형이 있습니다. 가장 좋은 장애 완화 계획은 두 유형의 장애를 모두 해결하는 것입니다.
노드 장애로 인한 영향 최소화
Valkey 또는 Redis OSS를 사용할 때 노드 장애의 영향을 최소화하려면 구현 시 각 샤드에서 여러 노드를 사용하고 여러 가용 영역에 노드를 분산하는 것이 좋습니다. 이 작업은 서버리스 캐시에서 자동으로 수행됩니다.
Valkey 또는 Redis OSS의 자체 설계된 클러스터의 경우 프라이머리 노드에 장애가 발생하면 ElastiCache가 복제본에 자동으로 장애 조치하도록 복제 그룹에서 다중 AZ를 활성화하는 것이 좋습니다.
Memcached를 실행하고 노드에 데이터를 분할할 때 더 많은 노드를 사용할수록 노드에 장애가 발생할 때 데이터 손실이 줄어듭니다.
가용 영역 장애의 영향 최소화
가용 영역 장애의 영향을 최소화하려면 가능한 한 여러 개의 서로 다른 가용 영역에서 노드를 시작하는 것이 좋습니다. AZ에 노드를 균등하게 분산하면, 드물지만 AZ 장애가 발생할 경우 영향을 최소화합니다. 이 작업은 서버리스 캐시에서 자동으로 수행됩니다.
기타 주의 사항
Valkey 또는 Redis OSS를 실행할 경우, 위 사항 이외에 클러스터의 정기적 백업을 예약하는 것이 좋습니다. 백업(스냅샷)은 장애 또는 손상이 발생할 경우 캐시를 복원하는 데 사용할 수 있는 .rdb 파일을 생성합니다. 자세한 내용은 스냅샷 및 복원 단원을 참조하십시오.