시작하기 리소스 센터 / 10분 자습서 / ...
확장성 및 고가용성을 위해 Redis 클러스터 설정
Amazon ElastiCache for Redis 클러스터 모드 설정, 구성, 보안 및 프로비저닝
이 자습서에서는 ElastiCache for Redis에서 Redis 클러스터를 생성 및 구성하는 방법에 대해 알아봅니다. 클러스터 모드를 활성화하면 Redis 클러스터의 확장성과 가용성이 높아집니다. 처음에는 작은 클러스터를 생성하고 애플리케이션의 규모가 커지면 Redis 데이터를 쉽게 확장할 수 있습니다. 그리고 여러 가용 영역에서 복제본을 설정하면 읽기 용량도 늘릴 수 있습니다. 이 자습서의 작업을 진행하면 Redis 클러스터 배포를 위한 몇 가지 모범 사례도 파악할 수 있습니다.
클러스터 모드 기능을 지원하는 매우 다양한 Redis 클라이언트를 활용할 수 있습니다. 따라서 클라이언트가 로컬 캐시에서 해시 슬롯 위치를 추적할 수 있기 때문에 샤딩 데이터를 매우 쉽게 안정적으로 사용할 수 있습니다. 그러므로 전체 시스템의 성능도 개선됩니다.
이 자습서에서 생성하는 ElastiCache 노드에는 프리 티어가 적용됩니다.
요구 사항
이 자습서를 어느 정도 진행하고 나면 Redis 클러스터의 몇 가지 기능을 직접 사용해 보기 위해 Redis 클러스터에 연결해야 합니다. 따라서 Redis 클라이언트가 설치된 EC2 인스턴스 액세스 권한이 필요합니다. Redis 클라이언트가 설치된 EC2 인스턴스가 이미 있으면 1단계로 건너뛰어도 됩니다. 그렇지 않은 경우에는 Amazon EC2 인스턴스에 연결한 후 아래 지침에 따라 Redis 클라이언트를 설치합니다.
C 컴파일러를 사용할 수 없으면 다음 명령을 실행하여 컴파일러를 설치합니다.
$ sudo yum install gcc
Redis 클라이언트를 다운로드하여 컴파일합니다.
$ curl -O http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean # Ubuntu systems only
$ make
이제 자습서를 시작할 수 있는 모든 준비가 끝났습니다.
자습서 소개 | |
---|---|
시간 | 10~20분 |
요금 | 프리 티어 적격 |
사용 사례 | 확장, 고가용성, 실시간 애플리케이션 |
제품 | AWS ElastiCache for Redis, AWS 프리 티어 |
대상 | 개발자 |
레벨 | 초보자 |
최종 업데이트 날짜 | 2019년 6월 5일 |
1단계: ElastiCache 대시보드 열기
ElastiCache 대시보드를 연 후 다음 단계를 수행합니다.
3단계: Redis 설정 구성
3.2 - 노드 유형을 cache.t2.micro로 변경합니다. 이 자습서에서는 이 노드 유형을 사용할 수 있지만, 프로덕션 클러스터의 경우에는 노드의 크기가 워크로드에 따라 다르며 m5 또는 r5 인스턴스 패밀리로 시작해야 할 수 있습니다.
3.4 - [샤드당 복제본]에서 2를 선택합니다. 그러면 각 마스터 노드의 복제본 수가 2개로 설정됩니다. 장애가 발생하면 자동 장애 조치가 트리거되며 복제본 중 하나가 마스터 노드의 역할을 대신합니다.
3.5 - 서브넷 그룹을 선택합니다. 서브넷 그룹에 대한 자세한 내용은 설명서를 참조하세요.
6단계: 클러스터에 데이터 가져오기
이 예제에서는 시드 RDB 파일을 로드하지 않으므로 이 구성 단계를 모두 건너뛸 수 있습니다. 하지만 원하는 경우에는 이 옵션을 사용할 수도 있습니다.
9단계: 검토 및 생성
양식의 모든 필드를 빠르게 검토한 후 [생성]을 클릭하면 됩니다.
9.1 - [생성]을 클릭합니다.
Redis 클러스터가 초기화되며, “사용 상태”가 되면 10단계를 계속 진행할 수 있습니다.
Amazon CLI를 사용하려는 경우 아래 명령을 실행하면 Redis 클러스터가 한 번에 생성됩니다.
Amazon CLI를 사용하려는 경우 아래 명령을 실행하면 Redis 클러스터가 한 번에 생성됩니다.
$ aws elasticache create-replication-group \
--replication-group-id elc-tutorial \
--replication-group-description "Tutorial example" \
--num-node-groups 3 \
--cache-node-type cache.t2.micro \
--cache-parameter-group default.redis5.0.cluster.on \
--engine redis \
--engine-version 5.0.3 \
--cache-subnet-group-name sn-value \
--security-group-ids sg-value \
--node-group-configuration \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1b','us-east-1c',Slots=0-5460" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1b',ReplicaAvailabilityZones='us-east-1c','us-east-1a',Slots=5461-10921" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1a','us-east-1b',Slots=10922-16383"
--security-group-ids의 인수로는 sg-value 값을 사용할 보안 그룹 ID로 바꿔야 합니다.
--cache-subnet-group-name의 인수로는 sn-value를 서브넷 그룹 이름으로 바꿉니다. 서브넷 그룹을 생성해야 하는 경우 다음 명령을 사용합니다.
$ aws elasticache create-cache-subnet-group \
--cache-subnet-group-name elc-tutorial-subnet \
--cache-subnet-group-description "Tutorial Subnet Group" \
--subnet-ids sn-ids
-sn-ids의 값은 서브넷 ID 목록이어야 합니다.
Amazon API를 사용하려는 경우 아래 요청을 실행하면 Redis 클러스터가 생성됩니다.
https://elasticache.us-east-1.amazonaws.com/
?Action=CreateReplicationGroup
&CacheParameterGroup=default.redis5.0.cluster.on
&Engine=redis
&EngineVersion=5.0.3
&ReplicationGroupDescription=Tutorial%20example
&ReplicationGroupId=elc-tutorial
&NumNodeGroups=3
&PrimaryClusterId=elc-primary
&ReplicasPerNodeGroup=2
&Version=<version>
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=<timestamp>
&X-Amz-Credential=<credential>
이전 요청에서는 Version, Timestamp 및 X-Amz-Credential의 값을 제공해야 합니다.
11단계: 장애 조치 트리거
이제 정상 작동하는 Redis 클러스터가 생성되었습니다. 클러스터 모드의 기능 중 하나는 노드 다운 시 클러스터가 자체적으로 복구될 수 있다는 것입니다. 이 기능을 테스트하려는 경우 수동 장애 조치를 트리거하면 됩니다. 그러면 마스터 역할을 대신할 읽기 전용 복제본이 선택됩니다. 장애 조치가 실행되고 나면 새 마스터에 연결할 수 있습니다. 그와 동시에 새 복제본이 자동으로 추가되므로 클러스터는 마스터 하나와 복제본 두 개가 계속 포함된 상태로 유지됩니다.
10단계의 엔드포인트를 사용하여 노드의 역할을 확인합니다.
11.1 - 엔드포인트의 역할을 확인합니다.
endpoint:6379> ROLE
1) "master"
...
이제 마스터에 연결하려고 합니다. 마스터에 연결되지 않았다면 다른 엔드포인트를 사용하여 연결해 보세요. 연결은 세 번까지 시도할 수 있습니다.
마스터 노드를 찾은 후에는 다음 작업을 수행합니다.
12단계: 클러스터 삭제
이 실험의 마지막 단계로, 더 이상 필요하지 않게 된 Redis 클러스터를 삭제하는 방법에 대해 알아보겠습니다.
Redis 클러스터를 삭제하려면 ElastiCache 대시보드로 이동한 후 다음 지침을 따릅니다.
12.1 - 왼쪽 창에서 [Redis]를 선택합니다.
그러면 Redis 클러스터의 전체 목록이 표시됩니다.
축하합니다!
클러스터 모드가 활성화된 Redis 클러스터를 생성했습니다. 노드는 여러 가용 영역에 분산되었으며 자동 장애 조치가 가능하도록 구성되었습니다. 그리고 Redis 클러스터 배포를 위한 몇 가지 모범 사례도 알아보았습니다.
권장되는 다음 단계
자세히 알아보기
Redis 클러스터에 대해 자세히 알아보려면 Redis Cluster 101 블로그 게시물을 참조하세요. 더 많은 시작하기 콘텐츠, 개발자 안내서 및 사용 사례를 제공하는 기술 블로그를 확인하려면 리소스 페이지를 방문하세요.
올바른 노드 크기 선택
Redis 노드의 크기를 결정하는 것이 어려워 보일 수도 있지만, Amazon에서 제작한 지침을 따르면 요구에 따라 적절한 노드 크기를 선택할 수 있습니다.
캐싱 전략
마지막으로 성능과 안정성을 높이기 위한 캐싱 전략 및 모범 사례를 자세히 확인할 수 있습니다.