장애 완화 - Amazon ElastiCache

장애 완화

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

Memcached 실행 시 장애 완화

Memcached 엔진을 실행할 때 장애의 영향을 최소화하기 위한 다음과 같은 옵션이 있습니다. 장애 완화 계획에서 해결할 장애 유형에는 노드 장애와 가용 영역 장애의 두 유형이 있습니다.

노드 장애 완화

노드 장애의 영향을 완화하려면 캐시된 데이터를 더 많은 노드로 분산하세요. Memcached에서는 복제를 지원하지 않으므로 노드 장애가 발생하면 항상 클러스터에서 일부 데이터가 손실됩니다.

Memcached 클러스터를 생성할 때 1~40개의 노드를 포함하여 생성하거나, 특별한 요청이 있는 경우 더 많은 노드를 포함하여 생성할 수 있습니다. 더 많은 노드로 데이터를 분할하면 노드에 장애가 발생할 경우 데이터 손실이 줄어듭니다. 예를 들어, 10개의 노드에 데이터를 분할하면 단일 노드는 캐시된 데이터의 약 10%를 저장합니다. 이 경우, 노드 장애로 인해 대체 노드가 생성되고 프로비저닝될 때 대체해야 하는 캐시의 약 10%가 손실됩니다. 동일한 데이터가 3개의 대형 노드에 캐시된 경우 노드의 장애가 발생하면 캐시된 데이터의 약 33%가 손실됩니다.

Memcached 클러스터에 40개 이상의 노드가 필요하거나 AWS 리전에 총 300개 이상의 노드가 필요한 경우 https://aws.amazon.com/contact-us/elasticache-node-limit-request/에서 ElastiCache 한도 증가 요청 양식을 작성하세요.

Memcached 클러스터에서 노드 수를 지정하는 방법에 대한 자세한 내용은 Memcached 클러스터 생성(콘솔) 섹션을 참조하세요.

가용 영역 장애 완화

가용 영역 장애의 영향을 완화하려면 가능한 한 많은 가용 영역에 노드를 배치합니다. 드물지만 AZ 장애가 발생할 경우 해당 AZ에 캐시된 데이터가 손실되며 다른 AZ에 캐시된 데이터는 손실되지 않습니다.

그러면 여러 개의 노드가 필요한 이유는 무엇입니까?

내 리전에 가용 영역이 3개만 있는 경우 AZ 장애 시 내 데이터의 약 1/3이 손실되므로 3개가 넘는 노드가 필요한 이유는 무엇입니까?

매우 좋은 질문입니다. 노드와 가용 영역이라는 두 개의 구분된 장애 유형을 완화하려고 시도하고 있습니다. 맞습니다. 가용 영역에 데이터가 분산되어 있으며 영역 중 하나에 장애가 발생하면 보유한 노드 수와 상관없이 해당 AZ에 캐시된 데이터만 손실됩니다. 그러나 노드 장애 시 더 많은 노드가 있으면 손실된 데이터의 비율이 감소됩니다.

클러스터에 포함할 노드 수를 결정하기 위한 "마법 공식"은 없습니다. 데이터 손실의 영향과 장애 가능성 및 비용을 비교하여 자체적인 결론을 내려야 합니다.

Memcached 클러스터에서 노드 수를 지정하는 방법에 대한 자세한 내용은 Memcached 클러스터 생성(콘솔) 섹션을 참조하세요.

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

권장 사항

계획해야 할 장애의 유형에는 개별 노드 장애와 광범위한 가용 영역 장애의 두 유형이 있습니다. 가장 좋은 장애 완화 계획은 두 유형의 장애를 모두 해결하는 것입니다.

장애의 영향 최소화

Memcached를 실행하고 노드에 데이터를 분할할 때 더 많은 노드를 사용할수록 노드에 장애가 발생할 때 데이터 손실이 줄어듭니다.

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

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