우당탕탕

AWS RDS와 EC2 MySQL, 직접 써보니 어떤 경우에 좋은지 알겠더라고요 본문

Tech/AWS

AWS RDS와 EC2 MySQL, 직접 써보니 어떤 경우에 좋은지 알겠더라고요

모찌모찝 2026. 5. 11. 19:25

AWS에서 MySQL 환경을 세팅하다가 RDS랑 EC2 MySQL 중 어떤 걸 써야 할지 한참 고민했어요. 직접 둘 다 세팅해보고 실제 운영하면서 겪은 문제점과 해결 과정을 공유하려고 해요. 이걸 하다 보니 생각보다 선택 기준이 명확해지더라고요.

이 글에서는 AWS RDS와 EC2 MySQL 환경을 각각 어떻게 세팅하는지, 어디서 막혔는지, 그리고 어떤 상황에서 어떤 선택이 좋은지까지 자세히 적을게요.

AWS RDS vs EC2 MySQL 어떤 걸 써야 할까 관련 이미지

AWS RDS vs EC2 MySQL 어떤 걸 써야 할까 관련 정보

개발 환경 / 버전 정보

이번에 사용한 버전은 MySQL 8.0 기반이고, AWS 환경은 Amazon Linux 2 AMI를 썼어요. AWS CLI 버전은 2.10입니다.

AWS RDS MySQL 세팅은 이렇게 하면 됩니다

사실 RDS는 세팅이 간단해서 금방 되긴 하는데, 여기서도 몇 가지 놓치기 쉬운 게 있어요. 저는 콘솔과 AWS CLI 두 가지 방법으로 세팅했는데, CLI가 반복 작업할 때 훨씬 편하더라고요.

# RDS 인스턴스 생성 예 (db.t3.medium, 스토리지 20GB, MySQL 8.0)
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --db-instance-class db.t3.medium \
    --engine mysql \
    --master-username admin \
    --master-user-password YourPassword123! \
    --allocated-storage 20 \
    --no-publicly-accessible \
    --vpc-security-group-ids sg-xxxxxxxx \
    --backup-retention-period 7

이렇게 하면 기본 인스턴스가 바로 만들어지는데, 보안 그룹 설정을 잘해야 외부에서 접속할 수 있어요. 그리고 백업 설정도 꼭 확인하세요, 자동 백업 없으면 데이터 날릴 수 있거든요.

EC2에 MySQL 직접 설치, 저는 이런 식으로 했어요

EC2에 직접 MySQL 설치하는 건 처음에 좀 막혔는데요, 인스턴스 유형 고르는 것부터 MySQL 설치, 보안 설정까지 한 번에 설명할게요.

# EC2 인스턴스 생성 (Amazon Linux 2, t3.medium 추천)
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --count 1 \
    --instance-type t3.medium \
    --key-name MyKeyPair \
    --security-group-ids sg-xxxxxxxx \
    --subnet-id subnet-xxxxxxx

# 접속 후 MySQL 설치
sudo yum update -y
sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld

# 임시 root 비밀번호 확인 (로그에서)
sudo grep 'temporary password' /var/log/mysqld.log

# MySQL 초기 보안 설정
mysql_secure_installation

이 부분이 가장 귀찮았는데, EC2에서는 OS부터 직접 관리해야 하니 보안 업데이트나 MySQL 설정도 꼼꼼히 챙겨야 하더라고요. RDS보다 신경쓸 게 훨씬 많아요.

AWS RDS vs EC2 MySQL 어떤 걸 써야 할까 관련 이미지

AWS RDS vs EC2 MySQL 어떤 걸 써야 할까 관련 정보

여기서 많이 틀립니다, 제가 겪은 문제 TOP 3

직접 세팅하면서 특히 RDS와 EC2 환경에서 차이가 크던 부분을 꼽아봤어요.

  • 접속 불가 문제: RDS는 보안 그룹에서 인바운드 규칙을 깜빡하면 접속이 안 돼서 한참 헤맸어요. EC2는 OS 방화벽(iptables/nftables)도 체크해야 하고 Mysql 포트(3306) 열려있는지 확인해야 합니다.
  • 백업과 복원: RDS는 자동 백업이 있어서 마음이 편하지만 EC2는 mysqldump 등 수동 백업 스크립트를 만들어야 해서 귀찮았어요.
  • 성능 튜닝과 확장: RDS는 인스턴스 교체나 스토리지 늘리기가 간단하지만 EC2는 직접 MySQL 설정 파일을 수정하고 OS 레벨에서 튜닝해줘야 해서 손이 많이 갔어요.
# EC2에서 방화벽 확인하는 법
sudo firewall-cmd --list-all
# 또는
sudo iptables -L

# RDS 접속 오류 해결용 보안 그룹 규칙 추가 (예시)
aws ec2 authorize-security-group-ingress --group-id sg-xxxxxxxx --protocol tcp --port 3306 --cidr 0.0.0.0/0

심화: 자동화와 모니터링도 이렇게 해봤어요

RDS는 CloudWatch 연동이 기본이라 모니터링 설정이 쉬웠는데 EC2 MySQL은 직접 agent 설치하거나 스크립트 만들어야 했거든요. 저는 AWS Systems Manager 세션 매니저로 SSH 없이 접속하는 것도 써봤는데 꽤 편하더라고요.

자동화 측면에선 Terraform이나 CloudFormation으로 RDS 인스턴스 만드는 걸 추천해요. EC2는 AMI 생성, userdata 스크립트 작성, Ansible 같은 도구로 설정 관리해야 해서 복잡하더라고요.

자주 물어보시는 것들

Q. RDS와 EC2 MySQL 중 어느 쪽이 비용 효율적인가요?

A. 초기 운영 비용은 RDS가 조금 더 비싸지만 관리 시간이 줄어들어 장기적으로 효율적일 수 있어요. EC2는 직접 관리 비용이 크니까 인력 리소스가 충분할 때 고려하는 게 좋아요.

Q. 장애 발생 시 복구는 어떻게 다르나요?

A. RDS는 자동 백업과 스냅샷 기능으로 복구가 쉽고 빠릅니다. 반면 EC2는 백업 스크립트를 잘 만들어 두지 않으면 복구가 까다로워요. 그래서 장애 대응을 중요하게 보는 경우 RDS가 유리합니다.

AWS RDS vs EC2 MySQL 어떤 걸 써야 할까 관련 이미지

AWS RDS vs EC2 MySQL 어떤 걸 써야 할까 관련 정보

결국 AWS RDS와 EC2 MySQL 중에 어떤 걸 선택할지는 관리 편의성, 비용, 필요 기능, 그리고 팀 운영 역량에 달려 있더라고요. 저는 운영 편의성 때문에 RDS를 더 선호하지만, 커스텀 세팅이 꼭 필요하면 EC2 MySQL도 나쁘지 않다고 생각해요. 이 글 보면서 선택에 조금이나마 도움이 되었으면 합니다.

Comments