이게 왜 필요할까?
이 글의 고민은 아래의 생각에서 시작한다.
"나는 DB를 좀 더 쉽게 쓰고싶어."
어플리케이션을 좀 구축해본 사람이라면 느끼는 부분이 있다.
어떠한 어플리케이션을 만드느냐에 따라 서버 구축의 형태는 다 다를 수 있다는 점이다.
나는 개인적으로 서버가 존재하지 않는 어플리케이션을 만들고자 하는 열망이 있다.
실제로 서버가 존재하지 않는 어플리케이션이 한 해 영업이익 100억을 돌파하는 경우를 봤기 때문이다.
근데 그건 그렇다쳐도 서버가 존재하지 않으면 만들 수 있는 어플리케이션이 한정적인건 변함없는 사실이다.
그럴때 서버를 어떻게 구축할 지에 대한 고민은 빠지지 않는다.
그럴때마다 아래의 일련의 고민이 튀어나온다.
"간단하게 만들거라 서버가 필요하긴 한데 전기세 감당하기도 싫고 서버에 대해 신경쓰고 싶지도 않다."
"내가 직접 서버에 DB 구축하기는 싫고 다른 곳의 자원을 쓰면 좋겠는데"
"기존 DB들은 설정하기까지가 너무 복잡한데 더 쉽게 사용할 수 있게 SaaS 형태로 DB만을 제공하는 업체는 없을까?"
그래서 결론적으로 데이터베이스만을 클라우드로서 제공하는 곳을 몇가지 소개해보려고 한다.
그리고 우선 시작이 반이라고 간단한 어플리케이션을 만들기 위한 프리티어에 대해 집중적으로 살펴보고자 한다.
AWS, Google Cloud, Azure
가장 유명한 클라우드 서비스다.
각각의 플랫폼들은 Cloud Database Service만을 따로 제공하는데, AWS의 RDS가 대표적인 예다.
다만 모든 플랫폼이 기간 제한을 가지고 있다. 그리고 RDBMS를 사용한다.(아마도?)
- AWS는 12개월
- Google Cloud는 3개월
- Azure는 12개월
기간만 사용할 수 있다.
Google Cloud인 경우 특정 Region(미국)으로 진행할 경우 평생 무료 Free Tier를 제공받을 수 있지만 해외 서버라는 특징으로 인해 속도 이슈는 어쩔 수 없을 것이다.
Firebase
Firebase는 모바일 및 웹 애플리케이션 개발에 특화되어있는 플랫폼이며 클라우드 데이터베이스 및 이외에 다양한 기능을 제공하고 있다.
그래서 상대적으로 전체 어플리케이션보다는 모바일만 특정해서 겨냥한 플랫폼이기 때문에 웹에서 검색할 수 있는 가이드 문서가 상대적으로 한정적이다.
취업 포트폴리오가 목적이라면 Firebase를 쓰는 것은 좋지 않을 수 있다.
이유는 단순하다. 회사에서는 Firebase를 쓸 일이 거의 없으니까.
RealTime Database VS Cloud Firestore
Firebase에서는 Realtime Database와 Cloud Firestore가 2종류가 존재한다.
Firebase를 사용하려고 들어가보면 아래 사진 처럼 사용 목적에 따라 어떤 것을 선택할 지 도와준다.
근데 사실 대부분은 Cloud Firestore를 선택하는 것이 좋다.
왜냐면 기능이 Realtime Database보다 많기 때문이다.
그럼에도 불구하고 Realtime Database를 선택할 일이 존재한다.
이유는 Cloud Firestore는 프리티어 기준 월간 최대 읽기 작업 수는 50,000회, 쓰기 작업 수는 20,000회를 넘으면 사용을 못하지만 Realtime Database는 월간 최대 다운로드 용량은 10GB로 Cloud Firestore처럼 접근 횟수로 계산하는 방식이 아니기 때문에 Database의 레코드의 크기가 작다면 오히려 Realtime Database를 선택하는게 더 좋을 수도 있다.
요금 부과 체계
- 두 종류의 데이터베이스 모두 무료 제공량이 존재하고 제공량을 초과할 시 AWS 처럼 이용금액이 청구되거나 하는 방식이 아니라 사용 불가 처리되어 해당 DB를 사용하고 있는 어플리케이션의 DB가 죽는다고 보면된다.
- 만약 유료 결제해서 사용하려고 하면 가격이 평균적으로 AWS보다 비싸다고 한다.(
이러니 쓰는 사람이 한정적이지)
Supabase
과거에는 Heroku에서 PostgreSql를 Cloud Database를 제공했는데 현재는 제공하지 않는다.
비슷하게 제공하는 플랫폼이 존재하는데 Supabase다.
만약에 PostgreSql를 사용 할 목적이라면 나쁘지않겠는데 맨 밑줄에 나온
"무료 프로젝트는 1주일 동안 활동이 없으면 일시 중지됩니다."라는 말이 누군가에게는 단점처럼 느껴질 수도 있겠다.
Supabase 역시 기간 제한은 없어보인다.
MongoDB Atlas
MongoDB Atlas는 위의 플랫폼들과 조금은 성질이 다르다.
왜냐면 데이터베이스 만을 위한 클라우드 서비스다.
그리고 AWS, Azure에서 제공되는 RDBMS가 아닌 NoSQL 방식을 따른다.
Atlas는 다른 플랫폼과 다르게 평생 무료로 사용 가능하고 Atlas에 연결이 60일 동안 존재하지 않으면 일시중지된다.
AWS, Google Cloud, Azure에서 연동 사용 가능하다.
Atlas에서 Cluster를 만들고나면 어떠한 방식으로 Atlas에 연결할건지에 대한 선택 창을 아래처럼 보여준다.
기본적으로 Node.js나 Java에서 백단에서 연결할 수 있도록 제공해준다.
그 외에도 Serverless 형태로 연결할 수 있는 방식도 존재한다.
의미가 꽤나 중의적이다.
Serverless의 뜻은 서버가 실제로는 존재하나 서버가 없는 것처럼 손쉽게 구현이 가능하도록 도와준다라는 뜻이다.
실제로 그렇게 구축을 할 수도 있는 반면에 말 그대로 서버가 존재하지 않고 프론트엔드에서만 연결하는 것도 지원해준다.
그 방법은 App Services를 만들어서 Realm SDKs를 이용하거나 HTTPS Endpoints를 연결해서 사용자가 API 요청을하면 좌측 메뉴에 설정된 Function을 따라 DB에 접근할 수 있도록 도와준다.
이제 각자 성향에 맞게 골라서 사용하면 될 듯 하다.
'🕸️ Web' 카테고리의 다른 글
HTTP/1.1 vs HTTP/2 - 동시 요청 처리 방법에 따른 대용량 트래픽 처리 (0) | 2025.01.21 |
---|---|
Cloud Database Service(2) - Firebase의 Realtime Database 규칙 (0) | 2023.05.24 |
SOP(Same Origin Policy)와 CORS(Cross Origin Resource Sharing)의 차이 (0) | 2022.07.20 |
최초의 웹과 스프링이 나오기까지 (2) (0) | 2022.02.10 |
최초의 웹과 스프링이 나오기까지 (1) (0) | 2022.02.10 |