비활성 클러스터에 대해 Google Cloud 요금이 발생하지 않도록 하려면 클러스터를 만들 때 Dataproc의 클러스터 예약 삭제 기능을 사용합니다. 이 기능은 다음 이벤트가 발생할 때 클러스터를 삭제하는 옵션을 제공합니다.
- 지정된 클러스터 유휴 기간 후에
- 지정된 향후 시점에
- 클러스터 만들기 요청을 제출한 시점부터 시작된 지정된 기간 후에
예약 삭제를 사용 중지하는 작업
클러스터가 실행되는 동안 다음 작업은 사용 중지 작업을 되돌릴 때까지 예약 삭제를 사용 중지합니다.
- Dataproc 서비스 에이전트 서비스 계정에서 IAM Dataproc 서비스 에이전트 역할 삭제
- 클러스터 프로젝트에서 Dataproc API 사용 중지
- 예약 삭제 클러스터 VM에서 Compute Engine VM 삭제 보호 사용 설정
- Dataproc 서비스 에이전트 서비스 계정(컨트롤 플레인 ID)이 경계 내에 있지 않은 경우 VPC 서비스 제어 사용 설정
클러스터 유휴 시간 계산
예약 삭제를 사용하여 지정된 클러스터 유휴 시간 후에 클러스터를 삭제할 수 있습니다. 유휴 시간은 클러스터가 생성되고 클러스터 프로비저닝이 완료된 후에 계산됩니다. 유휴 시간 계산은 클러스터에 실행 중인 작업이 없을 때 시작됩니다.
dataproc:dataproc.cluster-ttl.consider-yarn-activity
클러스터 속성은 다음과 같이 클러스터 유휴 시간 계산에 영향을 미칩니다.
- 이 속성은 기본적으로 사용 설정 (
true
로 설정됨) 됩니다. - 이 속성을 사용 설정된 경우 클러스터 유휴 시간 계산을 시작하고 구현을 지속하기 위해서는 YARN 및 Dataproc Jobs API가 모두 유휴 상태여야 합니다.
- YARN 활동에는 보류 중 및 실행 중인 YARN 애플리케이션이 포함됩니다.
- Dataproc Jobs API 활동에는 Dataproc Jobs API에 제출된 보류 중 및 실행 중인 작업이 포함됩니다.
- 이 속성을
false
로 설정하면 Dataproc Jobs API 활동이 유휴 상태일 때만 클러스터 유휴 시간 계산이 시작되고 계속됩니다.
dataproc:dataproc.cluster-ttl.consider-yarn-activity
속성은 1.4.64
, 1.5.39
, 2.0.13
이후에 출시된 이미지 버전으로 생성된 클러스터에 적용됩니다. 이전 이미지 버전으로 생성된 클러스터의 경우 Dataproc Jobs API 활동만 클러스터 유휴 시간 계산에 고려됩니다.
클러스터 예약 삭제 사용
Google Cloud CLI, Dataproc API 또는 Google Cloud 콘솔을 사용하여 클러스터를 만들 때 예약 삭제 값을 설정할 수 있습니다. 클러스터를 만든 후 클러스터를 업데이트하여 클러스터에 이전에 설정된 예약 삭제 값을 변경하거나 삭제할 수 있습니다.
gcloud CLI
다음 표에 나열된 플래그와 값을 gcloud dataproc clusters create
또는 gcloud dataproc clusters update
명령어에 전달하여 클러스터에서 예약 삭제 값을 만들거나 업데이트할 수 있습니다.
gcloud CLI 플래그 | 설명 | 값 세부사항 | 최솟값 | 최댓값 |
---|---|---|---|---|
--delete-max-idle 1 |
클러스터 생성 및 클러스터 업데이트 명령어에 적용됩니다.
클러스터가 생성 또는 업데이트되고 사용 준비 상태가 된 후 클러스터가 유휴 상태가 된 시간부터 클러스터 삭제가 시작되는 순간까지의 기간입니다. 기간은 IntegerUnit 형식으로 제공합니다. 여기서 단위로는 's, m, h, d'(초, 분, 시, 일)를 사용할 수 있습니다. 예시: '30m'(클러스터가 유휴 상태가 된 후 30분) |
1초 | 5분 | 14일 |
--no-delete-max-idle |
클러스터 업데이트 명령어에만 적용됩니다.
이전 delete-max-idle 플래그 설정에 의한 클러스터 삭제를 취소합니다. |
해당 없음 | 해당 없음 | 해당 없음 |
--delete-expiration-time 2 |
클러스터 생성 및 클러스터 업데이트 명령어에 적용됩니다. 클러스터 삭제가 시작되는 시간으로 ISO 8601 datetime 형식입니다. 올바른 형식으로 datetime을 생성하려면 Timestamp Generator를 사용하면 됩니다. 예를 들어 '2017-08-22T13:31:48-08:00'은 만료 시간을 UTC -8:00 시간대의 13:21:48로 지정합니다. | 1초 | 현재 시간부터 10분 | 현재 시간부터 14일 |
--delete-max-age 2 |
클러스터 생성 및 클러스터 업데이트 명령어에 적용됩니다.
클러스터 만들기 요청을 제출하는 시점부터 클러스터 삭제가 시작되는 시점까지의 기간입니다. 기간은 IntegerUnit 형식으로 제공합니다. 여기서 단위로는 's, m, h, d'(초, 분, 시, 일)를 사용할 수 있습니다. 예시: '30m'(지금부터 30분) 또는 '1d'(지금부터 1일) |
1초 | 10분 | 14일 |
--no-delete-max-age |
클러스터 업데이트 명령어에만 적용됩니다.
이전 delete-max-age 또는 delete-expiration-time 플래그 설정에 따라 클러스터 자동 삭제를 취소합니다. |
해당 사항 없음 | 해당 사항 없음 | 해당 사항 없음 |
- 클러스터 생성 또는 업데이트 요청에
delete-max-idle
플래그를delete-expiration-time
또는delete-max-age
플래그와 함께 전달할 수 있습니다. 가장 먼저 충족하는 플래그에 따라 클러스터가 삭제됩니다. delete-expiration-time
플래그 또는delete-max-age
플래그를 클러스터 생성 또는 업데이트 명령어에 전달할 수 있지만, 둘 다 전달할 수는 없습니다.
클러스터 생성 예시:
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --delete-expiration-time=TIME \ ... other flags ...
클러스터 업데이트 예시:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --no-delete-max-age \ ... other flags
REST API
Dataproc cluster.create 또는 cluster.patch API 요청의 일부로 다음 표에 나열된 Dataproc API ClusterLifecycleConfig 필드와 값을 설정하여 클러스터에서 예약 삭제 값을 만들거나 업데이트할 수 있습니다.
API 필드 | 설명 | 값 세부사항 | 최솟값 | 최댓값 |
---|---|---|---|---|
idleDeleteTtl 1 |
클러스터 생성 및 클러스터 업데이트 명령어에 적용됩니다.
클러스터가 생성 또는 업데이트되고 사용 준비 상태가 된 후 클러스터가 유휴 상태가 된 시간부터 클러스터 삭제가 시작되는 순간까지의 기간입니다. 새 값으로 클러스터를 업데이트할 때 새 값은 이전에 설정된 값보다 커야 합니다.
초 단위 기간을 소수점 아래 9자리까지 지정할 수 있으며 's'로 끝냅니다. 예시: '3.5s'
이전에 설정된 idleDeleteTtl 값을 취소하려면 빈 기간을 제출합니다. |
1초 | 5분 | 14일 |
autoDeleteTime 2 |
클러스터 생성 및 클러스터 업데이트 명령어에 적용됩니다.
클러스터 삭제가 시작되는 시간입니다. 새 시간으로 클러스터를 업데이트할 때 새 시간은 이전에 설정된 시간 이후여야 합니다. 업데이트 시 autoDeleteTime 에 빈 값이 설정되면 기존 자동 삭제가 취소됩니다.RFC 3339 UTC 'Zulu' 형식의 타임스탬프로, 나노초 수준의 정밀도를 나타냅니다. 예시: '2014-10-02T15:01:23.045123456Z' |
1초 | 현재 시간부터 10분 | 현재 시간부터 14일 |
autoDeleteTtl 2 |
클러스터 만들기 또는 업데이트 요청을 제출하는 시점부터 클러스터 삭제가 시작되는 시점까지의 기간입니다. 클러스터를 업데이트할 때 새 예약 삭제 시간(업데이트 요청 시간 + 새 기간)은 이전에 설정된 클러스터 삭제 시간 이후여야 합니다. 이전에 설정된 autoDeleteTtl 값을 취소하려면 빈 값을 제출합니다.
초 단위 시간을 소수점 아래 9자리까지 지정할 수 있으며 's'로 끝냅니다.
예시: '3.5s' |
1초 | 10분 | 14일 |
- 클러스터 생성 또는 업데이트 요청에서
idleDeleteTtl
와autoDeleteTime
또는autoDeleteTtl
중 하나를 함께 설정하거나 업데이트할 수 있습니다. 가장 먼저 충족하는 플래그에 따라 클러스터가 삭제됩니다. - 요청에서
autoDeleteTime
또는autoDeleteTtl
중 하나를 설정하거나 업데이트할 수 있지만 둘 다 설정하거나 업데이트할 수는 없습니다.
콘솔
- Dataproc 클러스터 만들기 페이지를 엽니다.
- 클러스터 맞춤설정 패널을 선택합니다.
- 예약 삭제 섹션에서 클러스터에 적용할 옵션을 선택합니다.
예약 삭제 클러스터 설정 보기
gcloud CLI
gcloud dataproc clusters list
명령어를 사용하여 클러스터에 예약 삭제가 사용 설정되었는지 확인할 수 있습니다.
gcloud dataproc clusters list \ --region=REGION
... NAME WORKER_COUNT ... SCHEDULED_DELETE CLUSTER_ID NUMBER ... enabled ...
gcloud dataproc clusters describe
명령어를 사용하여 클러스터 LifecycleConfig
예약 삭제 설정을 확인할 수 있습니다.
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
... lifecycleConfig: autoDeleteTime: '2018-11-28T19:33:48.146Z' idleDeleteTtl: 1800s idleStartTime: '2018-11-28T18:33:48.146Z' ...
autoDeleteTime
및 idleDeleteTtl
은 클러스터에 설정된 예약 삭제 구성 값입니다.
Dataproc은 최신 클러스터 유휴 시작 시간인 idleStartTime
값을 생성합니다. Dataproc은 클러스터가 idleStartTime
+ idleDeleteTtl
에 유휴 상태로 유지되면 클러스터를 삭제합니다.
REST API
clusters.list 요청을 수행하여 클러스터에 예약 삭제가 사용 설정되었는지 확인할 수 있습니다.
콘솔
- Google Cloud 콘솔의 Dataproc 클러스터 페이지에서 클러스터 이름을 선택하여 클러스터 예약 삭제 설정을 볼 수 있습니다.
- 클러스터 세부정보 페이지에서 구성 탭을 선택합니다. 클러스터 구성 목록으로 이동하여 예약 삭제 설정을 확인합니다.