알리바바클라우드와 메가존은 국내 및 해외 기업들의 성공적인 중국시장 진출을 위해 클라우드 서비스로 제공할 수 있는 여러 비즈니스 서비스들을 제공한다.
각 회사는 산업군에 따라 클라우드의 여러 서비스를 조합하여 본인에게 맞는 최적의 서비스를 이용할 수 있는데, 오늘은 여러 클라우드 서비스 중 데이터를 효과적으로 관리하기 위한 기본 DB 솔루션, ‘RDS (Relational Database Service)’에 대해 알아보도록 하겠다.
현재 기업들은 쏟아지는 데이터 속에서 각 기업의 인텔리전스가 될 수 있을만한 데이터를 얻는 것에 가장 관심을 가지고 있는데, 이 데이터를 이용해 제대로 된 ‘Digital Transform’을 하기 위해선, 수집한 데이터를 잘 관리하는 것도 중요할 것이다.
여기서 RDS가 해답이 될 수 있다.
먼저 RDS에 대해 알아보기에 앞서, 지금까지는 데이터를 어떤 방식으로 축적해오고 관리해왔는지에 대해 알아보자.
소프트웨어를 서버에 직접 설치해 사용하는 방식인 온프레미스 환경 (On-Premise)은 클라우드가 도입된 현재에도 사용되고 있지만, 클라우드가 도입되기 전에는 모든 사용자들이 온프레미스 환경에서 데이터를 운영해야 했다.
DBA (Data-Base Administrator), 즉 데이터 전문가가 ‘직접’ 데이터베이스의 패치 및 업데이트, 백업과 운영 등 데이터베이스의 전반적인 것을 모두 관리해야 했으며, IDC 공간비용, 전력비용 그리고 인력비용 등 전반적으로 많은 초기비용과 유지비용이 발생했다.
이러한 On-Premise 환경에서 클라우드 환경으로 넘어오면서, 위와 같은 데이터베이스들을 ECS (Elastic Compute Service)라고 하는 가상 서버에 설치하여 사용하기 시작하였다.
하지만, 이 ECS라는 한 대의 가상 서버에 데이터 베이스를 오려 사용하게 되면, 물론 IDC 공간비용이나 전력비용 등 다른 비용적인 측면과 관리포인트에서 많은 이점이 있지만, 여전히 관계형 데이터베이스의 설치, 패치 등에서 관리 문제가 발생하게 된다.
Cf. 관계형 데이터베이스 (Relational Database)?
2개 이상의 데이터베이스 또는 테이블을 연결하기 위해 고유한 식별자를 사용하는 데이터베이스 (DB) 로서, 각각의 항목과 그 속성이 다른 모든 항목들을 그의 속성과 연결할 수 있도록 구성된 자료 구조.
출처 : 네이버 지식백과
이런 ECS를 보완할 수 있는 솔루션이 바로 RDS이다.
모든 프로세스가 완전히 관리되는 것이다.
사진으로 정리하자면, 온프레미스 환경 (좌측) 에서는 소프트웨어 설치를 위한 모든 단계를 전부 사용자가 관리해야 했다면, ECS 환경 (중앙)에서 클라우드 업체는 운영체제 설치 및 서버 관리 등에 대한 관리를 통해 사용자의 부담을 덜어줄 수 있고, RDS 환경 (우측)에서는 클라우드 업체가 전반적인 관리를 해줌으로써 사용자는 앱 최적화만 관리하면 된다. 이렇게 되면 사용자는 서버운영에 대한 부담 없이 서비스 개발 및 운영에 집중할 수 있다.
RDS (Relational Database Service) 란?
알리바바클라우드는 자체 개발 운영체제 압사라(Apsara)를 사용해 데이터 관리를 하고 있다. 그래서 ApsaraDB for RDS는 알리바바클라우드에서 제공하는 완전 관리형 데이터 베이스 서비스이다. 기존 데이터 베이스의 경우, DBA가 직접 데이터베이스의 패치 및 업데이트, 백업과 운영 등 데이터베이스의 전반적인 것을 모두 관리해야 했지만 Apsara DB for RDS는 인프라 및 데이터 베이스의 업데이트를 관리해주는 것 뿐만 아니라, 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원한다. 또한 클릭 몇 번만으로 손쉽게 데이터베이스를 구성할 수 있으며, CPU, Memory, 스토리지 및 IOPS가 모두 분할되어 제공되므로, 사용자에게 맞는 스펙의 데이터베이스를 구성하는 것 또한 가능하다.
지원하는 Database Engine
이러한 데이터베이스들은 데이터베이스 엔진을 통해 구성되는데, Apsara DB for RDS는 다양한 데이터베이스 엔진을 지원한다. 가장 범용적인 MySQL엔진부터, MSSQL, PostgreSQL, Maria DB 그리고 알리바바 클라우드에서 자체 제작한 데이터베이스 엔진인 Polar DB 까지 지원하고 있다. 사용자는 본인의 워크로드에 맞는 적절한 엔진을 선택하여 손쉽게 서비스를 운영할 수 있다.
그렇다면 RDS를 사용하면 좋은 점은 무엇일까?
RDS 장점
1.간단한 셋업
앞서 설명했다시피, 기존 데이터베이스는 설치, 패치, 운영과 백업 등 데이터베이스의 모든 것을 관리하고 직접 수동으로 컨트롤해야 했지만, Alibaba RDS는 간단한 UI를 통하여 원하는 DB의 사양을 설정할 수있다. 따라서 초기 DB 구성에 필요한 시간과 인력을 줄여, 보다 나은 서비스 개발 및 운영에 집중할 수 있다.
2. 손쉬운 Database 스펙 변환
만약 IDC 환경에서 데이터베이스를 사용 중일 때, 사용자의 증가, 트래픽의 증가 등 여러가지 이유로 인해 DB용량이 부족한 경우가 생길 수 있다. 혹은 이와는 반대로 DB의 용량이 남게 되어 자원의 잉여가 발생할 수도 있다. 하지만 IDC환경에서는 DB의 스펙을 변경하는 방법이 쉽지 않았다.
그러나 Alibaba Cloud RDS는 필요에 따라 인스턴스 스펙을 자유롭게 upgrade/downgrade할 수 있다. Alibaba Console에 접속하여 클릭 몇 번만으로 DB의 스펙을 변경할 수 있기 때문에, 보다 빠르고 원활한 서비스를 고객들한테 제공할 수 있으며, 비용 효율적으로 데이터 베이스 서비스를 운영할 수 있다.
3. High Availability (고가용성)
ApsaraDB for RDS의 여러 장점 중 필자가 제일 강조하고 싶은 HA(고가용성) 구성이다.
HA구성이란, 두 개 이상의 가용영역(AZ)에 데이터베이스를 배포하는 형태로 Multi-AZ구성이라고도 불린다.
예를 들어, 각 가용영역의 독립된 데이터베이스가 서로 정보를 공유하고, 만약 한쪽의 가용 영역에 있는 데이터베이스에 장애가 생겼을 시, 다른 영역에 있는데이터베이스를 통해 자료에 접근하는 방법이다.
한 서버에 장애가 생겼을 시에도 끊김없이 서비스를 제공하기 위해선 가지고 있는 두 가지 서버에 동일한 정보를 가지고 있어야 하고, 하나에 장애가 났을 시, 빠른 대처가 중요하다.
기존 On-Premise 환경의 경우, 이러한 HA구성을 일일이 전부 수동으로 작업하여 설정했어야 했다.
하지만 Alibaba Cloud RDS를 사용한다면 손쉽게 클릭 몇 번만으로 고가용성을 보장하는 HA를 구성할 수 있다. 이렇게 RDS에서는 제공하는 HA구성을 통하여 예기치 못한 돌발 상황에 대처할 수 있으며, 사용자들에게 안정되고 원활한 서비스를 제공할 수 있다.
4. High Security
마지막으로 Alibaba RDS는 높은 안정성 또한 보장한다. 우선 1차적으로 망 분리를 통한 안정성을 확보한다. 데이터 베이스의 정보는 민감하기 때문에 필수적이지 않은 경우 사설망에 데이터베이스를 위치시켜 외부에서 들어오는 트래픽을 차단한다. 또한 RDS의 DDoS Protection을 통하여, DDoS 공격이 감지되면 RDS Security System에서 Traffic Cleaning을 활성화하여 효과적으로 DDoS 공격을 방어한다.
이 외에도 추가적으로 Whitelist 설정을 통해, Whitelist에 등록되어 있지 않은 모든 트래픽의 접근을 허용하지 않음으로써 데이터베이스의 안정성을 확보할 수 있다.
Alibaba Cloud RDS는 다양한 데이터베이스 엔진 뿐만 아니라, 각 엔진마다 다양한 Edition을 제공하고 있다.
이러한 여러 Edition을 통하여, 다양한 워크로드에 맞는 Edition을 채택하여 효율적이며 비용적으로 Alibaba Cloud RDS 서비스를 사용할 수 있다.
Edition
1. Basic Edition
먼저 가장 기본이 되는 Basic Edition 이다.
Basic Edition은 Slave Node (Standby Node) 없이 Single Node로 구성되어 비용효율적으로 사용할 수 있는 Edition입니다.
동작하는 Node가 한 개 이므로, Node에 장애가 발생했을 시 데이터베이스는 사용이 불가능하게 되거나 설정 환경이 변경될 가능성이 있지만, Slave Node가 제공되지 않기때문에 실시간 복제로 인한 성능 감소가 없다는 장점이 있다.
주로 데이터베이스의 학습 또는 규모가 작은 웹 사이트의 개발 / 테스트 환경에 적합하다. 현재는 MySQL, SQL Server, PostgreSQL에서 Basic Edition을 제공하고 있다.
2. High – Availability Edition (HA Edition)
앞에서 언급한 고가용성 (High-Availability) Edition이다.
현재 클라우드 상에서 가장 보편적으로 많이 사용되는 Edition이다. Primary와 Secondary (Master-Slave) 인스턴스 간에 실시간 동기화를 지원하며, 만약 Primary 인스턴스에 장애 발생 또는 기타 상황으로 접속할 수 없게 될 경우, 자동으로 Secondary 인스턴스로 Fail-over되어 동작하게 된다. 고로 고객들에게 중단 없이 안정적으로 서비스를 제공할 수 있다.
HA Edition은 이 외에도 Auto Scaling기능, Backup and Restoration, Read/Write Splitting 기능 등 다양한 기능을 제공하고 있다.
3. Cluster Edition (Always on Edition)
RDS SQL Server Enterprise Edition에서 지원하는 Cluster Edition읻. SQL Server의 ‘Always On’이라는 기술에 기반하여 구성된 Edition이며, Read/Write Splitting을 지원하고 있다.
주로 쓰기 작업보다 많은 양의 읽기작업이 필요한 경우에 적합한데, Horizontally Scalable Read Capability 라는 기능을 사용하여, 읽기 전용 인스턴스인 ‘Read-Only’인스턴스의 수량을 늘려 더 많은 읽기작업을 처리할 수 있다.
쉽게 말해, 본 에디션은 한 대를 두고 여러 개의 읽기 인스턴스를 둘 수 있다.
HA 에디션 같은 경우, 하나의 DB가 읽기, 쓰기 작업을 다 한다. 하지만, 클러스터 에디션의 경우, 읽기작업과 쓰기작업이 동시에 들어오면 나눠서 처리한다. 때문에 과부하가 덜 걸리고, 이는 성능향상으로 이어진다.
Cf. 읽기작업? 쓰기작업?
읽기작업 : 기존의 정보들을 사용하는 작업.
쓰기작업 : DB에 데이터가 들어오고, 새로운 정보를 입력하는 작업.
보통의 경우 쓰기 작업보다 읽기작업, 즉, 기존의 정보들을 사용하는 경우가 훨씬 빈번하게 일어남. 가령, 헬스장에 신규 등록하러 오는 사람보다 원래 기존회원이 훨씬 많은 것 처럼.
4. Enterprise Edition
MySQL 엔진에서 사용이 가능한 Edition이다.
1개의 Master Instance와 2개의 Slave Instance로 구성된 three-node architecture Edition이며, 데이터 일관성 및 financial-level신뢰성을 보장하는 여러 Replica를 통해 master-slave 간 데이터를 복제한다.
또한 Cross-Zone Disaster Tolerance를 제공하기 위하여, Master와 2개의 Slave 인스턴스 같은 리전의 서로 다른 3개의 장비에 배포된다. 이 외에도 사용자가 Zero RPO (Recovery Point Object)를 달성할 수 있도록 지원하는 High-reliability를 제공하고 있으며, 30일 동안 실행했던 모든 SQL문에 대한 정보를 가지고 있는 기능인 SQL audit기능 또한 제공하고 있다.