Xplenty의 클러스터와 노드에 대해 알아 봅시다!

들어가며

이번 사용자 가이드에서는 많은 고객님께서 문의하시는 '클러스터'와 '노드'에 대해 설명하겠습니다.
Xplenty는 클라우드에서 작동하는 구조이므로 온프레미스형 도구와는 조금 개념이 다릅니다.
그 때문에 운영에 필수적인 개념이 바로 '클러스터'와 '노드'입니다.

여기서는 Xplenty에서의 클러스터와 노드의 역할 및 사용법을 구체적인 예시를 통해 자세히 살펴보겠습니다.

클러스터와 노드란?

Xplenty에서는 데이터 처리 절차(패키지)를 '클러스터'에서 실행합니다.
이때 자주 등장하는 용어가 '클러스터(Cluster)'와 '노드(Node)'입니다. 정의는 아래와 같습니다.

  • 클러스터
    데이터 처리를 위해 묶인 계산 자원의 집합, 즉 '작업장'입니다.
    Xplenty의 클러스터는 하나 이상의 노드로 구성됩니다.
  • 노드
    클러스터를 구성하는 요소로, 실제 데이터 처리를 담당하는 '작업자'와 같은 존재입니다.
    Xplenty에서는 1노드당 최대 3개 패키지(병렬 처리 없음)를 동시에 실행할 수 있습니다.

또한 Xplenty 화면에서 클러스터를 생성할 때 다음 두 종류를 선택할 수 있음을 알 수 있습니다.

항목 샌드박스 클러스터 프로덕션 클러스터
화면 thumbnail image thumbnail image
생성 가능 수 계정당 1개만 복수 생성 가능(플랜별 상한 있음)
사용 시간 제한 없음 있음(월별 상한)
노드 수 항상 1개(추가 불가) 여러 개 지정 가능(플랜별 상한 내)
스케줄러 지정 불가 가능
용도 개발, 테스트, 수동 실행 프로덕션 운영, 정기 실행 및 패키지 병렬 실행
inactive time※ 30분 / 1시간 1분 / 10분 / 30분 / 1시간 / 4시간 / 8시간 / 12시간 / 1일 / 3일 / 5일 / 7일

※ 비활성 시간이란?
클러스터에 작업(실행 중인 패키지)이 없어도 클러스터를 유지하는 시간을 말합니다. 다음 패키지 실행까지 해당 클러스터를 유지할 기간을 결정하는 시간 설정입니다.

노드 시간 확인 및 계산

샌드박스 클러스터는 스케줄러 지정이나 노드 추가가 불가능하다는 점 외에는 사용 시간 제한이 없습니다. 따라서 간편하게 패키지 실행 테스트나 수동 실행 시에 사용합니다.

반면 프로덕션 클러스터는 노드 추가를 통한 대용량 데이터 병렬 처리나 스케줄러에 의한 정기 실행 등 더 우수한 기능을 제공합니다. 더 많은 컴퓨팅 자원을 사용하기 때문에 플랜에 따라 클러스터 사용 시간이 정해져 있습니다. 
사용 시간을 Xplenty에서는 노드 아워라고 합니다. 

이제부터 노드 아워와 그 계산 방식에 대해 살펴보겠습니다.

  1. 계약 노드 아워 확인
    계약 노드 아워 확인은 Heroku의 경우 Heroku Add-On 페이지에 접속하여 integrate.io의 Plan & Price 부분을 참고하시면 됩니다. 플랜별 Included node hours가 프로덕션 클러스터 사용 시간입니다.
    thumbnail image
    직접 계약의 경우 Heroku Add-On 표와 다르므로 담당 영업사원에게 문의해 주시기 바랍니다.
  2. 현재까지 소비된 노드 아워 확인
    정해진 노드 아워를 모두 소진하면 기본적으로 프로덕션 클러스터 생성이 불가능해집니다.
    이러한 상황을 방지하기 위해 월초부터 현재까지 노드 아워 소비 현황을 확인해야 하며, Settings-Usage(아래 그림 참조)에서 확인할 수 있습니다.
    노란색 바는 샌드박스 클러스터 사용 시간이며, 하늘색 바는 프로덕션 클러스터 사용 시간입니다.
    thumbnail image
  3. 노드 아워 계산 방식
    많은 고객분들께서 문의하신 내용 중 하나가 노드 아워 계산입니다.
    한 달 동안 데이터 파이프라인을 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개 패키지까지
데이터베이스 병렬 처리 thumbnail image thumbnail image parallel connections를 5로 설정
파일 스토리지 읽기/쓰기 thumbnail image thumbnail image 노드 수에 따라 자동 할당됨

위와 같이 상황에 따라 노드 수를 늘리는 것이 효과적인지 판단하는 것이 좋을 것 같습니다.

마치며

이상으로 클러스터와 노드에 대해 살펴보았습니다.

저희 integrate.io는 합리적인 가격으로 고객의 DX/AI 구축에 필수적인 스마트한 데이터 전송 기능을 제공하고 있습니다.
2주간의 무료 트아이얼을 통해 Xplenty를 꼭 사용해 보시길 바랍니다.