우리는 EC2에 MySQL을 깔아서 DB를 사용할 수 있다. 그럼에도 RDS라는 서비스가 존재하며 왜 비싼 RDS를 사용하는지 생각해보았다.
답은 "운영의 자동화" 부분에 있다.
먼저 RDS 서비스가 뭔지 가볍게 살펴보자.
RDS란?
AWS가 제공하는 관계형 데이터베이스 서비스다. 이 서비스는 EC2에 비해서 상대적으로 비싸지만 대부분의 사용자들이 이 서비스를 사용한다.
이 점을 살펴보자.
하드웨어 및 OS 관리
- RDS는 서버 장비 교체, OS 보안 패치 등을 알아서 처리한다. (AWS 측에서)
백업 및 복구
- 특정 시점으로의 복구 (Point-in-Time Recovery)가 클릭 한 번으로 가능하다.
확장성
- AWS 콘솔에서 DB 사양을 높이거나 저장 공간을 쉽게 늘리고 줄일 수 있다.
고가용성
- Multi-AZ 기능을 통해 데이터 센터 장애가 발생 시 서비스가 중단되지 않도록 해준다.
이렇게 사용자 대신 AWS 측에서 귀찮은 일처리들을 대신 처리해주며 편의성과 고가용성을 강조한다.
실습 과정을 통해 좀 더 깊이있게 다뤄보도록 하자.
RDS는 반드시 서브넷 그룹에 만들어야 한다.
서브넷 그룹이란 두 개 이상의 서브넷 묶음을 말한다. DB를 만들 때는 반드시 두 개 이상의 가용 영역에 걸쳐서 만드는 걸 강제한다. AWS의 고가용성 원칙 때문이다. 만약 한쪽의 가용 영역에만 DB를 두었는데 해당 데이터 센터가 중단되는 상황이 생기면 서비스에 장애가 발생한다. 하지만 서브넷 그룹을 통해 묶어둔다면 메인 DB에 문제가 생겼을 때 AWS가 즉시 다른 가용 영역에 있는 예비 DB로 서비스를 전환해 준다.

이렇게 RDS를 생성할 때 두개의 서브넷을 지정해준다.

만들고자 하는 내용을 도식화 하자면 위와 같다.
RDS를 생성했다면 DB 인스턴스를 생성해줄 차례다.
MySQL을 선택해주고 자격 증명(마스터 사용자 이름, 마스터 암호)설정한다.

연결 설정에서 기존에 만들었던 VPC를 선택하고 DB 서브넷 그룹, VPC 보안 그룹, 데이터베이스 포트(3306), 초기 데이터베이스 이름(testdb) 등 기본 설정을 진행한 뒤 데이터베이스를 생성한다.
참고로 필자는 DB용 서브넷을 인터넷 게이트웨이로 향하는 경로가 없는 프라이빗 서브넷으로 구성했다.

생성된 RDS에 접속하여 show databases; 명령을 입력해 확인해보자.

RDS가 프라이빗 서브넷에 있으므로 직접적인 접근이 불가능하다. 따라서 퍼블릭 서브넷에 bastion 서버를 생성해 RDS에 접근할 수 있도록 한다.
bastion 서버를 생성했다면 접속하여 mysql을 설치한다.
apt update -y && apt install mariadb-client-core -y (mysql 설치 명령)

생성한 RDS 엔드포인트로 접속을 한다. RDS 생성할 때 설정한 마스터 사용자 이름과 마스터 암호를 입력해주어야 한다.

RDS 생성 화면에서는 따로 정책 편집을 하지 못하므로 RDS 생성 후 반드시 보안그룹 정책을 수정해주어야 한다.
VPC 보안그룹으로 이동해서 인바운드 규칙을 편집해준다.(RDS 접근 가능하도록)
테스트용이니 모든 대역에서 접근이 가능하도록 수정해주었다.
실제로는 0.0.0.0/0으로 인바운드 규칙을 열어주는 것은 위험하다. 접근 가능한 것들만 지정해서 DB에 접근할 수 있도록 해줘야 한다.
이제 DB에 접근이 가능해졌으니 다시 접속해보자.

접속 후 show databases; 명령을 쳐보면 아까 RDS 생성 시 설정한 초기 데이터베이스 이름(testdb)이 잘 뜨는 것을 확인할 수 있다.
RDS 서비스를 잘 다룰 수 있다면 엄청난 편의성과 고가용성을 챙겨 인프라 운영 관리 측면에서 매우 이득을 볼 수 있을거라고 생각한다.
RDS는 클릭 몇 번으로 업무를 자동화 해주지만 그 바탕에는 탄탄한 VPC 설계와 서브넷 그룹, 민감한 보안그룹 설정이 이루어져야한다. 이번 실습에서는 0.0.0.0/0으로 모든 대역에서 접근가능하도록 허용하였지만 실무에서는 반드시 특정 IP로 제한하여 영향을 받지 않도록 구성해야 한다.
'Infra > AWS' 카테고리의 다른 글
| AWS Summit SEOUL 2026 후기 (0) | 2026.05.21 |
|---|---|
| 서버가 죽지 않도록... ELB와 Auto-Scailing 이해하기 (feat. AWS) (0) | 2026.03.24 |
| 가상 네트워크 만들기 - AWS VPC 설계 및 프라이빗 서브넷 통신 (0) | 2026.03.22 |
| 인프라와 데이터 보호 (feat. AWS Technical Essentials) (0) | 2026.01.27 |