AWS RDS vs EC2 직접 DB 설치 – 어떤 걸 선택해야 할까?

1. 데이터베이스를 어디에 올릴 것인가?

AWS에서 웹 서비스를 운영할 때 데이터베이스를 어디에 올릴지 선택해야 합니다. EC2 서버에 직접 MySQL을 설치하는 방법과 AWS의 관리형 데이터베이스 서비스인 RDS를 사용하는 방법이 있습니다.

처음에는 “직접 설치가 더 저렴하고 간단한 거 아닐까?”라고 생각할 수 있지만, 두 방법에는 생각보다 큰 차이가 있습니다.

2. EC2에 직접 MySQL을 설치하면 어떻게 되나?

EC2에 MySQL을 설치하면 서버와 데이터베이스가 같은 서버에 있거나 별도 EC2에 설치한 DB를 직접 관리합니다.

이 방식의 장점은 비용이 RDS보다 저렴하고 설정의 자유도가 높다는 것입니다. DB 버전, 설정 파일, 플러그인을 원하는 대로 조작할 수 있습니다.

단점은 DB 관리의 모든 책임이 개발자에게 있다는 점입니다. 정기 백업을 직접 설정해야 합니다. MySQL 보안 패치가 나오면 직접 적용해야 합니다. 디스크가 가득 차거나 DB가 죽으면 직접 대응해야 합니다. 고가용성이 필요하면 복잡한 레플리케이션을 직접 구성해야 합니다.

3. RDS란 무엇인가?

**RDS(Relational Database Service)**는 AWS가 데이터베이스 엔진의 설치, 패치, 백업, 복구를 대신 관리해주는 완전 관리형 서비스입니다.

개발자는 데이터베이스를 어떻게 운영할지 고민하는 대신 비즈니스 로직과 쿼리 최적화에 집중할 수 있습니다.

RDS가 자동으로 처리해주는 것들입니다. 매일 자동 백업을 생성하고 최대 35일까지 보관합니다. 보안 패치와 버전 업데이트를 자동으로 적용할 수 있습니다. 다중 AZ(Multi-AZ) 설정으로 장애 발생 시 자동 복구합니다. 모니터링 대시보드를 기본 제공합니다.

4. 두 방식을 상황별로 비교하면

상황추천 방식
개인 학습, 소규모 사이드 프로젝트EC2 직접 설치 (비용 절감)
운영 서비스, 팀 프로젝트RDS (운영 부담 감소)
데이터 손실 허용 안 됨RDS (자동 백업, 다중 AZ)
DB 설정 완전 제어 필요EC2 직접 설치
관리 인력 부족한 스타트업RDS

5. RDS 인스턴스 만들기 핵심 설정

AWS 콘솔에서 RDS > 데이터베이스 생성을 클릭합니다.

중요한 설정만 정리합니다.

엔진 유형은 MySQL, PostgreSQL, MariaDB 중 프로젝트에 맞는 것을 선택합니다. 템플릿에서 프리티어를 선택하면 비용 최적화 설정이 자동 적용됩니다.

DB 인스턴스 클래스는 db.t3.micro를 선택합니다. 마스터 사용자 이름과 비밀번호를 설정합니다. 이 정보는 환경변수로 관리합니다.

VPC는 EC2 서버와 같은 VPC를 선택합니다. 퍼블릭 액세스는 반드시 아니요로 설정합니다.

6. RDS 보안의 핵심 – 프라이빗 서브넷에 배치하기

RDS는 절대 인터넷에서 직접 접근할 수 없게 해야 합니다.

올바른 구성은 이렇습니다. EC2(웹 서버)는 퍼블릭 서브넷에 배치해 인터넷에서 접근 가능합니다. RDS(데이터베이스)는 프라이빗 서브넷에 배치해 인터넷에서 접근 불가합니다. EC2만 RDS에 접근할 수 있도록 보안 그룹을 설정합니다.

RDS 보안 그룹 인바운드 규칙에서 MySQL(3306번 포트)의 소스를 EC2의 보안 그룹 ID로 설정합니다. 이렇게 하면 지정된 EC2 서버에서만 RDS에 접속할 수 있습니다.

7. EC2에서 RDS로 접속하는 방법

RDS 인스턴스 상세 화면에서 엔드포인트(Endpoint) 주소를 확인합니다. 형태는 데이터베이스명.xxxxxx.ap-northeast-2.rds.amazonaws.com입니다.

EC2에서 아래 명령어로 접속합니다.

mysql -h RDS_엔드포인트 -u 마스터사용자명 -p

앱 코드에서는 엔드포인트를 호스트 주소로 사용합니다. 비밀번호는 환경변수로 관리합니다.

8. 정리 및 다음 단계

오늘 배운 핵심을 정리합니다.

  • EC2 직접 설치는 저렴하지만 DB 운영 관리를 모두 직접 해야 합니다.
  • RDS는 자동 백업, 패치, 복구를 AWS가 처리해 운영 부담이 적습니다.
  • 운영 서비스에는 RDS, 학습용 소규모 프로젝트에는 EC2 직접 설치가 적합합니다.
  • RDS는 반드시 프라이빗 서브넷에 배치하고 외부 인터넷 접근을 차단합니다.

다음 글에서는 AWS 요금 폭탄을 막는 비용 관리 방법을 알아보겠습니다.

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.