확장 가능한 분산 인 메모리 캐시를 제공하는 ElastiCache

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

ElastiCache Redis 클러스터 Read Replica 생성하기

Redis 클러스터의 Read Replica를 생성하여 읽기 성능을 높이고, 장애에 자동으로 대처하는 Failover 기능을 사용할 수 있습니다. 서비스에서 읽기 위주의 작업이 많을 경우 Read Replica를 여러 개(최대 5개) 만들어 부하를 분산시킬 수 있습니다. 즉 쓰기 작업은 마스터 캐시 노드에 하고 읽기 작업은 Read Replica인 슬레이브 캐시 노드에서 실시한다면 마스터 캐시 노드의 부하를 줄일 수 있습니다.

마스터 캐시 노드에 쓰기를 하면 자동으로 슬레이브 캐시 노드로 데이터가 복제됩니다. 단 쓰기 작업을 실시한 즉시 복제되는 것은 아니며 약간의 시간차가 있습니다.

Redis 클러스터와 캐시 노드
2014년 8월 기준으로 Redis 클러스터는 캐시 노드를 1개만 가지고 있고, 더 추가할 수 없습니다. 따라서 마스터 클러스터와 마스터 캐시 노드는 사실상 같은 의미입니다.

ElastiCache 클러스터(exampleredis)의 Read Replica를 생성해보겠습니다.

ElastiCache Replication Group 목록(Amazon ElastiCache → Replication Groups)으로 이동하여 위쪽 Create Replication Group 버튼을 클릭합니다.


그림 15-50 ElastiCache Replication Group 생성

Replication Group을 생성합니다(그림 15-51).

  • Primary Cluster ID: 마스터 Redis 클러스터입니다. 앞에서 생성한 exampleredis를 선택합니다.
  • Replication Group ID: Replication Group의 이름입니다. examplereplication을 입력합니다.
  • Replication Group Description: Replication Group의 설명입니다. examplereplication을 입력합니다.

설정이 완료되었으면 Create 버튼을 클릭합니다.


그림 15-51 ElastiCache Replication Group 생성

ElastiCache Replication Group 목록에 Replication Group이 생성되었습니다. 완전히 생성되기까지 10초 정도 소요됩니다. 이 Replication Group(examplereplication)을 선택하고 위쪽 Add Read Replica 버튼을 클릭합니다.


그림 15-52 ElastiCache Replication Group에 Read Replica 추가

Replication Group에 Read Replica를 추가합니다(그림 15-53).

  • Replication Group: Read Replica를 추가할 Replication Group을 설정합니다. examplereplication이 선택되었는지 확인합니다.
  • Read Replica ID: Read Replica의 이름입니다. exampleredis-read-1을 입력합니다.
  • Availability Zone: Availability Zone: Read Replica가 생성될 가용 영역(Availability Zone)입 니다. 추후 각자 상황에 맞게 리전에 속한 AZ를 선택하면 됩니다. ap-northeast-1a를 선택합니다.

설정이 완료되었으면 Add 버튼을 클릭합니다.


그림 15-53 ElastiCache Replication Group에 Read Replica 추가

Replication Group 목록에서 examplereplication을 선택하면 아래 세부 내용에 Primary 엔드포인트 주소가 표시됩니다.


그림 15-54 ElastiCache Replication Group Primary Endpoint 확인

그림 15-54에서 보면 exampleredis가 마스터Primary이고, exampleredis-read-1이 슬레이브Read Replica 입니다. 이후 마스터에 장애가 발생하면 Failover 기능이 작동하여 슬레이브인 exampleredis-read-1가 마스터로 승격됩니다.

평소에는 Primary 엔드포인트 주소가 마스터인 exampleredis를 가리키고 있습니다. 그래서 쓰기 작업은 Primary 엔드포인트 주소에 접속하여 실시하면 됩니다. Failover 기능이 동작하면 자동으로 Primary 엔드포인트 주소는 슬래이브인 exampleredis-read-1을 가리키게 되고 쓰기 작업을 수행합니다. 따라서 Failover를 위한 작업을 따로 하지 않아도 됩니다.

Demote, Promote
Demote 기능은 마스터 Redis 클러스터를 다른 마스터 Redis 클러스터의 Read Replica로 만드는 기능입니다. Apply Immediately를 Yes로 설정하면 곧 바로 Read Replica로 만들며 No로 설정하면 Maintenance Window에 설정된 시간에 실행됩니다.


그림 15-55 ElastiCache Demote Primary Cluster

Promote 기능은 Read Replica Redis 클러스터를 새로운 마스터 Redis 클러스터로 승격promote시키는 기능입니다. 이 기능을 사용하면 이전 마스터 Redis 클러스터와의 복제 관계는 끊어지고, 별개의 Redis 클러스터가 됩니다. Apply Immediately를 Yes로 설정하면 곧 바로 마스터 Redis 클러스터로 만들며 No로 설정하면 Maintenance Window에 설정된 시간에 실행됩니다.


그림 15-56 ElastiCache Promote Read Replica

Promote 기능은 서비스되고 있는 캐시 클러스터와 동일한 데이터를 가진 개발 및 테스트용 캐시 클러스터를 생성하고 싶을 때, 지역이나 언어별로 서비스를 분리할 때 활용할 수 있습니다.

ElastiCache 캐시 클러스터 목록(Amazon ElastiCache → Cache Clusters)으로 이동합니다. 캐시 클러스터 목록에서 방금 추가한 Redis 클러스터 Read Replica가 생성되고 있습니다. 완전히 생성되기까지 10분 정도 소요됩니다.


그림 15-57 ElastiCache Redis Read Replica 생성 중

Redis 클러스터 Read Replica(exampleredis-read-1)가 완전히 생성된 뒤 ▶를 클릭하여 세부 정보를 확인합니다. Replication Group이 examplereplication로 설정되어 있습니다. 그리고 캐시 클러스터 목록에서 exampleredis와 exampleredis-read-1이 같은 Replication Group(examplereplication)으로 설정되어 있습니다.

exampleredis-read-1의 1 node 링크를 클릭하면 exampleredis-read-1의 캐시 노드를 볼 수 있고, 캐시 노드의 엔드포인트 주소가 표시됩니다.


그림 15-58 ElastiCache Redis 클러스터 Replication Group 정보 확인

Read Replica의 Endpoint에 접속하면 마스터 Redis 클러스터와 동일한 데이터를 사용할 수 있습니다. 단 읽기 전용이므로 Redis의 쓰기 관련 명령어는 사용할 수 없습니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.