본 포스팅은 해당 강의를 듣고 작성하였습니다.
서론
프로젝트에서 DB를 사용하는 방법은 많다. 그리고 나는 보통 DB를 구성해야할때 다음 3가지를 방식 중 한가지를 선택한다.
1. EC2와 같은 가상 컴퓨터에 Docker Compose를 통해서 사용한다
장점: 가격이 쌈
단점: 구성해줘야 하는 것이 많음
2. GCP Mysql
장점: 구글 클라우드 계정이 처음에 30만원 크레딧을 주기때문에 부담없이 사용할 수 있다.
단점: 크레딧이 없을 경우에는 꽤 부담스러운 가격이다
3. RDS
하지만 3번 같은 경우 휘발성 프로젝트 같은 경우에는 피하게되는데 그 이유는 오로지 비싸기 때문이다. 하지만, RDS의 장점과 역할을 전부 다 알게된다면 꽤나 합리적인 가격이라는 것을 알게 될 것이다.
RDS란?
RDS
- RDS(Relational Database Service)의 줄임말로 말 그대로 관계형 데이터베이스를 쉽게 관리해주기 위한 AWS이다.
- 지원해주는 DB로는 다음과 같이 있다:
Postgres
MySQL
MariaDB
Oracle
SQL Server
IBM DB2
AURORA
RDS가 EC2에 직접 DB를 배포해서 사용하는 것보다 나은점
그래서 비싼 돈 주고 RDS를 사용해야 하는 이유는 다음과 같다.
1. 자동 프로비저닝, OS 패칭 기능
어떻게 보면 클라우드의 장점이라고도 할 수 있겠지만, OS CPU Network등을 전부 직접 구성할 필요가 없다는 편리항미 있다.
2. DashBoards를 통한 모니터링 기능
DB를 사용하다 보면 무분별한 쿼리가 날라올때가 있다. EC2에 올려놓고 사용하다 보면 이런식으로 현재 CPU나 메모리 사용량을 추적하기 어려운데 RDS이자 Cloud DB의 장점이다.
3. Auto Scaling 지원
사용량이 많아지면 자동으로 Scale Out혹은 Scale Up을 해주는 기능이다. 보통 웬만한 AWS 클라우드에는 다 탑재되어 있지만, DB에 대한 요청이 많은 서비스의 경우 필수적이라 할 수 있다.
4. Read Replicas를 통한 읽기 성능 향상
사실 이부분이 강점이라 생각한다.
간단하게 말하자면 DB를 읽는 용도로 사용할 수 있는 DB를 최대 15개까지 복제하는 기능을 제공해주는 것이다.
당연하게도 메인 DB가 업데이트 되면 자동으로 나머지 DB도 업데이트 시켜준다.
보통 사용되는 USE Case는 다음과 같다.
특정 레포트를 작성하기 위해 DB에 계속 접근해야한다고 가정하자.(DB 모니터링을 한다고 생각해보자)
이때 이제 실 서비스로 사용되는 DB를 사용하게 된다면 당연하게도 트래픽이 몰리기 때문에 성능저하가 생긴다. 때문에 저런식으로 '읽기전용' 복제본을 만들어 둔다면 주 사용 DB와 나머지로 분산시킬 수 있다.
실 사용 법은 AWS RDS console창 우측 상단에 Read-only Replicasets를 통해 지정할 수 있다.
읽기 전용이기 때문에 SQL 쿼리 기준 SELECT문에서 해당 Replicas가 사용된다.
5. MULI AZ를 통한 백업용 DB 마련가능
DB에서 중요한 것은 SnapShot을 통해 백업을 마련하는 것이다. 이때 RDS같은 경우에는 추가적인 비용없이 다른 리전에 대기용 DB를 만들어 둘 수 있다. 말그래도 대기용으로 메인 DB가 터지더라도 금방 복구 할 수 있다.
위의 사진과 같이 DB SnapShot을 통해 스냅샷을 저장 및 복구가 가능하다.
추가: Aurora DB
RDS가 없는 장점(?)을 가진 DB 이라고도 할 수 있는게 이제 Auto Exanding이라고 해서 아래 사진 처럼 Auto Scaling 뿐만 아니라 실제 DB의 스펙을 올려주는 Auto Expanding 기능을 지원한다는데 알아두면 좋을 것 같다.
결론 무엇을 쓰면 좋을까?
사실 AWS는 이 외에도 ElastiCache라는 캐시 DB를 지원함으로써 반복되는 요청을 메인 DB에서 불러오는 것이 아닌 캐시된 값을 넘기는 등 정말 다양한 기능을 지원한다.
결론적으로 많은 기업들에서 RDS를 사용하는 이유가 무엇인지 알 수 있었지만, 그래도! 좋은 클라우드 개발자는 상황과 서비스에 맞는 인프라를 구성하는 것이기에 프로젝트의 규모와 기능에 맞게 적절하게 사용하면 좋을 것 같다.
'AWS' 카테고리의 다른 글
AWS 계정 해킹과 ECS 과금 (2) | 2025.03.21 |
---|---|
AWS: Route53 - ALB - VPC - EC2 실습 (0) | 2025.03.18 |
AWS Load Balancer 종류와 역할 (0) | 2025.02.25 |
AWS Storage: EC2-EBS와 EFS (0) | 2025.01.22 |
AWS CLOUD: EC2와 EC2 Purchasing Option (0) | 2025.01.20 |