Elastic Scale

elastic scale

탄력적인 확장으로 트래픽이 급증하는 기간에도 안심

탄력적 확장: 클라우드의 이점 실현

클라우드의 이점 중 하나는 필요에 따라 리소스를 가동하거나 종료할 수 있다는 것으로, 사용자는 이처럼 자유롭고 탄력적인 확장을 통해 필요한 만큼 사용하고 비용을 지불할 수 있습니다. 지금까지 진정한 클라우드 확장은 애플리케이션 및 웹 서버에서만 이루어졌습니다. 애플리케이션에서 정형화된 데이터 전반에 대한 ACID 트랜잭션을 필요로 하지 않을 경우, 애플리케이션 스택의 세 번째 데이터 계층은 Redis 또는 Hadoop과 같이 스케일아웃 가능한 비관계형 데이터 저장소를 활용할 수 있습니다. 이는 대규모 INSERT 워크로드 및 단일 테이블 트랜잭션에 매우 적합합니다. 그러나 정형화된 데이터를 포함하여 데이터들 간 종속성이 발생하는 순간, 데이터 저장소는 제 성능을 발휘하지 못하게 됩니다. 이러한 경우 탄력적 확장이 필요합니다.

탄력적 확장을 지원하지 못하는 MySQL 샤딩

일반적으로 관계형 데이터베이스는 단일 쓰기 마스터(write-master)를 활용하는 대칭형 멀티프로세싱(symmetric multiprocessing, SMP)에 의존합니다. 쓰기 마스터의 용량이 초과되면 대개 개발자는 추가적인 쓰기 확장을 위해 샤딩(sharding)과 같이 복잡한 아키텍처 재구성 프로젝트에 매달리게 됩니다. 샤드 키를 선택하고 PK:shard 조회 테이블을 유지 관리하기는 쉽지만, 여러 샤드에 걸쳐 ACID를 보장하는 트랜잭션을 (재)생성하기란 만만치 않습니다. 그리고 이제는 애플리케이션에서 이 기능을 맡게 되면서 개발자에게는 아키텍처 관련 작업의 워크플로우가 끝없이 이어지게 됩니다. 샤드 전반에서 데이터의 균형을 유지하는 것이 일상화되면서, 샤드 간 일관성을 유지하는 백업이 사라지는 것과 같은 흥미로운 문제도 발생합니다. 그리고 용량 확보를 위한 스케일아웃은 꽤 번거로운 작업이고 확장 이전으로 돌아가기도 거의 불가능합니다. 즉, 탄력적인 확장이 아닙니다. 이러한 복잡성 및 오버헤드 때문에 샤딩은 항상 최후의 수단으로 사용됩니다.

애플리케이션 또는 데이터 아키텍처 재설계 없이 탄력적으로 확장

드롭인 방식으로 MySQL을 대체하여 클라우드 환경에서 선형 스케일아웃을 실현하는 ClustrixDB는 3개 노드 전반에서 자동으로 데이터를 복제하는 아키텍처의 형태로 기본 배포됩니다. 특허받은 Rebalancer 기술이 데이터를 노드 전반으로 분산하고 리밸런스하여, 구축된 환경의 수명 기간에 핫스팟이 생기는 것을 방지합니다. ClustrixDB는 모든 노드에서 자동으로 쿼리를 병렬화하고, 인스턴스 다운타임 또는 장애가 발생하더라도 자동으로 가용성을 유지할 수 있습니다. 무엇보다도 애플리케이션 변경이 필요하지 않습니다. 애플리케이션에서는 ClustrixDB를 MySQL 프로토콜을 활용하는 하나의 논리 MySQL RDBMS로 간주합니다. Rebalancer가 모든 작업을 담당하고 개발자는 모든 과정을 투명하게 확인할 수 있으므로, Clustrix의 탄력적 확장 기능을 사용하여 배포의 규모를 손쉽게 축소할 수 있습니다.

탄력적 확장으로 플렉스업/플렉스다운

ClustrixDB UI 또는 명령줄에서 탄력적 확장을 제어할 수 있습니다. 새 노드로 배포를 쉽게 ‘플렉스업’할 수 있습니다. 클릭 몇 번으로 새 노드의 CPU를 클러스터의 쿼리 처리에 즉시 사용할 수 있습니다. 그리고 데이터가 백그라운드에서 자동으로 리밸런스되어 새 노드를 사용할 수 있게 됩니다. ClustrixDB에서는 데이터 리밸런스 속도를 제어할 수도 있습니다. 트래픽이 많을 시기에는 성능 저하를 방지하기 위해 리밸런스 실행 속도를 늦추고, 트래픽이 적을 때는 속도를 높이도록 설정할 수 있습니다. ‘플렉스다운’도 쉽습니다. 클릭 몇 번으로 노드를 ‘소프트 장애’로 설정하면 Rebalancer가 데이터 사본을 나머지 노드에 골고루 분산해 줍니다. 리밸런스가 완료되면 클릭 한 번으로 클러스터를 ‘축소’하고 미사용 인스턴스를 종료할 수 있습니다.

ClustrixDB의 탄력적 확장으로 DevOps 비용을 크게 절약할 수 있습니다.

Clustrix를 사용해 보시겠어요?