이 페이지에서는 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 콘솔의 할당량 및 시스템 한도 페이지에서 할당량을 확인하고 수정할 수 있습니다. 할당량을 조정하면 변경사항이 몇 분 이내에 적용됩니다. 일일 한도를 설정하거나 업데이트하려면 다음 단계를 따르세요.
- 선택한 프로젝트에 프로젝트 할당량 변경 권한이 있는지 확인합니다.
- Google Cloud 콘솔의 할당량 페이지로 이동합니다.
- 필터 검색창에서 측정항목 필터를 사용하여
earthengine.googleapis.com/daily_eecu_usage_time
를 필터링합니다.Earth Engine compute time (EECU-time) per day in seconds
할당량이 표시되지 않으면 선택한 프로젝트에 Earth Engine API를 사용 설정했는지 확인합니다. - 점 3개로 된 메뉴에서 할당량 수정을 클릭합니다.
- 무제한 체크박스가 선택되어 있으면 선택 해제합니다.
- 새 값 필드에 원하는 EECU-초 한도를 입력합니다. 요청 제출을 클릭합니다.
할당량 보기 및 관리에 관한 자세한 내용은 할당량 보기 및 관리를 참고하세요.
반환된 오류 메시지
일일 한도를 설정한 후 한도를 초과하면 Earth Engine에서 다음 오류 메시지를 반환합니다.
사용량이 'earthengine.googleapis.com/daily_eecu_usage_time'의 맞춤 할당량을 초과했습니다. 이 할당량은 Google Cloud 콘솔(https://console.cloud.google.com/quotas/?project=_)에서 관리자가 조정할 수 있습니다.
할당량을 초과하면 다음 날 할당량이 재설정되거나 관리자가 한도를 늘릴 때까지 Earth Engine 요청이 실패합니다.
세부적인 모니터링 및 알림
일일 한도보다 세부적으로 비용을 관리하고 모니터링해야 하는 경우 다음 레시피에는 더 많은 설정이 필요하지만 workload_tag
및 일괄 작업 수준에서 알림 및 취소가 가능합니다.
이러한 레시피는 실행 중인 요청에 표시되는 진행 중인 EECU 시간 모니터링을 사용합니다. Cloud Monitoring에서 진행 중인 EECU 시간 보고에 대한 자세한 내용은 사용량 모니터링 가이드를 참고하세요.
알림 구성
측정항목이 특정 기준에 도달하면 경고를 표시하도록 Cloud Monitoring에서 알림을 구성할 수 있습니다. Cloud Monitoring 알림 시스템은 매우 유연합니다. 여기에는 Google에서 좋아하는 레시피가 몇 가지 포함되어 있지만, 필요에 따라 맞춤 구성으로 요리해도 됩니다.
레시피: workload_tag
사용량에 대한 채팅 알림
이 예에서는 특정 workload_tag
의 Earth Engine 컴퓨팅 사용량이 기준점을 초과하는 경우 채팅 알림 (예: Google Chat 메시지 또는 Slack 메시지)을 연결하는 방법을 보여줍니다. 프로덕션 서비스용 데이터를 만드는 내보내기 작업이 여러 개 있고 이러한 작업이 합쳐서 특정 EECU 시간을 초과하는 경우 알림을 받으려는 경우에 유용할 수 있습니다.
- Cloud 콘솔의 Cloud Monitoring 섹션에서 알림 페이지로 이동합니다.
- '정책 만들기'를 선택하여 새 알림 정책을 구성합니다.
- 측정항목을 선택합니다.
- 진행 중인 EECU-초는 대기 중인(아직 성공하지 않은) 컴퓨팅 시간(초)을 나타냅니다.
- 측정항목을 보려면 '활성' 필터를 선택 해제해야 할 수 있습니다.
- 필터를 추가합니다.
workload_tag == your_workload_tag_value
를 사용하여 특정 워크로드 태그로 필터링합니다.compute_type = batch
또는compute_type = online
를 사용하여 특정 유형의 계산으로 필터링합니다.
- 적절한 '롤링 기간' 값을 선택합니다. 확실하지 않으면
5 min
을 사용하세요. - '순환 기간 함수' 메뉴에서 '합계'를 선택합니다.
- 알림 트리거를 선택하고 이름을 지정합니다.
- 알림 채널을 선택합니다.
- 이 레시피에서는 모달 창에서 '알림 채널 관리'를 선택한 다음 '새로 추가'를 선택하여 Google Chat의 스페이스 ID를 붙여넣습니다. 이 ID는 채팅을 볼 때 Gmail 또는 Chat 페이지의 URL에서 확인할 수 있습니다.
- Google Chat을 사용하는 경우
@Google Cloud Monitoring
를 입력하고 앱을 선택하여 스페이스에 알림 앱을 추가해야 합니다 (조직에서 허용하는 경우).
- 관련 정책 및 심각도 라벨을 선택합니다.
- 짧은 문서 스니펫을 작성합니다.
- 새 알림 정책을 게시합니다.
설정되면 프로젝트의 기준이 초과될 때마다 채팅 스페이스에 알림이 표시됩니다.
레시피: 진행 중인 EECU 시간의 총계에 대한 이메일 알림 받기
채팅 알림 레시피를 따르되 다음 두 가지를 변경합니다.
- 모든 값을 볼 수 있도록
workload_tag
필터를 추가하는 단계를 건너뜁니다. - 알림 채널을 선택할 때 채팅 채널을 구성하는 대신 이메일 주소를 추가합니다.
알림 지연 시간 및 타이밍
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