AWS RDS(Amazon Relational Database Service)

이슬아·2025년 2월 9일

LG CNS AM Inspire Camp 1기

목록 보기
18/20

🫙 데이터베이스(Database)

여러 사람이 공유하여 사용할 목적으로 데이터를 조직적으로 체계화하여 통합하고, 관리하는 데이터의 집합

데이터베이스의 종류에는 여러 가지가 있지만, 그중 가장 널리 사용되는 것이 바로 관계형 데이터베이스(RDB, Relational Database)입니다

관계형데이터베이스(Relational Database, RDB)란?

관계형 데이터베이스는 데이터를 로 구성된 테이블(table) 에 저장하는 방식의 데이터베이스입니다.
이 구조 덕분에 데이터 간의 관계를 쉽게 정의하고 조회할 수 있으며, 복잡한 데이터 구조도 체계적으로 관리할 수 있습니다.

AWS RDS(Amazon Relational Database Service)란?

AWS RDS는 관계형 데이터베이스를 쉽고 편리하게 클라우드 환경에서 운영할 수 있도록 지원하는 서비스입니다.
MySQL, PostgreSQL, MariaDB, SQL Server, Oracle등 다양한 데이터베이스 엔진을 지원하며, 개발자가 서버 관리의 부담 없이 데이터베이스를 운영할 수 있도록 자동화된 기능을 제공합니다.

쉽게 말해, "내가 직접 데이터베이스 서버를 관리할 필요 없이 AWS가 알아서 설치, 유지보수, 백업 등을 관리해주는 서비스"라고 할 수 있습니다.

📍Task: Docker 컨테이너에서 설치한 MySQL 데이터 → AWS RDS로 마이그레이션

Docker 컨테이너에서 설치한 MySQL을 사용-> 사용하던 데이터 Amazon RDS(Aurora)로 이전

왜 AWS RDS를 사용할까? 🤔

EC2 인스턴스에 MySQL 같은 관계형 데이터베이스 엔진을 설치하면 굳이 RDS를 사용할 이유가 있을까?


📌 EC2 vs RDS: 직접 설치 vs 관리형 서비스

EC2 인스턴스에 관계형 데이터베이스 엔진을 설치해서 데이터를 관리할 때와 RDS를 통해 데이터를 관리할 때의 차이는 개인 소유 차량렌터카 회사에서 대여한 차량으로 비유할 수 있습니다.

✔️ (이전 방법) EC2 인스턴스에 데이터베이스 설치

EC2에서 직접 운영하는 경우 = 내 차를 사서 직접 관리하는 것

개인 소유 차량을 이용하면 유지 보수, 보험처리 같은 일들을 온전히 운전자가 부담합니다.
차량 정비를 위해서 정비소에 주기적으로 방문해야 하고, 기타 차량과 관련된 다른 일이 생길 때 들여야 하는 시간과 수고가 크겠죠?

EC2에서 직접 운영할 경우
데이터베이스 엔진 설치 및 설정 (MySQL, PostgreSQL 등),보안 패치 및 업데이트 수동 적용, 데이터 백업 및 복구 계획 수립, 장애 발생 시 직접 복구, 수동으로 성능 튜닝 및 모니터링, 가용성 확보 및 확장성 고민 등을 직접 처리

✔️ (변경된 방법) AWS RDS 사용하기

RDS를 이용하는 경우 = 렌터카 회사에서 차량을 대여하는 것

렌터카 회사에서 차량을 대여하면 대여 차량과 관련하여 시간이 들어가는 일들을 렌터카 회사(AWS)에서 대신 처리하기 때문에 운전자는 차량을 관리하는 일에 대해서 시간을 따로 쏟을 필요 없이 운전만 하면 됩니다.

✅ RDS를 이용할 경우
데이터베이스 유지 보수와 관련된 일들을 RDS에서 전적으로 자동 관리 합니다.
사용자가 해야 할 일은 초기 설정을 제외하고 데이터베이스에 저장된 데이터를 관리하는 일 밖에 없기에 개발자는 데이터베이스 관리보다 비즈니스 로직과 서비스 개발에 집중할 수 있습니다!


📌 마이그레이션 방식


1️⃣ AWS 콘솔에서 RDS 인스턴스 생성

  • 데이터베이스 엔진 선택 (MySQL, PostgreSQL, MariaDB 등)
  • 인스턴스 사양 선택 (CPU, RAM, 스토리지 크기)
  • 네트워크 및 보안 설정 (VPC, 서브넷, 보안 그룹)

1️⃣ mysqldump를 사용하여 MySQL DB의 데이터를 백업
2️⃣ 해당 덤프 파일을 RDS(Aurora)로 이동
3️⃣mysqlimport를 사용하여 RDS(Aurora)로 데이터 복원


무조건 RDS를 사용해야 좋은 것?❌

대부분의 기업과 스타트업은 데이터베이스 운영 부담을 줄이기 위해 RDS 같은 관리형 서비스를 선호합니다.
하지만 네이버, 카카오 같은 대규모 IT 기업은 오히려 MySQL, PostgreSQL 등을 직접 운영하는 경우가 많습니다.

  • 더 세밀한 성능 튜닝 가능: RDS보다 직접 운영할 경우 성능 최적화가 유연함
  • 비용 절감: 대규모 트래픽을 감당하는 서비스에서는 RDS의 라이센스 비용이 부담될 수 있음

즉, 작은 규모의 서비스나 빠른 개발이 필요한 경우 RDS가 유리하지만, 대기업처럼 초대형 트래픽을 다루고 최적화가 중요한 경우 자체 운영이 더 적합할 수 있습니다.

🔥 같은 조건에서 비용 비교

EC2: 인스턴스 비용($30) + 스토리지 비용($10) = 총 $40/월
RDS: 인스턴스 비용($49) + 스토리지 비용($11.5) = 총 $60.5/월
📌 EC2가 RDS보다 약 $20 저렴!

🚀 언제 어떤게 유리할까?

EC2가 유리
✔ 비용이 중요한 경우 – 직접 관리할 능력이 있다면 EC2가 더 저렴
✔ 데이터 전송이 많을 때 – RDS는 네트워크 비용이 추가될 수 있음

RDS가 유리
✔ 운영이 편해야 할 때 – 관리 부담을 줄이고 자동 백업, 장애 복구 기능이 필요하다면 RDS가 좋음
✔ 고가용성이 필요한 경우 – Multi-AZ(이중화)로 장애 발생 시 자동 전환

💡 Multi-AZ(Availability Zone)란?
AWS에서 RDS를 사용할 때 데이터를 여러 개의 가용 영역(AZ)에 복제해서 장애가 발생해도 자동으로 전환(Failover)되도록 하는 기능

0개의 댓글