작성
·
159
답변 1
0
안녕하세요.
문의 하신 문제를 검토해 보니 정답이 (B) Redis 용 Amazon ElastiCache 사용이 맞습니다.
RDS의 경우 읽기 전용 복제본은 읽기 트래픽을 분산해주는 용도이고 DB의 읽기 수를 줄여주지는 않습니다. 또한 고가용성 보장을 위해서는 다중 AZ 배포를 해야 합니다.
질문의 고가용성 보장 및 데이터베이스 읽기 수를 줄이는 솔루션을 찾는데 캐시서버를 통해 읽기 수를 줄일 수 있습니다. 또한 AWS ElastiCache Redis는 다중 AZ에 배포되는 클러스터 구조이기에 고가용성도 보장이 됩니다. 그리고 Memcached는 고가용성을 지원하지 않습니다.
문제 풀이가 잘못된 부분에 대해 죄송한 말씀 드리며 강의 내용은 수정해 놓도록 하겠습니다.
질문 감사 드립니다.
안녕하세요.
질문은 데이터베이스 읽기수를 줄이는 솔루션을 찾고 있습니다.
읽기 성능을 향상 시키는 것은 Red Replica(읽기 전용 복제본)을 추가하는 것입니다. 읽기 전용 복제본을 추가해도 여전히 RDS 서비스에서 데이터를 읽게 됩니다.
읽기수를 줄이려면 RDS에서 데이터를 직접 읽지 않으면 되니 ElastiCache에서 데이터를 읽어오면 됩니다.
따라서 기존 RDS + Redis용 ElasiCache를 구축하는 것이 최적의 솔루션이라 생각합니다.
고가용성에 대한 부분은 질문에 있는 EC2, RDS 를 의미할 수도 있고 추가되는 ElasicCache를 의미할 수도 있을 것 같습니다만 보기에 ElaticCache가 2가지 선택지가 있기에 고가용성을 지원하는 Redis를 선택하는 질문으로 해석됩니다.
RDS의 고가용성은 읽기전용 복제본이 아닌 다중 AZ배포를 통해 Standby Replica를 생성하여 원본DB가 문제 발생시 Standby Replica로 자동 장애조치를 수행해야합니다.
읽기전용 복제본은 자동장애조치를 수행이 불가능하고 별도의 독립적인 새로운 DB로 승격만 가능합니다.
감사합니다.
문제 다시 읽어보니, 이미 '여러' RDS 데이터베이스 라고 언급을 했었군요..
나아가 '읽기 전용 복제본을 추가해도 여전히 RDS 서비스에서 데이터를 읽게 됩니다' 라는 답변과 ElasticCache가 데이터베이스의 데이터를 캐싱해둬서 캐싱한 곳에 읽기 처리가 실행되니 저절로 DB에 대한 읽기 요청이 줄어들고, 처음에 언급한 '여러' DB가 구성되어있으니 주 DB가 다운되면, 저절로 여러 대기 DB들 중 하나를 주로 승격시킴으로써 캐싱 기능을 유지시키는 가용성 측면도 있으니 ElasticCache 서비스가 해당 문제의 적절한 솔루션이겠군요.
해당 문제를 캐치해주신 질문자님과 자세한 답변을 달아주신 코드바나나님 감사드립니다.
Amazon ElastiCache는 읽기 성능 향상이 주 목적인 기능아닌가요
나아가 해당 기능은 자주 엑세스되는 데이터를 캐싱해서 이를 빠르게 사용자측에 전달하는 역할만할텐데,
기존 데이터베이스가 고장나면, ElastiCache가 이에 대한 재해복구솔루션이 될 수 없을텐데요.
반면, Amazon RDS 읽기 전용 복제본은 읽기 트래픽을 저 복제본으로 분리시켜주고, 나중에 기존 DB 고장시 해당 복제본을 마스터 승격시키면 되잖아요