Firebase 요금과 무료 용량

Firebase의 무료 용량을 살펴보았습니다. https://firebase.google.com/pricing/

저장 공간은, DB 10GB, 파일 5GB, 호스팅 1GB까지 된답니다. 여유있게 주니까 좋네요. 트래픽은, 매월 DB 10GB, 파일 30GB, 호스팅 10GB입니다. 아마도 outbound만 계산하는 거겠죠, 타 BaaS들이 그렇게 계산하고 있으니.

호스팅 10GB/월이면, 약 300MB/일. 한 페이지에 html/css/js 다 넣어 애플리케이션으로 만들고 이미지는 다른 수단을 이용하여 한번 방문에 8KB 쓴다고 하면, 375,000,000 PV 수용할 수 있겠군요. DB 10GB/월이면, 약 300MB/일. 로그인하고 글 목록 갖고 오는 것 한번 했더니 15번의 요청이 발생하고 26.05KB 쓰는군요. 글 목록/상세 조회하는 것으로 약 11,500번 할 수 있겠군요.

한 방문자가 조회를 5~6회 한다면, 일일 2,000 사용자도 버틸 수 있겠어요.

취미생활 하는 데에는 부족함 없겠군요. ㅎㅎ

그나저나 사용량 확인할 수 있는 페이지가 없는 걸 보면, 요금제는 아직 준비 중인 듯.

Parse, Kinvey, usergrid, Azure Mobile Services 등은 하나의 entity를 저장하면 생성시각을 자동으로 함께 저장합니다. 이런 BaaS들은 대부분 entity의 특정 프로퍼티에 접근할 때 rowData.keyname처럼 접근하는데, Parse의 경우는 rowData.get('comment')처럼 접근합니다. 생성시각 접근할 때에는 Parse는 rowData.createdAt처럼, Kinvey는 rowData._kmd.ect처럼, usergrid는 rowData.created*1000처럼, Azure는 rowData.createdAt처럼 접근합니다. Parse의 경우는 생성시각 같은 프로퍼티에 접근할 때에는 get을 사용하지 않는 예외가 있는 거죠.

Firebase는 entity 생성시각을 자동으로 저장하지 않습니다. 그래서 아래와 같이 명시적으로 정해서 넣어줘야합니다. "createdAt" : {".sv" : "timestamp"} 부분을 주의 깊게 보시기 바랍니다. 서버의 시각을 저장합니다. sv는 Server Value의 줄임말입니다.

curl -X POST -d '{
    "title" : "블로그, 시험 공부",
    "date" : "2004-04-25 14:37:23",
    "author" : "imyaman",
    "text" : "<ul lang=\u0022ko\u0022>\u000A<li>블로그로 전환</li>\u000A<li>시험 공부</li>\u000A</ul>",
    "createdAt" : {".sv" : "timestamp"}
}' 'https://weblog-683a9.firebaseio.com/posts1/.json'