이번 글에서는 MySQL을 사용할 수 있는 클라우드 서비스에 대해서 알아보고, 국내외에서 모두 사용이 가능한 3개의 클라우드 서비스를 비교하겠습니다. 해당 비교 시리즈는 내용이 길어져 AWS, Azure, GCP 에 따라 나누어 포스트합니다.
클라우드 서비스 모델들에 대한 정보가 필요하시다면 [클라우드 컴퓨팅이란?] 포스트를 참고해주시기 바랍니다.
MySQL을 포함한 여러 DBMS(Database management system) 에 대한 정보가 필요하시다면 [DBMS란?] 포스트를 참고해주시기 바랍니다.
먼저 클라우드 전체를 비교하는 데 도움을 주는 사이트 http://comparecloud.in/ 에 들어가서 클라우드 기업들이 클라우드 서비스들을 어떻게 판매하고 있는지 알아봅시다. 해당 사이트는 AWS, Azure, GCP, IBM, ORACLE, Alibaba 클라우드 서비스들을 비교해주고 있어 각 기업들이 어떤 클라우드 서비스를 제공하는지 쉽게 비교할 수 있습니다.
Database 영역으로 스크롤을 내리면 아래와 같이 여러 Database 컴퓨팅 서비스 목록이 있습니다.
현재 목표는 MySQL을 지원하는 클라우드 서비스를 알아보는 것이기 때문에, Relational Database Management Service 만 알아보면 됩니다. 여기서 AWS, Azure(Microsoft), GCP(Google) 3개를 선택한 이유는 해당 3개의 클라우드 서비스의 account executive 분들과 문의를 주고 받았기 때문입니다. (IBM, Oracle, Alibaba 들은 업데이트 예정입니다)
해당 사이트의 RDBMS 부분을 가져와 표로 만들었습니다. 기존 영문 링크들은 한국어 링크로 대체하였습니다.
Amazon Web Services | Microsoft Azure | Google Cloud Platform | |
Relational Database Management Service |
|
|
|
하지만 이 표만으로는 각 서비스의 성능과 가격을 이해하기 어렵습니다.
클라우드를 이용하여 MySQL를 사용하는 방법은 위 관계형 데이터베이스 서비스 목록의 제품만을 사용하는 것만이 아니기 때문입니다. 위 서비스들은 각기 다른 서비스 내용들을 담고 있기 때문에 각 서비스에 대한 이해가 필요합니다.
먼저 AWS의 RDS 부터 알아보겠습니다.
Amazon RDS란 AWS에서 제공해주는 RDBMS 서비스입니다.
RDS를 사용하지 않고 DBMS를 사용하기 위해서는 대여한 클라우드 가상 컴퓨터 안에 OS에 맞는 DBMS 프로그램을 깔고, 유지보수하고 데이터베이스를 설정해주어야 합니다. (t2.nano 인스턴스에 MySQL을 직접 까는 방법 [링크])
하지만 Amazon RDS를 사용하게 되면 데이터베이스 자체가 MySQL과 호환되는 데이터베이스가 생성되어 관리가 쉬워집니다. AWS 공식 사이트에서 배포한 RDS의 장점을 확인해봅시다.
Amazon RDS의 개요
관리되는 관계형 데이터베이스 서비스가 필요한 이유는 무엇일까요? Amazon RDS가 어렵거나 지루한 관계형 데이터베이스 관리 작업을 대다수 대신하기 때문입니다.
서버를 구입하면 CPU, 메모리, 스토리지 및 IOPS가 모두 한데 묶여 제공됩니다. Amazon RDS를 사용하면 이 모두가 따로 분할되므로 독립적으로 확장할 수 있습니다. CPU가 더 많이 필요하거나 IOPS가 더 적게 필요하거나 스토리지가 더 많이 필요할 경우 쉽게 할당할 수 있습니다.
Amazon RDS는 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리합니다.
관리형 서비스 환경을 제공하기 위해 Amazon RDS는 DB 인스턴스에 대해 shell 액세스를 제공하지 않으며, 고급 권한을 필요로 하는 특정 시스템 절차와 테이블에 대한 액세스를 제한합니다.
필요할 때 자동화된 백업을 수행하거나 고유한 백업 스냅샷을 수동으로 만들 수 있습니다. 이러한 백업을 사용하여 데이터베이스를 복원할 수 있습니다. Amazon RDS 복원 프로세스는 안정적이고 효율적입니다.
기본 인스턴스 및 문제 발생 시 장애 조치를 수행할 수 있는 동기식 보조 인스턴스에서 가용성을 높일 수 있습니다. MySQL, MariaDB 또는 PostgreSQL 읽기 전용 복제본을 사용해 읽기 조정을 높일 수도 있습니다.
이미 친숙한 MySQL, MariaDB, PostgreSQL, Oracle 및 Microsoft SQL Server 같은 데이터베이스 제품을 사용할 수 있습니다.
데이터베이스 패키지의 보안 외에도 AWS Identity and Access Management(IAM)을 사용해 사용자 및 권한을 정의하는 방법으로 RDS 데이터베이스에 액세스할 수 있는 사용자를 제어할 수 있습니다. 데이터베이스를 가상 사설 클라우드에 넣어 데이터베이스를 보호할 수도 있습니다.
결론적으로, Amzaon RDS 서비스를 이용하게 되면 다음과 같은 장점이 있습니다.
- Amazon RDS Management Console 을 이용하여 보다 쉽게 데이터베이스를 관리할 수 있습니다.
- Multi-AZ 배포를 쉽게 할 수 있습니다. (AZ(Availability Zone 이란, 가용 영역을 의미합니다. AZ에 대해 알아보고 싶으시다면 [Availability zone 이란?] 포스트를 참고해주시기 바랍니다.)
- 무엇보다 Amazon RDS 는 On-demand (사용한 만큼 비용을 지불하는) 시스템입니다. 인스턴스만 자체만 임시로 만들어보는 것 자체는 무료입니다.
그렇다면 해당 RDS 콘솔에 접속하여 실제 RDS를 사용하는 과정을 알아봅시다.
AWS의 RDS 콘솔의 모습입니다. Aurora 서비스의 광고가 눈에 띄는군요. 데이터베이스 생성을 시도하겠습니다.
DBMS 소프트웨어를 선택할 수 있습니다. DBMS 마다 지원하는 데이터베이스와 인스턴스 구성이 다르다는 것이 특징입니다. MySQL로 선택하겠습니다.
Amazon Aurora 라는 서비스는 AWS가 개발한 RDBMS의 엔진 중 하나로, RDS의 일종입니다.
다시 말하여, Aurora 서비스를 사용한다는 것은 RDS 서비스를 이용한다는 것과 같은 의미입니다.
계속해서 MySQL로 선택하여 다음 단계로 넘어가겠습니다.
세부 정보에서 MySQL 버전과 DB 인스턴스 클래스를 고를 수 있습니다.
vCPU는 가상 CPU의 갯수를 의미하고, GiB RAM은 RAM의 기가바이트 용량을 의미합니다.
필요한 성능을 본인에 알맞게 고르면 됩니다.
그렇다면 가격은 어떻게 될까요? MySQL RDS 요금은 다음과 같습니다.
https://aws.amazon.com/ko/rds/mysql/pricing/
앞으로 AWS, Azure, GCP의 필요 서비스 가격들을 비교하기 위해서는 특정 서비스를 선택해야 합니다.
Azure에 대해서는 다음 포스트에서 알아보겠습니다.
'IT > Cloud' 카테고리의 다른 글
AWS snapshot 제거 오류 해결 방법 (1) | 2021.07.05 |
---|---|
클라우드 컴퓨팅이란? (0) | 2019.05.11 |
Availability zone 이란? (0) | 2019.05.10 |