인프런 커뮤니티 질문&답변

jd님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

44강. 배포를 위한 프로그램 설치하기

데이터베이스 질문입니다.

해결된 질문

23.09.09 16:29 작성

·

263

3

안녕하세요 태현님, 항상 좋은 강의 감사드립니다.

다름이 아니라 저희는 직접 ec2의 서버 내에서 create table을 해주었는데 aws의 rds 라는 데이터베이스 서비스를 사용하는 것과의 차이가 궁급합니다. 굳이 rds를 빌릴 필요가 없는 것일까요?

답변 1

2

최태현님의 프로필 이미지
최태현
지식공유자

2023. 09. 09. 20:28

안녕하세요, b_lion님~!! 정말 좋은 질문이십니다~ 👍

 

결론부터 말씀드리면, 대부분의 애플리케이션은 RDS를 사용하고 있고요!

저희가 RDS를 사용하지 않은 이유는 1) MySQL을 직접 설치해 구성해보는 것을 경험해보기 위해서 2) RDS의 옵션을 하나씩 이해하는 것이 처음 배포를 해볼 때 어렵기 때문이었습니다.

하나씩 설명드려 볼게요! 😊

 

[왜 RDS를 대부분 사용하는가?]

현재 우리가 배포한 구성은 EC2 서버 한 대에 스프링 서버와 MySQL가 같이 공존하는 형태입니다.

아래 그림과 같죠! 사용자의 요청이 들어오면, 스프링 서버가 받아서 필요한 경우 내부에 있는 MySQL과 통신을 합니다 ㅎㅎㅎ

image

 

하지만 사용자가 많아지게 되면, 현재 서버 한 대로는 컴퓨팅 파워가 부족해지는 시점이 옵니다.

이럴 때 생각할 수 있는 전략은 서버 대수를 늘리는 거죠!

예를 들어, EC2 서버 1개를 사용하는 대신 2개, 3개를 쓰는거에요!

 

그런데 만약 EC2 안에 서버와 MySQL이 같이 있게 된다면

  • 서버도 2개

  • MySQL도 2개가 됩니다.

image

이렇게 되면 MySQL 2개는 각자 독립적인 DB가 되고 사용자는 새로고침을 할 때마다 다른 정보를 받아볼 수 있게 되죠. 이것은 정말 큰 문제에요!! 어떤 서버로 LB가 요청을 보내는지에 (어려운 말로 이것을 "라우팅"이라고 합니다) 따라 다른 데이터가 보일 수 있으니까요

 

그래서 이제 애플리케이션 서버는 여러대를 두되, 하나의 DB만 사용하게 됩니다.

image

그렇다면 이 하나의 DB가 바로 RDS인가?! 그렇지는 않습니다.

이 하나의 DB를 또 다른 EC2에 설치해서 사용할 수도 있고 (이를 어려운 말로 OnPremise 형태라고 합니다) RDS를 셋업해서 사용할 수도 있어요.

 

하지만 보통은 RDS를 셋업해서 많이 사용하는데요, 그 이유는 다음과 같습니다.

  • EC2에 MySQL를 직접 설치하고 관리하는 번거로움

    • 백업도 직접 해줘야 하고, 버전 업데이트 같은 것도 직접 챙겨줘야 하죠.

  • 혹시나 DB도 확장해야 한다면 RDS를 사용하는 것이 훨씬 간결함

    • 서비스가 정말 정말 커지면 DB 역시 여러 인스턴스를 사용해야 하는데, 이 경우 RDS를 사용하는 편이 좋습니다.

 

 

여기까지 정리드려 보면 RDS를 사용하는 이유는 다음과 같습니다.

  1. 서비스가 커짐에 따라 서버가 확장되면, DB를 하나로 모아야 하고 이때 보통 RDS를 많이 선택한다.

  2. RDS를 사용하면 여러가지 번거로움을 편하게 해결할 수 있다.

 

답변이 도움이 되었으면 좋겠습니다. 감사합니다! 😊

 

 

jd님의 프로필 이미지
jd
질문자

2023. 09. 10. 16:25

정말 잘 이해되었습니다! 항상 자세한 답변 너무 감사드립니다!!

jd님의 프로필 이미지

작성한 질문수

질문하기