본문 바로가기
빅데이터,클라우드

클리우드(aws) 데이터베이스 종류 및 특징

by 데이널 2024. 7. 12.

우리는 그동안 서버에 데이터베이스를 직접 설치해서 사용해 왔는데요. 클라우드가 유행을 하면서 이제 설치하지 않고도 서비스를 받을 수 있습니다. 클라우드 때문에 많은 DBA들이 집으로 돌아가야 하는 운명이 됐지만 말입니다. 


과거의 DBA의 권한은 막강했습니다. 데이터베이스에 관해서는 터치하기 힘들 정도로 데이터베이스는 중요했고, 전문적이었죠. 그런데 클라우드 database는 완전 관리형이라 DBA가 필요 없는 것은 아니지만 여러 개를 한꺼번에 관리해도 될 만큼 일이 적어졌다고 해도 과언이 아니죠. 

 

AWS 데이터베이스
AWS 데이터베이스(출처: Amazon)


그러면 AWS 클라우드에서 데이터베이스를 어떻게 사용할 수 있는지, 또 어떤 특징과 장단점이 있는지 알아보도록 하겠습니다. 

 

EC2에 데이터베이스 직접 설치

이전에 가상머신에서 이야기했듯이 EC2는 물리적 서버를 가상화한 것인데요. 기능적으로 실제 서버와 동일합니다. 리눅스 서버를 임대해서 원하는 데이터베이스를 설치하여 직접 운영할 수 있습니다. 


백업 및 리커버리 등 모두 직접 관리하는 방식입니다. 인프라만 빌려서 사용하는 IaaS라고 할 수 있죠. 예를 들어, Oracle이라면 라이선스도 별도 계약해서 가지고 있어야 합니다. 


Amazon RDS(relational database service)

RDS는 그대로 해석하면 관계형 데이터베이스 서비스입니다. 6종의 엔진을 지원합니다. MySQL, MS SQL Server, Oracle, PostgreSQL, Aurora입니다.

 

AWS 클라우드에서 “데이터베이스 뭐를 사용하냐?”라고 물을 때가 있습니다. 이때 “RDS 사용하고 있는지 알았는데 MySQL 사용하더라”라고 말하면 잘 못 알고 있는 것입니다. RDS는 서비스고 MySQL엔진을 사용하고 있는 것입니다. 그러니 AWS의 RDS 서비스를 이용해 MySQL을 사용하고 있다고 이야기하면 됩니다. 

 

만약 오라클을 사용하는데 라이선스는 어떻게 될까요? 기존에 오라클 라이선스가 있었다면 그대로 사용할 수 있습니다. 만약 라이선스가 없었다면 RDS 서비스를 사용하면서 오라클 라이선스를 함께 구매할 수 있습니다. 

 

Auroa는 Amazon에서 개발한 자체 db입니다. MySQL과 PostgreSQL 호환된 좀더 고성능 데이터베이스입니다. AWS에서 MySQL이나 PostgreSQL보다 추천을 많이 하는데요. 확연한 차이는 이중화가 자동으로 되기 때문에 구성하지 않아도 된다는 편리함이 있습니다. Master - Slave로 동작하는데 Master가 문제 있을 경우 바로 Slaver로 자동 대체되는 방식입니다. 


Amazon DynamoDB(NoSQL)

완전 관리형 NoSQL 데이터베이스입니다. 비교적 저렴한 비용인데요. 특징은 고성능, 저지연성으로 확장성이 뛰어납니다. 중단 없이 확장이 가능하고 관리가 필요 없는 서버리스(Serverless)입니다. 또 다큐먼트, 키밸류 구조를 제공합니다.

 

주로 SNS 등 대량의 로그 데이터에 적합한 db입니다. 기본키를 기준으로 한 쿼리 작업에 최적화를 수행합니다. 단점으로는 트래픽이 많을수록 비용이 증가합니다. 또 복잡한 쿼리는 수행속도 느려서 작업이 어렵습니다. 


Amazon Redshift, Snowflake

대용량 병렬 peta 바이트급 DW(Data warehouse) 서비스입니다. 컬럼 단위 저장 스토리지이며 저장 속도가 빠르고 개별 컬럼 쿼리 빠릅니다. 대규모 데이터 분석 서비스용으로 BI 작업에 최적화되어 있죠. 설정 및 최적화가 다소 복잡하다는 단점이 있습니다. 


요즘 Snowflake도 많이 사용하는데요. Snowflake도 클라우드 기반 DW 서비스입니다. 단 AWS, Azure, GCP(구글 클라우드 서비스) 에서 모두 사용할 수 있죠. 분리된 스토리지 및 컴퓨팅 아키텍처를 가지고 있는데요. 


데이터 크기에 따라 클러스터와 웨어하우스 용량을 자동으로 확장할 수 있는 특징이 있습니다. Redshift와 유사하지만 높은 동시성과 성능을 제공합니다. 미국에서 상장 당시 워런버핏이 투자해서 더 유명한 기업이기도 한데요. 사용자들의 이야기를 들어보면 Redshift보다 Snowflake를 더 높게 평가하고 있습니다. 


Amazon ElastiCache

ElastiCache는 AWS의 인메모리 데이터베이스 서비스인데요. 이것 또한 RDS처럼 Redis와 Memcached 두 엔진을 지원합니다. Redis와 Memcached의 특징은 링크를 참고하시기 바랍니다. 


ElastiCache는 고성능 및 저지연 데이터 캐싱을 제공합니다. 장점은 메모리 db답게 빠른 데이터 접근이 되고, 자동 스케일링이 가능합니다. 단점은 메모리를 사용하기 때문에 그에 따른 비용이 증가할 수 있습니다. 인메모리 데이터 특성상 영속성이 보장이 어렵다는 점이 있습니다. 


여담으로 Elasticsearche와 이름이 비슷해서 헷갈릴 수 있으니 주의하시기 바랍니다. 엘라스틱서치는 루씬 기반의 검색 엔진입니다. 저도 AWS의 ElastiCache를 듣고 처음에 검색 엔진인가 생각했습니다. 

 

마치며

위에서 살펴본 것처럼 클라우드에서도 우리가 알고 있는 데이터베이스 종류 모두를 지원하고 있습니다. 클라우드 세상에서도 안 되는 것이 없다는 말이죠. 그래서 요즘은 클라우드로 대체로 운영하는 상황입니다. 결론적으로 원래 데이터베이스 개념을 알면 클라우드에서는 대응만 시키면 되는 식입니다. 

 

예를 들어, NoSQL 데이터베이스는 DynamoDB이고 다큐먼트와 키밸류 지원을 하니, MongoDB나 카산드라와 비슷하게 동작하겠구나 생각하면 된다는 것이죠. 그리고 rdbms와 인메모리 db의 경우는 그냥 엔진으로 가져다 사용할 수 있습니다. 또 Snowflake처럼 AWS와 같은 클라우드에 종속적인 것이 아닌 서비스가 더 통용된다는 사실도 알아두면 좋습니다. 

 

시대별 데이터베이스 종류와 출연, DB 역사는 어떻게 달라졌나?

 

데이터베이스(Database) 종류, DB 역사는 어떻게 달라졌나?

데이터베이스의 종류라고 하면 계층형(Hierarchical), 네트워크형(Network), 관계형(Relational)과 같은 초기 개념부터 다룰 수도 있는데요. 이는 데이터베이스의 원론적인 분류입니다. 이 세 가지 유형의

bommbom.tistory.com