본문 바로가기

AWS/Database

AWS에서의 RDBMS 운영[시작]

AWS에서 Database 중에서도 가장 많이 사용하는 RDBMS(Relationship Database Management System)를 운영하기 위해서는 어떤 방법들이 있을까요?


우선 크게 세가지로 나누어 볼 수 있을 것 같습니다.


1. Amazon EC2(Elastic Compute Cloud)

- https://aws.amazon.com/ko/ec2/


2. Amazon RDS MySQL

- https://aws.amazon.com/ko/rds/?nc2=h_m1


3. Amazon RDS Aurora

- https://aws.amazon.com/ko/rds/aurora/?nc2=h_m1


AWS를 들어보신 분들이라면 위 세가지를 모두 들어보셨을 것이라 생각됩니다.

그래도 한번 더 간단히 정리를 해보도록 하겠습니다.


EC2?

EC2는 AWS에서 제공해주는 기본 서버라고 보시면 됩니다. IDC 상면에 꽂혀있는 그런 서버들? 물론 AWS는 가상화 중 Xen을 쓰고 있으니 가상화 서버라고 보시면 되겠네요.


그럼 RDS는? 

RDS는 AWS에서 제공하는 Relationship Database Service 입니다. Amazon에서 제공을 해준다고? EC2와 다른 점은 뭐지? 라고 생각이 드실수도있는데요. 아래서 간단하게 표로 설명하겠습니다.


Aurora?

Aurora는 RDS의 종류 중 하나인데요. 2017년 6월 25일 기준으로 MySQL과 PostgreSQL 두가지를 제공하고 있습니다.

Aurora의 경우엔 AWS의 개발자들이 opensource인 두 DB를 자신의 입맛에 맞게끔 개조한 것입니다. Aurora의 경우엔 오픈소스가 아닙니다. 내부적으로 어떻게 돌아가는지는 잘 알 수 없죠. AWS에서 말하는 것을 전적으로 믿을 수 밖에요..ㅎ


엄~~청 간단하게 표로 비교해보겠습니다.


 

 EC2

 RDS MySQL

 RDS Aurora

  MySQL 구성

 자유도가 높음

 수동으로 서버 설치해야해서 귀찮음

 자유도가 낮음.

 click click으로 서버 추가 가능

 자유도가 낮음

 click click으로 서버 추가 가능

  Backup

 수동으로 Backup

 스크립트 작성

 자동으로 Backup

 Full Backup 및 증분백업

 자동으로 Backup

 Full Backup 및 증분백업

  Restore

 수동으로 Restore

 Full Restore 및 pin point restore 가능

 Full Restore 및 pin point restore 가능

  Load Balancer

 수동으로 구축

 Master에 대해서만 가용성 보장

 Writer 및 Reader Endpoint 제공

  Version

 사용자의 선택에 의해 사용

 AWS에서 제공하는 것만 사용가능(제한적)

 5.6.10 version 기반으로 커스텀

  Version Upgrade

 사용자의 선택에 의해 upgrade

 사용자의 선택에 의해 upgrade

 Aurora는 강제 upgrade 가능

  Failover 수동으로 Failover

 Button 및 Active Master에 문제시 가동

 Button 및 Active Master에 문제시 가동

  Storage 일반적인 EBS 사용

 일반적인 EBS 사용

 Shared Storage 사용

  Replication Lag 기존 IDC와 동일하게 발생

 기존 IDC와 동일하게 발생

 Shared Storage 이기 때문에 100ms 미만


엄청 간단하게 비교를 해보았는데 느낌이 오시나요?

EC2와 RDS MySQL의 차이는 서버를 수동으로 관리하느냐와 버튼으로 추가 삭제하느냐의 차이가 있습니다. 물론 Backup과 같이 관리자에 의해 컨트롤 되는 부분들도 그렇구요.

하지만 RDS MySQL과 Aurora 같은 경우엔 Storage 차이와 RDBMS의 차이가 발생합니다. Aurora는 AWS에서 커스텀한 RDBMS여서 그런데요. Shared Storage를 사용하는 것이 가장 큰 특징이라서 가용성 및 Replication Lag이 특징입니다. 그로 인한 문제점들도 있는데 이건 뒤에서 설명해보도록 하겠습니다.


다음글은 디테일하게!