Redis에 적용할 수 있는
ElastiCache 복제에는 두 가지 유형이 있습니다
두 가지 다 알아두셔야 합니다
첫 번째는 클러스터 모드 비활성화입니다
이 경우 하나의 주요 노드가 있고
노드 복제본이 최대 다섯 개 있습니다
Redis를 위한 것입니다
여기 1개의 샤드가 있는데
이 안에 모든 데이터가 있습니다
한 개의 주요 캐시 노드가 있습니다
그리고 캐시 복제본을
5개까지 설정할 수 있습니다
0에서 5개의 복제본 노드입니다
핵심은 주요 노드와
일부 복제본이 있을 때
주요 노드가 실패하는 경우 복제본이
이를 대체할 수 있다는 것입니다
즉, 캐시 간 복제는 비동기적입니다
주요 노드는 읽기 및 쓰기 용도이며
다른 노드는 읽기 전용입니다
그래서 재해 복구 외에도 Redis의 ElastiCache에서
Read Replica를 활성화하여
읽기 기능을 확장할 수 있습니다
1개의 샤드가 있다는 것은
모든 노드가 모든 Redis 클러스터 데이터를
갖고 있다는 뜻입니다
노드 실패가 발생했을 때 데이터 손실을
막기 위한 것입니다
Multi-AZ도 활성화 할 수 있는데 이것은
Multi-AZ 장애 조치가 없을 경우를 대비해서
기본으로 활성화 되어 있습니다
다시 말하자면 이 기능은 Multi-AZ에 도움이 되고
ElastiCache 클러스터의 읽기 기능을 확장하는
데도 도움이 됩니다
클러스터 모드를 비활성화하면
두 종류의 스케일링이 있습니다
수평 스케일링은
읽기 복제본을 추가하거나 제거하여 작동합니다
읽기 복제본은 최대 5개 있습니다
다음은 수직 스케일링입니다
크거나 작은 노드 유형으로
확장하거나 축소할 수 있습니다
이 경우에는 배경에서 업그레이드될
기존 노드 그룹이 존재하고
새 노드 그룹이 생성됩니다
복제가 자동으로 발생합니다
다시 말하지만 배경에서 일어나는 일입니다
새 노드 그룹이 최신화되면
DNS가 업데이트되고 애플리케이션들은
새 노드 그룹을 사용하게 됩니다
그리고 두 번째 모드가 있는데
클러스터 모드가 활성화된 경우입니다
이 모드에서는 데이터가
여러 샤드에 걸쳐 분할됩니다
이것은 쓰기를 확장할 때 도움이 됩니다
두 번째를 보겠습니다
샤드 1과 샤드 2, 3, 샤드 N이 있습니다
중요한 것은 데이터가
부분적으로 샤드 1에, 부분적으로 샤드 2에
이런 식으로 샤드 N까지 올라가게 되는 것입니다
여러분의 모든 샤드에 걸쳐 분할됩니다
각 샤드는 클러스터 모드가 비활성화됐을 때와
똑같이 작동할 것입니다
하나의 주요 노드와 최대 5개의
복제본 노드를 가질 수 있다는 것입니다
데이터를 복제하고 모든 샤드에
복제본의 개수가
똑같이 설정됩니다
Multi-AZ 기능도 있는데 기본으로 작동합니다
가용영역 실패가 발생하면
주요 노드와 복제본 노드 간에
장애 조치가 이루어질 수 있습니다
클러스터당 최대 500개의 노드를 가질 수 있습니다
복제본을 설정하지 않으면 하나의 마스터와
500개의 샤드를 가지게 된다는 뜻입니다
하지만 복제를 설정한다면
예를 들어 마스터 하나와 복제본 하나를 원한다면
250개의 샤드를 가지게 됩니다
복제본 5개와 마스터 하나를 원한다면
최대 83개 샤드를 가지게 됩니다
핵심은 클러스터 모드를 활성화했을 때
데이터를 분할(sharding)하는 것이
중요하다는 것입니다
다시 말해, 쓰기를 스케일링할 필요가 있고
그러면 데이터가 분할되는데
즉, 데이터가 여러 샤드에 걸쳐 존재한다는 것입니다
이것이 ElastiCache에 대해
클러스터 모드를 활성화했을 때와
비활성화했을 때 사이의 주요 차이점입니다
클러스터 모드 활성화 상태에서는
Redis에 대한 자동 스케일링을 설정할 수 있습니다
클러스터 내의 샤드 수를
자동으로 늘리거나 줄일 수 있습니다
이것은 대상 추적과 예약 스케일링 정책을
모두 지원합니다
다시 말하지만 이것들이 작동하려면
클러스터 모드가 활성화되어야 합니다
우리가 추적할 지표가
예를 들어 CPU 사용이 있습니다
여기에 대상 추적 정책을 적용할 수 있습니다
대상 CPU 사용률이 60%를
유지하게 하는 것입니다
그렇다면 CloudWatch 알람을 발동해
이 알람이 클러스터의 샤드 수를 증가시키고
새로운 샤드들이
생성됩니다
물론 우리 애플리케이션에서도 이 샤드를
활용할 수 있어야 합니다
클러스터에 연결하려면
클러스터 구성 엔드포인트라는 것을
사용해야 합니다
클러스터에 완전히 연결할 수 있는 방법입니다
이 연결 엔드포인트들에 대해 얘기해 보겠습니다
독립 노드는 읽기와 쓰기 작업만을 위해 연결할 수 있으며
노드의 한 엔드포인트를 이용합니다
클러스터 모드 비활성화를 사용하면
하나의 주요 엔드포인트가 생깁니다
모든 쓰기 작업을 위한 것입니다
그리고 리더 엔드포인트는
모든 읽기 복제본의
읽기 작업을 위한 것입니다
마지막으로 노드 엔드포인트도 있습니다
읽기 작업을 위해 개별 노드에
접근 할 때에 사용합니다
클러스터 모드가 활성화되어 있다면 아주 간단합니다
구성 엔드포인트를 다시 기억하세요
클러스터 모드와 호환되는 모든
읽기, 쓰기 작업을 위한 것입니다
따라서 충분히 최신 버전의 클라이언트만 있다면
충분합니다
구성 엔드포인트를 활용하면
읽기, 쓰기에 문제가 없습니다
클러스터 모드 클러스터의 장점입니다
마지막으로 원한다면 개별 노드에 접근할 수 있습니다
노드 엔드포인트를 이용하면 됩니다
하지만 이것은 읽기 작업만 가능합니다
이번 강의는 여기까지입니다
마음에 드셨길 바랍니다 다음 강의에서 뵙겠습니다