고급 청구 알림 및 로직 설정

간단한 예산 알림 이메일을 사용하면 청구 관련 업데이트를 비교적 쉽게 받을 수 있지만 맞춤설정된 로직이 포함된 보다 정교한 알림을 만들어야 하는 경우도 있습니다. 이 경우 고려해 볼 만한 두 가지 방법을 소개합니다.

  • Cloud Monitoring를 사용하여 더 정교하고 시기적절한 알림 만들기

  • 결제 Pub/Sub 알림을 Cloud 함수를 사용하여 애플리케이션의 지출

이 두 방법에는 사용자가 해야 할 작업이 많지만 수신되는 알림 유형과 응답하는 방식을 정확하게 제어할 수 있습니다.

이 페이지에서는 각 방식을 간략히 설명합니다.

Cloud Monitoring로 더욱 정교한 알림 만들기

간단한 예산 알림 이메일을 사용하면 전체 청구 금액이 특정 기준에 도달했을 때 이를 알 수 있습니다. 하지만 예산에 큰 영향을 미치기 전에 개별 서비스가 예기치 않게 증가할지 여부를 파악해야 하는 경우도 있습니다. 이와 같은 보다 정교한 사용 사례의 경우 Google Cloud 도구인 Cloud Monitoring에 대해 알아보세요 사용할 수 있습니다

Cloud Monitoring는 다음과 같은 여러 유형의 알림에 유용합니다.

  • 프로젝트에서 사용하는 리소스를 사용할 수 없는 경우 Firebase 및 Google Cloud 서비스뿐 아니라 AWS)

  • Cloud Functions 등의 서비스가 예상보다 오래 걸리는 경우 대응

  • Cloud Storage 버킷, Realtime Database 인스턴스 또는 Cloud Firestore 인스턴스가 너무 많은 요청을 거부하고 있습니다. 이는 Firebase Security Rules가 잘못되었을 수 있음).

  • 일부 Firebase 제품에서 사용하는 리소스 양이 증가하여 특정 기준을 초과한 경우

Cloud Monitoring을(를) 통해 만든 알림은 일반적으로 다음보다 더 빠르게 전송됩니다. 간단한 예산 알림 이메일은 일반적으로 하루에 한 번 전송됩니다. 알림은 SMS 메시지, Slack 채널 메시지, PagerDuty 알림, 웹훅 등의 형식일 수 있습니다. 이러한 옵션을 사용하면 더 우수하며 활용 가능한 가시성을 지닌 알림을 보낼 수 있습니다.

Cloud Monitoring 사용

Cloud Monitoring를 시작할 때는 Firebase/Google Cloud 프로젝트의 커스텀 측정항목 그래프를 만들어 사용량을 시각화할 수 있는 측정항목 탐색기로 시작하는 것이 좋습니다.

구체적으로는 Cloud Firestore, Realtime Database 또는 Cloud 함수 인스턴스 청구에 영향을 미칠 수 있는 이러한 제품의 사용량 정보(예: 문서 읽기 수, 전송한 바이트 또는 함수 호출 수)를 확인할 수 있습니다.

측정항목 탐색기에서 리소스 사용량을 시각화하는 데 익숙해졌다면 가장 관심이 있는 측정항목에 대한 알림 정책을 만드는 것이 좋습니다. 다음은 몇 가지 알림 정책의 예시입니다.

  • 30분 동안의 문서 읽기 수가 특정 값보다 큰 경우

  • 특정 리소스의 사용량(예: 함수 호출)이 특정 기간 동안 급증하는 것으로 보이는 경우

추가 청구 로직 만들기

예산이 특정 기준에 도달하면 예산 알림에서 자동으로 이메일을 보내지만 지출 증가에 대한 보다 정교한 알림이나 프로그래매틱 방식의 대응에서는 Google Cloud Pub/Sub 메시지를 기반으로 하는 추가 커스텀 로직을 설정하는 것이 좋습니다.

예를 들어 지출 수준에 따라 Slack 채널에 알림을 보내거나, 문자 메시지로 알림을 보내거나, 앱 또는 프로젝트에 프로그래매틱 변경사항을 적용할 수 있습니다.

Pub/Sub는 다른 서비스에서 전송할 수 있게 해주는 메시지 전달 서비스입니다. 비동기 방식으로 메시지(일반적으로 JSON 데이터 형식)를 Pub/Sub 주제 채널을 통해 추천됩니다. Cloud Functions와 같은 승인된 서비스를 설정하여 이러한 주제의 메시지를 리슨하고 데이터를 바탕으로 적절한 조치를 취할 수 있습니다.

청구에 관한 Pub/Sub 알림은 청구 사용량의 변경 여부와 상관없이 20분마다 한 번씩 전송되며 이는 스테이트리스(Stateless)(즉, 이전 상황에 관한 컨텍스트를 제공하지 않음) 알림입니다. 만약 시간 경과에 따른 비정상적인 지출 증가를 추적하거나 지출하지 않도록 하려면 이전 주기의 Cloud Firestore 또는 Realtime Database와 같은 데이터베이스를 사용하여 데이터를 직접 처리할 수 있습니다.

Cloud Functions에서 Pub/Sub 주제 사용

다음 페이지를 방문하여 결제 데이터에 대한 Pub/Sub 주제를 설정할 수 있습니다. Google Cloud 콘솔( 결제 > 예산 및 알림)을 선택한 다음 이 예산에 Pub/Sub 주제를 연결하세요. 그러면 나중에 리슨할 수 있는 Pub/Sub 주제가 생성됩니다. 자세한 단계는 전체 문서를 참조하세요.

Pub/Sub 결제 주제를 만든 후 Cloud 함수가 이 주제를 리슨하고 그에 따라 데이터에 맞는 조치를 취합니다. 데이터는 JSON 데이터로 전송되며 지금까지 지출한 금액, 예산 금액, 현재 결제 주기의 시작 날짜와 같은 유용한 정보가 데이터에 포함됩니다.

이 데이터를 받는 방법에 관한 자세한 내용은 Google Cloud 문서에 설명되어 있습니다. Cloud Functions를 사용합니다 하지만 Cloud Functions for Firebase를 사용하여 함수를 배포하는 경우의 일반적인 절차는 더 간단합니다(Firebase 문서 참고). 이 동영상을 참고하세요. 를 참조하세요.

이 데이터를 수신한 후 다양한 방법으로 이에 응답할 수 있습니다. 몇 가지 옵션은 다음과 같습니다.

  • 지출이 특정 기준에 도달하면 Slack 채널 또는 Discord 채널에 알림을 보내거나 문자 메시지를 보냅니다.

  • 이전 데이터와 비교하여 지출을 분석하고 비정상적인 지출이 있을 경우 알림을 보냅니다.

  • 청구 금액이 과도하게 증가한 경우 Remote Config를 통해 앱에 변경사항을 적용합니다.

  • 계정에서 청구 서비스를 프로그래매틱 방식으로 삭제하여 Firebase 프로젝트를 완전히 사용 중지합니다.