기존의 서버, 어플리케이션, 데이터베이스 (3-Tier-Architecture)는 비용과 옵션에 대해 생각 할 사항이 거의 없다.
지금은 가상 머신을 개인, 기업이 직접 운영하고 그 위에 OS를 설치할 수 있는 옵션이 생겼고 기업의 서버에 가상머신을 빌려 쓸 수도 있게 되었다.
Amazon은 관계형 데이터베이스 서비스 (RDS)라는 플랫폼 형태의 서비스(PaaS)를 제공함으로써 기업이 더 이상 OS 및 서버에 신경 쓸 필요 없이 데이터베이스를 빌려 쓸 수 있도록 지원하기 시작했다.
RDS란 무엇인가?
AWS RDS는 인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스
데이터베이스의 크기는 기본(m4), 마이크로 최적화(r3), 마이크로(t2) 이렇게 총 3가지 카테고리로 나뉜다.
각 RDS인스턴스에서 'Multi-AZ' 옵션을 설정하면, 다른 가용영역에 복제된 데이터베이스를 필요할 때 바로 사용할 수 있다.
이는 주로 프로덕션 데이터베이스에 사용된다. -> 한 쪽 가용영역에서 장애 및 에러가 발생할 경우, 문제가 일어나지 않은 데이터베이스를 자동으로 사용해서 복구시키는 기능
RDS는 EC2 인스턴스를 기반으로 운영하는 서비스
RDS 인스턴스 요금은 기본 인스턴스 크기, 데이터 스토리지, 멀티 가용영역, 데이터 전송에 따라 달라진다.
각 데이터베이스 엔진마다 위의 요소들에 대해 다른 요금을 적용하기 때문에 비용 측면에서 고려해야 할 부분이 많아진다.
비용을 따져보면, 고용량 데이터베이스를 사용할 경우 RDS 인스턴스의 비용이 예상보다 높을 수 있다. 또한 데이터베이스에서 특히 새로운 서비스(어플리케이션)에서 필요한 사용량, 스토리지 등에 대해 예측하기 어렵다.
그리고 자체 하드웨어 또는 인스턴스에서 운영하는 것보다 실제 성능이 낮을 수 있다.
개인, 기업이 선택할 수 있는 데이터베이스 사용 방법은 2가지로 일단 추릴 수 있다.
AWS에 지불하는 비용만 놓고 비교하면 사용 중인 데이터베이스를 직접 설치하는 것이 확연히 저렴하다. 하지만 BUT, 기업의 입장에서는 RDS를 사용하는 것이 비용절감이 된다.
기업은 RDS를 사용하면 빠른 시간 내에 구축을 하게 되어 생기는 비용 절감이다. 이 것은 서비스를 출시하는 시기를 좀 더 빨리 결정하게 되어서 생기는 잠재적인 비용과 시간적인 측면이다. 예를 들면 RDS를 사용하게 되면, OS 및 데이터베이스의 설치 및 관리 그리고 업데이트를 따로 할 필요가 없어진다.
RDS의 요금정책은 많이 복잡하고 어렵기 때문에 흔히 불리는 '요금폭탄'을 피하기 위해 EC2에 DB를 직접 설치하는 경우가 더 나을 수도 있다. 하지만 다른 많은 시간 소비와 예기치 못한 오류, 장애를 만날 수 도 있어서 다른 노력과 시간이 자연스럽게 수반이 되는 경우가 많다. 또한, 취업을 위해 포트폴리오를 쌓고 있는 경우라면 RDS를 사용하여 배포를 했고, 안 했고의 차이는 확연하게 두드러지기 때문에 EC2에 DB를 직접 설치하는 것이 무조건 좋다고는 할 수 없다.
나는 Backend 포지션 취업을 희망하고 있다.
일단 AWS RDS를 사용해야 할 것 같다. 그리고 요금체계를 매일매일 분석하고 조절해야 겠다는 생각이 일단 먼저 들었다. 처음에는 EC2에 MySQL을 설치해서 사용하려고 했으나, RDS를 간소화 하여 서비스를 하는게 더 낫겠다는 생각이 계속 들고 있다.