해결된 질문
작성
·
280
답변 1
2
안녕하세요, b_lion님~!! 정말 좋은 질문이십니다~ 👍
결론부터 말씀드리면, 대부분의 애플리케이션은 RDS를 사용하고 있고요!
저희가 RDS를 사용하지 않은 이유는 1) MySQL을 직접 설치해 구성해보는 것을 경험해보기 위해서 2) RDS의 옵션을 하나씩 이해하는 것이 처음 배포를 해볼 때 어렵기 때문이었습니다.
하나씩 설명드려 볼게요! 😊
[왜 RDS를 대부분 사용하는가?]
현재 우리가 배포한 구성은 EC2 서버 한 대에 스프링 서버와 MySQL가 같이 공존하는 형태입니다.
아래 그림과 같죠! 사용자의 요청이 들어오면, 스프링 서버가 받아서 필요한 경우 내부에 있는 MySQL과 통신을 합니다 ㅎㅎㅎ
하지만 사용자가 많아지게 되면, 현재 서버 한 대로는 컴퓨팅 파워가 부족해지는 시점이 옵니다.
이럴 때 생각할 수 있는 전략은 서버 대수를 늘리는 거죠!
예를 들어, EC2 서버 1개를 사용하는 대신 2개, 3개를 쓰는거에요!
그런데 만약 EC2 안에 서버와 MySQL이 같이 있게 된다면
서버도 2개
MySQL도 2개가 됩니다.
이렇게 되면 MySQL 2개는 각자 독립적인 DB가 되고 사용자는 새로고침을 할 때마다 다른 정보를 받아볼 수 있게 되죠. 이것은 정말 큰 문제에요!! 어떤 서버로 LB가 요청을 보내는지에 (어려운 말로 이것을 "라우팅"이라고 합니다) 따라 다른 데이터가 보일 수 있으니까요
그래서 이제 애플리케이션 서버는 여러대를 두되, 하나의 DB만 사용하게 됩니다.
그렇다면 이 하나의 DB가 바로 RDS인가?! 그렇지는 않습니다.
이 하나의 DB를 또 다른 EC2에 설치해서 사용할 수도 있고 (이를 어려운 말로 OnPremise 형태라고 합니다) RDS를 셋업해서 사용할 수도 있어요.
하지만 보통은 RDS를 셋업해서 많이 사용하는데요, 그 이유는 다음과 같습니다.
EC2에 MySQL를 직접 설치하고 관리하는 번거로움
백업도 직접 해줘야 하고, 버전 업데이트 같은 것도 직접 챙겨줘야 하죠.
혹시나 DB도 확장해야 한다면 RDS를 사용하는 것이 훨씬 간결함
서비스가 정말 정말 커지면 DB 역시 여러 인스턴스를 사용해야 하는데, 이 경우 RDS를 사용하는 편이 좋습니다.
여기까지 정리드려 보면 RDS를 사용하는 이유는 다음과 같습니다.
서비스가 커짐에 따라 서버가 확장되면, DB를 하나로 모아야 하고 이때 보통 RDS를 많이 선택한다.
RDS를 사용하면 여러가지 번거로움을 편하게 해결할 수 있다.
답변이 도움이 되었으면 좋겠습니다. 감사합니다! 😊
정말 잘 이해되었습니다! 항상 자세한 답변 너무 감사드립니다!!