목차
개요
RDS란 무엇일까??
아마존 공식홈페이지에서 말하기를
Relational Database Service(RDS)는 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 관리형 서비스 모음입니다.
라고 말하고 있다. 본질은 DB(M)S 데이터베이스 관리서비스라는 것인데 여기에서 그치는것이 아니라 관계형 DB등 설치와 운영 연결까지 Amazon에서 관리해주는 서비스라고 볼 수 있다.
아마존 홈페이지에서는
"방치를 해두어도 알아서 자원을 할당해주면서 Amazon의 보안도 적용되어있는 DBMS" 라는 식으로 설명이 되어있다.
장점 : 그래서 왜 사용을 하는가?
1. 인터넷을 통한 자료 공동이용 가능(개발환경의 이동에도 대응 가능)
현재 집에서 사용하는 데스크탑과 노트북 두가지로 개발을 진행하고 있는데 현재 진행하는 프로젝트에서는 미리 저장되어 사용자들에게 보여줘야하는 저장데이터가 많기 때문에 깃허브나 드라이브 등에 올려서 로컬 DB형식으로도 이용 가능하지만 두 환경 모두 인터넷이 원활하기 때문에 Amazon의 온라인 호스팅 DBMS인 RDS를 사용하게 되었다.
2. MySQL등 주요 DB를 지원
설정하고 세팅을 하는 과정을 거칠 필요없이 간단히 세팅을 완료할 수 있다. (다만 보안규칙 생성등 기본 포트포워딩에 대한 개념은 알고있어야한다.)
3. 동적자원관리와 기본적인 보안 등 서비스를 무료로 이용가능
FreeTier를 선택하게 된다면 어플리케이션이나 웹서비스를 개발할때 충분한 크기의 용량과 램을 가진 DB를 무료로 구축할 수 있게 된다. (다만 일반적인 사용량에서 1계정당 1개의 RDS 정도가 무료)
단점 : 그럼에도 있는 단점은?
1. 시스템이 복잡할 수 있다.
당연히 스프링의 H2나 플라스크나 장고 등에서 지원해주는 라이트한 DB에 비해 접속-가동 시간도 오래걸리고 백업 등에 시간이 더 걸린다. 따라서 1인 개발이나 정해진 개발 환경 내에서만 개발을 하는 경우에는 굳이 이용을 하지 않고 프로젝트를 배포할 때에만 이용해도 좋다.
2. 초반 DB개발에 비효율적이다.
당연한 말 일 수 있지만 이때 말하는 비효율은 초반에 DB의 구조 등이 정해지지 않은 상태에서 DB의 백업과 리커버리가 수시로 반복이 될텐데 이럴때는 로컬 DB를 사용하다가 어느정도 규칙이 정해진 이후에 사용을 하는게 좋다. (나의 경우에는 RDS에서 지원해주는 자동 백업 서비스를 적극적으로 활용해서 백업에 용이하게 해두었다.)
마무리
이로서 RDS가 무엇인지 그리고 한달여간 사용하면서 느꼈던 장단점 등을 간단히 정리해보았다.
이번 프로젝트에서는 RDS에 총 3개의 스키마를 올렸다.
그 중 2개는 주기적으로 크롤링을 통해서 정보를 업데이트 해주는 서버를 통해 계속 데이터가 업데이트 되고
나머지 1개는 초심자인 입장에서는 꽤나 복잡한 관계로 이루어진 DB들이 존재하는데
처음에는 Docker를 이용해 데스크탑의 네트워크에 MySQL을 올려서 이를 외부의 인터넷을 통해 노트북으로 연결해서 이용하는 방식(더 어려운 방식이었다)을 이용했었는데 이번에 RDS를 이용하여 더 편하게 이용할 수 있게 되어서 포스팅을 해보았다.
시간이 남는다면 RDS 구축하는 법에 대해서 포스팅 해보겠다.