들어가며
이번 사용자 가이드에서는 많은 고객님께서 문의하시는 '클러스터'와 '노드'에 대해 설명하겠습니다.
Xplenty는 클라우드에서 작동하는 구조이므로 온프레미스형 도구와는 조금 개념이 다릅니다.
그 때문에 운영에 필수적인 개념이 바로 '클러스터'와 '노드'입니다.
여기서는 Xplenty에서의 클러스터와 노드의 역할 및 사용법을 구체적인 예시를 통해 자세히 살펴보겠습니다.
클러스터와 노드란?
Xplenty에서는 데이터 처리 절차(패키지)를 '클러스터'에서 실행합니다.
이때 자주 등장하는 용어가 '클러스터(Cluster)'와 '노드(Node)'입니다. 정의는 아래와 같습니다.
-
클러스터
데이터 처리를 위해 묶인 계산 자원의 집합, 즉 '작업장'입니다.
Xplenty의 클러스터는 하나 이상의 노드로 구성됩니다. -
노드
클러스터를 구성하는 요소로, 실제 데이터 처리를 담당하는 '작업자'와 같은 존재입니다.
Xplenty에서는 1노드당 최대 3개 패키지(병렬 처리 없음)를 동시에 실행할 수 있습니다.
또한 Xplenty 화면에서 클러스터를 생성할 때 다음 두 종류를 선택할 수 있음을 알 수 있습니다.
※ 비활성 시간이란?
클러스터에 작업(실행 중인 패키지)이 없어도 클러스터를 유지하는 시간을 말합니다. 다음 패키지 실행까지 해당 클러스터를 유지할 기간을 결정하는 시간 설정입니다.
노드 시간 확인 및 계산
샌드박스 클러스터는 스케줄러 지정이나 노드 추가가 불가능하다는 점 외에는 사용 시간 제한이 없습니다. 따라서 간편하게 패키지 실행 테스트나 수동 실행 시에 사용합니다.
반면 프로덕션 클러스터는 노드 추가를 통한 대용량 데이터 병렬 처리나 스케줄러에 의한 정기 실행 등 더 우수한 기능을 제공합니다. 더 많은 컴퓨팅 자원을 사용하기 때문에 플랜에 따라 클러스터 사용 시간이 정해져 있습니다.
이 사용 시간을 Xplenty에서는 노드 아워라고 합니다.
이제부터 노드 아워와 그 계산 방식에 대해 살펴보겠습니다.
- 계약 노드 아워 확인
계약 노드 아워 확인은 Heroku의 경우 Heroku Add-On 페이지에 접속하여 integrate.io의 Plan & Price 부분을 참고하시면 됩니다. 플랜별 Included node hours가 프로덕션 클러스터 사용 시간입니다.
직접 계약의 경우 Heroku Add-On 표와 다르므로 담당 영업사원에게 문의해 주시기 바랍니다. - 현재까지 소비된 노드 아워 확인
정해진 노드 아워를 모두 소진하면 기본적으로 프로덕션 클러스터 생성이 불가능해집니다.
이러한 상황을 방지하기 위해 월초부터 현재까지 노드 아워 소비 현황을 확인해야 하며, Settings-Usage(아래 그림 참조)에서 확인할 수 있습니다.
노란색 바는 샌드박스 클러스터 사용 시간이며, 하늘색 바는 프로덕션 클러스터 사용 시간입니다. - 노드 아워 계산 방식
많은 고객분들께서 문의하신 내용 중 하나가 노드 아워 계산입니다.
한 달 동안 데이터 파이프라인을 Xplenty에서 운영하기 위해 필요한 총 노드 아워를 사전에 계산해 두면, 지속적인 데이터 파이프라인 운영에 최적의 플랜을 선택할 수 있습니다.
계산식은 아래와 같이 매우 간단하며, 계산식 샘플 표도 함께 참고해 주세요.
- 노드 아워 계산식
- 클러스터 유지 시간의 계상 단위 - 1시간
- 노드 수 x 유지 시간 = 노드 아워
| 케이스 No | 사용 노드 수 | 클러스터 유지 시간 | 소비 노드 아워 |
| 케이스-1 | 1 | 1~59분 | 1시간 |
| 케이스-2 | 1 | 1시간 1~59분 | 2시간 |
| 케이스-3 | 2 | 30분 | 2시간 |
| 케이스-4 | 2 | 1시간 | 2시간 |
클러스터 유지 시간과 비활성 시간(inactive time)의 관계
클러스터 생성 시나 스케줄러의 클러스터 설정 화면에서 흔히 볼 수 있는 것이 inactive time입니다. 이를 통해 클러스터가 유휴 상태(실행 중인 작업이 없는 상태)를 얼마나 유지할지 결정됩니다. 당사는 이 비활성 시간 조정을 통해 집중적으로 작업을 실행할 것을 권장합니다.
이해하기 쉽게, 예시를 통해 노드 아워 소비가 얼마나 절약되는지 살펴보겠습니다.
- 조건: 실행 시간 10분이 소요되는 작업을 20분 간격으로 실행(1노드 클러스터)
| 케이스 | 클러스터 생성 횟수 | 작업 총 실행 시간 (잡 실행) |
소비 노드 아워 (클러스터 생성) |
| inactive time 설정 없음 | 3회(작업 실행 시마다 생성 후 삭제) | 3회 x 7분 = 21분 | 3회 x 1시간 = 3시간 |
| inactive time 10분 설정 | 1회(작업 실행과 inactive time 10분으로 1회) | 3회 x 7분 = 21분 | 1회 x 1시간 = 1시간 |
간단한 예이지만, inactive time의 적절한 설정으로 2시간을 절약할 수 있었습니다. inactive time을 활용하여 클러스터를 효율적으로 사용해 하실 수 있습니다.
클러스터에 노드 추가를 고려할 때는?
일반적으로 1노드 클러스터(기본 설정)로 충분하다고 생각하지만, 클러스터에 노드 추가를 어떤 기준으로 판단해야 할까요?
노드 추가 기준에 대해 아래와 같이 정리해 보았습니다. 참고가 되셨으면 합니다.
| 기준 | 소스 | 데스티네이션 | 1노드 당 설정값 |
| 패키지 동시 실행 | - | - | 1노드당 최대 3개 패키지까지 |
| 데이터베이스 병렬 처리 |
|
|
parallel connections를 5로 설정 |
| 파일 스토리지 읽기/쓰기 |
|
노드 수에 따라 자동 할당됨 |
위와 같이 상황에 따라 노드 수를 늘리는 것이 효과적인지 판단하는 것이 좋을 것 같습니다.
마치며
이상으로 클러스터와 노드에 대해 살펴보았습니다.
저희 integrate.io는 합리적인 가격으로 고객의 DX/AI 구축에 필수적인 스마트한 데이터 전송 기능을 제공하고 있습니다.
2주간의 무료 트아이얼을 통해 Xplenty를 꼭 사용해 보시길 바랍니다.