비용 관리

이 페이지에서는 Earth Engine에서 컴퓨팅 비용을 관리하는 데 도움이 되도록 일일 한도를 설정하고 진행 중인 EECU 시간을 모니터링하는 방법을 설명합니다.

일일 EECU 시간 제한

Earth Engine 비용을 관리하는 데 도움이 되도록 다음 Cloud 할당량을 업데이트하여 프로젝트에서 하루에 사용할 수 있는 EECU 시간의 양을 제한할 수 있습니다.

  • Earth Engine compute time (EECU-time) per day in seconds: 프로젝트의 모든 사용자의 총 EECU 시간을 제한하는 프로젝트 수준 할당량입니다.

설정할 수 있는 Earth Engine 할당량에 대한 자세한 내용은 Earth Engine 할당량을 참고하세요.

일일 한도 설정

Google Cloud 콘솔의 할당량 및 시스템 한도 페이지에서 할당량을 보고 수정할 수 있습니다. 할당량을 조정하면 변경사항이 몇 분 이내에 적용됩니다. 일일 한도를 설정하거나 업데이트하려면 다음 단계를 따르세요.

  1. 선택한 프로젝트에 프로젝트 할당량을 변경할 수 있는 권한 이 있는지 확인합니다.
  2. Google Cloud 콘솔의 할당량 페이지로 이동합니다.
  3. 필터 검색창에서 측정항목 필터를 사용하여 earthengine.googleapis.com/daily_eecu_usage_time을 필터링합니다. Earth Engine compute time (EECU-time) per day in seconds 할당량이 표시되지 않으면 선택한 프로젝트에 Earth Engine API를 사용 설정했는지 확인합니다.
  4. 점 3개로 된 메뉴에서 할당량 수정 을 클릭합니다.
  5. 무제한 체크박스가 선택되어 있으면 선택 해제합니다.
  6. 새 값 필드에 원하는 EECU 초 단위의 한도를 입력합니다. 요청 제출 을 클릭합니다.

할당량 보기 및 관리에 대한 자세한 내용은 할당량 보기 및 관리를 참고하세요.

반환된 오류 메시지

일일 한도를 설정한 후 한도를 초과하면 Earth Engine에서 다음 오류 메시지를 반환합니다.

사용량이 Google Cloud 콘솔에서 관리자가 조정할 수 있는 'earthengine.googleapis.com/daily_eecu_usage_time'의 맞춤 할당량을 초과했습니다.https://console.cloud.google.com/quotas/?project=_

할당량을 초과하면 다음 날 할당량이 재설정되거나 관리자가 한도를 늘릴 때까지 Earth Engine 요청이 실패합니다.

세부 모니터링 및 알림

일일 한도보다 더 세부적으로 비용을 관리하고 모니터링해야 하는 경우 다음 레시피에는 더 많은 설정이 필요하지만 daily limit 및 일괄 작업 수준에서 알림 및 취소를 사용 설정할 수 있습니다.workload_tag

이러한 레시피는 실행 중인 요청에 표시되는 진행 중인 EECU 시간 모니터링을 사용합니다. Cloud Monitoring의 진행 중인 EECU 시간 보고에 대한 자세한 내용은 Monitoring usage 가이드를 참고하세요.

알림 구성

Cloud Monitoring에서 측정항목이 특정 기준에 도달할 때 경고하도록 알림을 구성할 수 있습니다. Cloud Monitoring 알림 시스템은 매우 유연합니다. 여기에서 몇 가지 즐겨찾는 레시피를 모았지만 필요에 맞는 맞춤 구성을 자유롭게 사용해 보세요.

레시피: workload_tag 사용량에 대한 채팅 알림

이 예에서는 지정된 workload_tag의 Earth Engine 컴퓨팅 사용량이 기준을 초과하는 경우 채팅 알림 (예: Google Chat 메시지 또는 Slack 메시지)을 연결하는 방법을 보여줍니다. 프로덕션 서비스의 데이터를 만드는 내보내기 작업 집합이 있고 이러한 작업이 총 EECU 시간을 일정량 초과하여 사용하는 경우 알림을 받는 것이 유용할 수 있습니다.

  1. Cloud 콘솔의 Cloud Monitoring 섹션에서 알림 페이지로 이동합니다.
  2. '정책 만들기'를 선택하여 새 알림 정책을 구성합니다.
  3. 측정항목을 선택합니다.
    • 진행 중인 EECU 초 는 보류 중인(아직 성공하지 않은) 컴퓨팅 시간(초) 수를 나타냅니다.
    • 측정항목을 보려면 '활성' 필터를 선택 해제해야 할 수 있습니다.
  4. 필터를 추가합니다.
    • workload_tag == your_workload_tag_value를 사용하여 특정 워크로드 태그로 필터링합니다.
    • compute_type = batch 또는 compute_type = online을 사용하여 특정 유형의 컴퓨팅으로 필터링합니다.
  5. 적절한 '롤링 창' 값을 선택합니다. 잘 모르겠다면 5 min을 사용하세요.
  6. '롤링 윈도우 함수' 메뉴에서 '합계'를 선택합니다. 알림의 측정항목 구성
  7. 알림 트리거를 선택하고 이름을 지정합니다.
  8. 알림 채널을 선택합니다.
    • 이 레시피에서는 모달 창에서 '알림 채널 관리'를 선택한 후 '새로 추가'를 선택하여 Google Chat의 스페이스 ID를 붙여넣습니다. 이 ID는 채팅을 볼 때 Gmail 또는 Chat 페이지의 URL에서 찾을 수 있습니다.
    • Google Chat을 사용하는 경우 @Google Cloud Monitoring을 입력하고 앱을 선택하여 스페이스에 알림 앱을 추가해야 합니다 (조직에서 허용하는 경우).
  9. 관련 정책 및 심각도 라벨을 선택합니다.
  10. 짧은 문서 스니펫을 작성합니다.
  11. 새 알림 정책을 게시합니다.

설정되면 프로젝트의 기준이 초과될 때마다 채팅 스페이스에서 알림을 받게 됩니다.

레시피: 총 진행 중인 EECU 시간에 대한 이메일 알림 받기

채팅 알림 레시피를 따르되 두 가지 변경사항을 적용합니다.

  1. workload_tag 필터를 추가하는 단계를 건너뛰어 모든 값을 볼 수 있도록 합니다.
  2. 알림 채널을 선택할 때 채팅 채널을 구성하는 대신 이메일 주소를 추가합니다.

알림 지연 시간 및 타이밍

Monitoring 보고서의 전파에는 약간의 지연이 있으므로 즉각적인 알림을 기대해서는 안 됩니다.

리소스 집약적인 작업 취소

한도가 지정된 경우 Earth Engine API를 사용하여 보류 중인 작업 목록을 주기적으로 확인하고 EECU 초 한도를 초과하는 실행 중인 작업의 취소를 요청할 수 있습니다.

레시피: 노트북 또는 로컬 Python 셸에서 코드 스니펫 실행

eecu_seconds_limit = 50 * 60 * 60  # 50 hours
print("Watching for operations to cancel...")
while(True):
  for op in ee.data.listOperations():
    if op['metadata']['state'] == 'RUNNING':
      if op['metadata'].get('batchEecuUsageSeconds', 0) > eecu_seconds_limit:
        print(f"Cancelling operation {op['name']}")
        ee.data.cancelOperation(op['name'])
  time.sleep(10)  # 10 seconds