inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

해결된 질문

360

jd

작성한 질문수 8

3

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

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

java spring aws mysql spring-boot jpa

답변 1

2

최태현

안녕하세요, 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를 사용하면 여러가지 번거로움을 편하게 해결할 수 있다.

 

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

 

 

1

jd

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

패키지 구분에 대해 궁금한게 있습니다

0

25

2

리액트 관련 질문이 있습니다.

0

65

2

스프링부트 버전

0

76

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

59

2

33강. UserLoanHistory의 관계성에 대한 질문

1

56

2

Java JDK 버전 문의의 건

0

135

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

90

3

h2 console 접속했을 테이블 질문

1

67

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

80

2

15강. updateUser() 질문

0

57

2

깃허브 질

0

84

2

여기까지 다 끝냈다고 하셨는데

0

79

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

52

1

spring 개념적인 질문

0

72

2

인텔리제이 샘플코드 실행 안됨 오류

0

142

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

87

1

마이그레이션 오류입니다.

0

175

3

Whitelabel Error Page 오류가 났습니다.

0

166

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

94

3

궁금한게 있습니다.

0

61

2

DTO 관련

0

70

2

궁금한게 있습니다!

0

69

2