10. Create a database on the cloud server
10.1. What is H2DB?
깃 정리를 할 때는 자세히 남기지 않았는데 section3에서 JPA를 공부할 때 h2라는 web console을 사용했습니다.
이번 섹션에서는 AWS에서 제공하는 RDS에 대해 알아볼텐데, 그 전에 이 데이터베이스와 RDS의 차이가 뭔지 알아보겠습니다!
데이터베이스는 영구 데이터베이스와 인 메모리 데이터베이스로 나누어 생각할 수 있습니다.
- 영구 데이터베이스: 실제 메모리에 데이터를 유지하므로 서버가 반송되더라도 다시 사용할 수 있음
- 인 메모리 데이터베이스: 데이터는 시스템 메모리에 저장되며 프로그램을 닫으면 데이터가 손실됨
H2DB는 자바 기반의 오픈소스 관계형 데이터베이스 관리 시스템입니다. 서버 모드와 임베디드 모드의 인메모리 DB 기능을 지원하고 브라우저 기반의 콘솔모드를 이용할 수 있으며 용량이 가볍습니다. 또한 표준 SQL 대부분 문법이 지원됩니다. 가볍고 빠르며 IntelliJ와의 호환성도 좋기 때문에 어플리케이션 개발 단계의 테스트 DB로써 많이 사용됩니다.
하지만 램에 데이터를 저장하다보니 웹서버를 재부팅하면 기존 데이터가 사라지고 저용량만 지원한다는 한계가 있습니다.
10.2. What is RDS?
만약 직접 데이터베이스를 설치하면 모니터링, 알람, 백업 등을 구성해야 하고 이는 시스템 관리를 복잡하게 만듭니다.
Amazon Web Service에서는 클라우드 기반의 Relational Database Service(RDS)라는 데이터베이스 관리 시스템을 제공합니다. RDS를 사용하면 개발자는 데이터베이스 설정, 패치 및 백업과 같은 운영 작업을 자동화해 개발 작업에만 집중할 수 있습니다. 만약 데이터베이스에 갑자기 많은 양의 데이터가 쌓여도 RDS를 사용하면 과금으로 손쉽게 용량을 늘릴 수 있습니다! 그러나 RDS는 과금을 해야 한다는 큰 단점이 있기 때문에 EC2 리눅스 위에 직접 DB를 설치하고 서비스하는 옵션도 생각해볼 수 있겠습니다.
references
* 스프링 부트와 aws로 혼자 구현하는 웹 서비스 - 이동욱님 (👍)
* <https://developerhive.tistory.com/34>
* <https://dololak.tistory.com/285>
'Web Application > Backend' 카테고리의 다른 글
[TIL] Lombok 주의점 (0) | 2021.09.25 |
---|---|
[TIL] gradle, gradle wrapper (0) | 2021.09.25 |
[백엔드 시작하기] 7. 클라우드 서버에 배포하기 (0) | 2021.05.12 |
[백엔드 시작하기] 6. 로그인 기능 구현하기 (0) | 2021.05.12 |
[백엔드 시작하기] 5. 게시판 만들기 (0) | 2021.05.12 |