GCE 확장
GCE 확장 (Google Compute Engine)
gce-extensions 확장은 Druid가 Google Compute Engine(GCE)에서 인스턴스를 자동 확장(autoscale)할 수 있게 해줘요. Managed Instance Groups(MIG)을 사용해서 Middle Manager 인스턴스를 늘렸다 줄였다 해요.
출처: 문서
본문
이 Apache Druid 확장을 사용하려면 extensions load list에 gce-extensions를 포함해 주세요.
gce-extensions
현재 이 확장은 Druid가 GCE에서 인스턴스를 자동 확장하게 하는 것만 지원해요.
확장은 GCE의 Managed Instance Groups(이하 MIG)을 통해 인스턴스를 늘리고 줄여요. 이 선택은 머신 구성을 쉽게 하고 관리를 단순화하기 위해 이뤄졌어요.
이런 이유로 이 확장을 사용하려면 다음을 미리 만들어 두어야 해요.
- Middle Manager를 실행하는 데 사용할 올바른 머신 타입과 이미지를 가진 인스턴스 템플릿(instance template)
- 위에서 만든 인스턴스 템플릿을 사용하도록 구성된 MIG
또한 MIG 안의 머신을 재조정(rescale)할 수 있으려면, Overlord가 Compute Engine API의 다음 두 scope를 보장하는 서비스 계정(service account)으로 실행되어야 해요.
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/compute
Overlord Dynamic Configuration
Overlord는 워커 동작을 동적으로 변경할 수 있어요.
JSON 오브젝트는 다음 경로에 POST 요청으로 Overlord에 제출할 수 있어요.
http://<OVERLORD_IP>:<port>/druid/indexer/v1/worker
구성 변경 감사(auditing)를 위한 선택적 헤더 파라미터도 지정할 수 있어요.
| 헤더 파라미터 이름 | 설명 | 기본값 |
|---|---|---|
X-Druid-Author |
구성 변경을 만든 author. | "" |
X-Druid-Comment |
수행 중인 변경을 설명하는 주석. | "" |
샘플 워커 구성 스펙은 아래와 같아요.
{
"autoScaler": {
"envConfig" : {
"numInstances" : 1,
"projectId" : "super-project",
"zoneName" : "us-central-1",
"managedInstanceGroupName" : "druid-middlemanagers"
},
"maxNumWorkers" : 4,
"minNumWorkers" : 2,
"type" : "gce"
}
}
autoscaler의 구성은 꽤 간단해서 두 개의 레벨로만 이루어져 있어요.
외부 레벨은 type(이 경우 항상 gce)과 두 개의 숫자 값인 maxNumWorkers, minNumWorkers를 지정해요. 이 값들은 어떤 순간에도 인스턴스 수가 있어야 하는 경계를 정의해요.
내부 레벨은 envConfig로, 다음을 지정해요.
numInstances: 더 많은 워커를 프로비저닝하는 각 요청에서 몇 개의 워커를 생성할지 지정. 안전하게1로 두면 돼요.projectId: MIG가 있는 프로젝트의 이름을 지정.zoneName: MIG가 있는 세계의 zone을 식별.managedInstanceGroupName: 생성되거나 제거되는 인스턴스를 담고 있는 MIG를 지정.
여기에 명시된 것 외의 파라미터(selectStrategy 등)에 대해서는 overall 문서의 Overlord Dynamic Configuration 섹션을 참고해 주세요.
Known limitations
이 모듈은 내부적으로 API의 ListManagedInstances 호출을 사용해요. API 문서는 이 호출이 pageToken 인자로 페이지네이션될 수 있다고 말하지만, 해당 호출의 응답은 이 파라미터를 설정할 nextPageToken을 제공하지 않아요. 즉, 확장은 한 번에 최대 500개의 Middle Manager 인스턴스(각 호출에서 반환되는 최대 인스턴스 수)로 안전하게 운영될 수 있어요.
더 알아보기 (Learn more)
- Overlord autoscaling 문서에서 동적 워커 구성과 autoscaling 전반을 살펴볼 수 있어요.
- 확장 프로그램 불러오기에서 확장 load list에 추가하는 방법을 확인해 보세요.