데이터베이스 사용량 모니터링

Firebase 프로젝트 관리의 일환으로 실시간 데이터베이스의 리소스 사용량(예: 연결된 사용자 수, 데이터베이스에서 사용하는 저장용량)과 이 사용량이 청구서에 미치는 영향을 검토하는 것이 좋습니다.

실시간 데이터베이스 청구 사용량을 검토하려면 사용량 및 결제 대시보드를 확인하세요. 청구에 대한 자세한 내용은 실시간 데이터베이스 청구 이해를 참조하세요.

리소스 사용량의 경우 Firebase Console의 데이터베이스 사용량 탭과 Cloud Monitoring을 통해 제공되는 측정항목이 실시간 데이터베이스 사용량을 모니터링하는 데 도움이 됩니다.

Firebase Console

현재 실시간 데이터베이스 연결과 데이터 사용량을 보려면 Firebase Console에서 사용량 탭을 확인하세요. 현재 결제 기간, 지난 30일, 지난 24시간 동안의 사용량을 확인할 수 있습니다.

Firebase는 다음 측정항목에 대한 사용량 통계를 보여줍니다.

  • 연결: 현재 열려 있는 데이터베이스 실시간 동시 연결 수입니다. 여기에는 WebSocket, 장기 폴링, HTML 서버 전송 이벤트와 같은 실시간 연결이 포함됩니다. RESTful 요청은 포함되지 않습니다.
  • 저장용량: 데이터베이스에 저장된 데이터의 양입니다. Firebase 호스팅 또는 다른 Firebase 제품을 통해 저장된 데이터는 포함되지 않습니다.
  • 다운로드: 프로토콜 및 암호화 오버헤드를 포함하여 데이터베이스에서 다운로드한 모든 바이트입니다.
  • 로드: 이 그래프는 지정된 1분 간격 동안 요청을 처리하는 데 데이터베이스를 얼마나 사용하는지 보여줍니다. 데이터베이스가 100%에 가까워지면 성능 문제가 발생할 수 있습니다.

Firebase Console의 실시간 데이터베이스 규칙 모니터링 대시보드

또한 Firebase Console은 규칙 호출을 한눈에 볼 수 있는 유용한 Firebase 보안 규칙 평가 대시보드를 제공합니다. Cloud Monitoring의 자세한 분석으로 이 대시보드를 보완할 수 있습니다.

자세한 내용은 Cloud Monitoring의 보안 규칙 모니터링을 참조하세요.

Firebase Console의 실시간 데이터베이스 사용량 대시보드입니다.

Cloud Monitoring

사용량 측정항목

Cloud Monitoring을 사용하여 청구 사용량을 모니터링하려면 다음 측정항목을 추적하세요. 모든 측정항목 유형의 이름은 firebasedatabase.googleapis.com/으로 시작합니다.

측정항목 이름 설명
전송된 페이로드 바이트 수

network/sent_payload_bytes_count: 이 측정항목은 데이터베이스 작업(가져오기, 쿼리, 쓰기, 실시간 리스너 업데이트, 브로드캐스트 등)에서 요청된 데이터의 크기를 나타냅니다. 연결 오버헤드(프로토콜 또는 암호화)는 포함되지 않습니다. 'sent_payload_bytes_count'는 발신 대역폭 비용에 반영되지만 총 청구 비용에는 적용되지 않습니다. 데이터베이스에서 요청에 대한 응답으로 전송된 데이터의 추정치이지만 실제로 전송된 데이터가 아니라 요청된 데이터의 페이로드 크기를 측정하므로 정확하지 않을 때도 있습니다.

전송된 페이로드 및 프로토콜 바이트 수

network/sent_payload_and_protocol_bytes_count. 이 측정항목은 위에서 설명한 페이로드 데이터 크기와 연결에 필요한 프로토콜 오버헤드(예: HTTP 헤더, WebSocket 프레임, Firebase 실시간 프로토콜 프레임) 크기를 나타냅니다. 보안 연결의 암호화 비용에는 반영되지 않습니다.

전송된 바이트 수 network/sent_bytes_count. 이 측정항목은 데이터베이스에서 읽기를 통해 전송된 총 데이터 크기의 추정치를 나타냅니다. 연결 비용을 초래하는 프로토콜 및 암호화 오버헤드 외에도 실제로 클라이언트에 전송되는 페이로드 데이터가 포함됩니다. 실시간 데이터베이스 청구에 총 발신 대역폭이 가장 정확히 반영되는 측정항목입니다.
총 바이트 수

storage/total_bytes: 이 측정항목을 사용하면 데이터베이스에 저장 중인 데이터 양을 모니터링할 수 있습니다. 실시간 데이터베이스에 저장하는 데이터가 청구 비용에 반영됩니다.

대시보드에서 차트의 측정항목을 결합하면 유용한 통계 및 개요를 얻을 수 있습니다. 예를 들어 다음과 같은 조합을 시도해 보세요.

  • 발신 데이터: network/sent_bytes_count, network/sent_payload_and_protocol_bytes_count, network/sent_payload_bytes_count 측정항목을 사용하면 청구서에 예상치 못한 비용을 초래하는 프로토콜 또는 암호화 오버헤드의 잠재적 문제를 발견할 수 있습니다. 요청된 데이터 페이로드 크기와 연결 오버헤드를 나타내는 다른 측정항목 간에 차이가 클 경우 시간 초과 또는 연결 빈도 문제를 해결해야 할 수 있습니다. TLS 세션 티켓을 사용하지 않았다면 이를 발급해 재개된 연결의 SSL 연결 오버헤드를 줄이는 것이 좋습니다.
  • 작업: io/database_load 측정항목을 사용하면 각 작업 유형에서 사용되는 총 데이터베이스 부하량을 확인할 수 있습니다. 다른 작업 유형 문제를 해결하려면 io/database_load를 유형별로 그룹화해야 합니다.
  • 저장용량: storage/limitstorage/total_bytes를 사용하면 실시간 데이터베이스 저장용량 한도와 관련된 스토리지 사용률을 모니터링할 수 있습니다.

Cloud Monitoring을 통해 제공되는 실시간 데이터베이스 측정항목의 전체 목록을 참조하세요.

Cloud Monitoring 작업공간 만들기

Cloud Monitoring을 사용하여 실시간 데이터베이스를 모니터링하려면 프로젝트의 Stackdriver 작업공간을 설정해야 합니다. 작업공간은 하나 이상의 프로젝트로 모니터링 정보를 구성합니다. 작업공간을 설정한 후 커스텀 대시보드 및 알림 정책을 만들 수 있습니다.

  1. Cloud Monitoring 페이지 열기

    프로젝트가 이미 작업공간의 일부인 경우 Cloud Monitoring 페이지가 열립니다. 그렇지 않으면 프로젝트의 작업 공간을 선택합니다.

  2. 새 작업공간 옵션을 선택하거나 기존 작업공간을 선택합니다.

  3. 추가를 클릭합니다. 작업공간이 빌드되면 Cloud Monitoring 페이지가 열립니다.

대시보드 만들기 및 차트 추가

자체 차트 및 대시보드에 Cloud Monitoring에서 수집한 실시간 데이터베이스 측정항목을 표시합니다.

계속하기 전에 프로젝트가 Cloud Monitoring 작업공간의 일부인지 확인하세요.

  1. Cloud Monitoring 페이지에서 작업공간을 열고 대시 보드 페이지로 이동합니다.

    대시보드 페이지로 이동

  2. 대시보드 만들기를 클릭하고 대시보드 이름을 입력합니다.

  3. 오른쪽 상단에서 차트 추가를 클릭합니다.

  4. 차트 추가 창에 차트 제목을 입력합니다. 측정항목 탭을 클릭합니다.

  5. 리소스 유형 및 측정항목 찾기 필드에 Firebase 실시간 데이터베이스를 입력합니다. 자동으로 입력된 드롭다운에서 Firebase 실시간 데이터베이스 측정항목 중 하나를 선택합니다.

  6. 동일한 차트에 측정항목을 더 추가하려면 측정항목 추가를 클릭하고 이전 단계를 반복합니다.

  7. 필요에 따라 차트를 맞춤 설정합니다. 예를 들어 필터 필드에서 + 필터 추가를 클릭합니다. 아래로 스크롤한 후 차트에서 필터링할 측정항목 값 또는 범위를 선택합니다.

  8. 저장을 클릭합니다.

Cloud Monitoring 차트에 대한 자세한 내용은 차트 다루기를 참조하세요.

알림 정책 만들기

실시간 데이터베이스 측정항목을 기반으로 알림 정책을 만들 수 있습니다. 아래 단계를 수행하면 특정 실시간 데이터베이스 측정항목이 특정 기준에 도달할 때마다 이메일을 보내는 알림 정책을 만들 수 있습니다.

계속하기 전에 프로젝트가 Cloud Monitoring 작업공간의 일부인지 확인하세요.

  1. Cloud Monitoring 페이지에서 작업공간을 열고 알림 페이지로 이동합니다.

    새 알림 정책 만들기 페이지로 이동

  2. 정책 만들기를 클릭합니다.

  3. 알림 정책의 이름을 입력합니다.

  4. 실시간 데이터베이스 측정항목 중 하나를 기반으로 알림 조건을 추가합니다. 조건 추가를 클릭합니다.

  5. 타겟을 선택합니다. 리소스 유형 및 측정항목 찾기 필드에 실시간 데이터베이스를 입력합니다. 자동으로 입력된 드롭다운에서 실시간 데이터베이스 측정항목 중 하나를 선택합니다.

  6. 정책 트리거 아래의 드롭다운 필드를 사용하여 알림 조건을 정의합니다.

  7. 알림 정책에 알림 채널을 추가합니다. 알림에서 알림 채널 추가를 클릭합니다. 드롭다운 메뉴에서 이메일을 선택합니다.

  8. 이메일 주소 필드에 이메일을 입력합니다. 추가를 클릭합니다.

  9. 필요한 경우 문서 필드를 작성하여 이메일 알림에 추가 정보를 포함합니다.

  10. 저장을 클릭합니다.

실시간 데이터베이스 사용량이 구성된 기준을 초과하면 이메일 알림이 수신됩니다.

알림 정책에 관한 자세한 내용은 알림 소개를 참조하세요.

다음 단계