> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: Xplentyのクラスタとノードを理解しよう！

> Integrate.io ETLでデータパイプラインパッケージを実行するクラスターとノードの定義や使い方、ノード数による処理性能とコストの変化を具体例を交えて解説します。

はじめに

今回のユーザガイドは、多くのお客様からご質問をいただく「クラスター」と「ノード」について、本記事で解説します。
Xplentyはクラウド上で動作する仕組みなので、オンプレミス型ツールとは少し考え方が異なります。
このため、運用において不可欠な概念が「クラスター」と「ノード」です。

ここでは、Xplenty におけるクラスターとノードの役割や使い方を、具体例を交えて丁寧に見ていきます。

クラスターとノードとは？

Xplenty では、データ処理の手順（パッケージ）を「クラスター」で実行します。
その際に頻繁に出てくる用語が「クラスター（Cluster）」と「ノード（Node）」です。以下に定義を示します。

*

**クラスター**
　データ処理を行うためにまとめられた計算資源の集まり、いわば「作業場」です。
　Xplenty のクラスターは、1つ以上のノードで構成されます。

*

**ノード**
　クラスターを構成する要素で、実際にデータ処理を担う「作業者」のような存在です。
　Xplenty では、1ノードで最大 3パッケージ（並列処理なし）を同時実行できます。

また、Xplentyの画面でクラスターを作るとき、以下の2種類が選べることがわかります。

項目
サンドボックス・クラスター
プロダクション・クラスター

画面

<Frame>
  <img src="https://mintcdn.com/integrateio/riZNoaOHg__NoUrC/images/japanese-knowledge-base/etc-part12-jp/image-1.webp?fit=max&auto=format&n=riZNoaOHg__NoUrC&q=85&s=020a11031c87664b77eead233c87c94d" alt="etc-part12-jp image 1" width="722" height="961" data-path="images/japanese-knowledge-base/etc-part12-jp/image-1.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/riZNoaOHg__NoUrC/images/japanese-knowledge-base/etc-part12-jp/image-2.webp?fit=max&auto=format&n=riZNoaOHg__NoUrC&q=85&s=b21bf37e62ca2a5f06f9d6cbaab177d2" alt="etc-part12-jp image 2" width="722" height="961" data-path="images/japanese-knowledge-base/etc-part12-jp/image-2.webp" />
</Frame>

作成可能数
アカウントごとに１つだけ
複数作成可能(プランによる上限あり)

使用時間制限
なし
あり(1ヶ月当たりの上限)

ノード数
常に1個(追加不可)
複数指定可能(プランによる上限内に)

スケジューラーで指定
不可
可能

用途
開発、テスト、手動実行
本番運用、定期実行やパッケージの並列実行

inactive time※
30分 /１時間
1分 / 10分 / 30分 / 1時間 / 4時間 / 8時間 / 12時間 / 1日 / 3日 / 5日 / 7日

※ inactive timeとは？
クラスターにジョブ（実行しているパッケージ）がなくても、クラスターを維持する時間のことです。次のパッケージ実行までどれぐらいそのクラスターを維持するかを決める時間設定です。

ノードアワーの確認と計算

サンドボックス・クラスターは、スケジューラーへの指定やノード追加の出来ない事に対して使用時間の制限はありません。その故、手軽にパッケージの実行テストや手動実行の時に使います。

一方で、プロダクション・クラスターは、ノード追加による大量データの並列処理やスケジューラーによる定期実行などのより優れて機能を提供しています。より多くのコンピューティング資源を使うため、プランによるクラスターの使用時間が決まっています。この**使用時間**をXplentyでは**ノードアワー**と言います。

ここからはノードアワーとそれの計算の仕組みに対してみてみましょう。

* 契約ノードアワーの確認
  契約ノードアワーの確認は、Herokuの場合はHeroku Add-Onページにアクセスして頂いて[integrate.ioのPlan & Price](https://elements.heroku.com/addons/xplenty#pricing)部分が参考になると思います。プランごとのIncluded node hoursがプロダクション・クラスターの使用時間です。

<Frame>
  <img src="https://mintcdn.com/integrateio/riZNoaOHg__NoUrC/images/japanese-knowledge-base/etc-part12-jp/image-3.webp?fit=max&auto=format&n=riZNoaOHg__NoUrC&q=85&s=555f87d3aafed0ea84f4a364d9a2aff3" alt="etc-part12-jp image 3" width="960" height="665" data-path="images/japanese-knowledge-base/etc-part12-jp/image-3.webp" />
</Frame>

直接契約の場合はHeroku Add-Onの表とは異なりますの、担当営業にお問い合わせください。

* 現在までの消費ノードアワーの確認
  決まったノードアワーを全て消費すると基本的にプロダクション・クラスターの生成が出来なくなります。
  この事態を防ぐために月の初めから現在までノードアワーの消費状況を確認する必要があるので、Settings-Usage(下記の図をご参照)にて確認できます。
  黄色いバーはサンドボックス・クラスターの使用時間でおり、水色のバーはプロダクション・クラスターの使用時間です。

<Frame>
  <img src="https://mintcdn.com/integrateio/riZNoaOHg__NoUrC/images/japanese-knowledge-base/etc-part12-jp/image-4.webp?fit=max&auto=format&n=riZNoaOHg__NoUrC&q=85&s=118da87253b533286601d15ec595eac9" alt="etc-part12-jp image 4" width="1554" height="505" data-path="images/japanese-knowledge-base/etc-part12-jp/image-4.webp" />
</Frame>

* ノードアワーの計算の仕組み
  多くのお客様から寄せられたお問い合わせの１つがノードアワーの計算の仕組みです。
  1ヶ月のデータパイプラインをXplenty上で回すために必要な合計のノードアワーを事前に計算しておく事で、継続的なデータパイプラインの運用に最適なプランの選択が出来ます。
  計算式は下記のように非常にシンプルで、計算式のサンプルの表も合わせてご覧ください。

* ノードアワー計算式

* クラスター維持時間の計上単位 - **1時間**

* `ノード数 x 維持時間 = ノードアワー`

ケース
使用ノード数
クラスター維持時間
消費ノードアワー

ケーズ-1
1
1\~59分
1時間

ケーズ-2
1
1時間 1\~59分
2時間

ケーズ-3
2
30分
2時間

ケーズ-4
2
1時間
2時間

クラスターの維持時間とinactive timeの関係

クラスターの生成時やスケジューラーのクラスター設定画面でよく見かけるのが**inactive time**です。これによりクラスターがアイドル状態（実行中のジョブがない状態）をどれぐらいに維持するかが決まります。弊社は、このinactive timeの調整で集中してジョブを実行することをお勧めします。

分かりやすく、例でノードアワーの消費がどれぐらい節約できるか見てみましょう。

* 条件：実行時間が10分掛かるジョブを20分間隔で実行（１ノードのクラスター）

ケース
クラスター生成回数
ジョブの総実行時間
消費ノードアワー

inactive timeの設定なし
3回（ジョブの実行毎に生成して削除）
３ x ７分 = ２１分
３ x １時間 = ３時間

inactive timeの10分
1回(ジョブ実行とinactive timeの10分で１回)
３ x ７分 = ２１分
１ x １時間 = １時間

簡単な例ですが、inactive timeの適切な設定によって2時間が節約になりました。ぜひ、inactive timeで効率的にクラスターをお使い頂ければ幸いです。

クラスターにノードの追加を考慮する時は？

通常、１ノードクラスター（基本設定）で十分だと思いますが、クラスターにノード追加は何を持って判断したら良いでしょうか？
ノードの追加基準について、下記のように整理してみました。ご参考になれば幸いです。

ケース
ソース
デスティネーション
１ノードに対する設定値

## パッケージの同時実行

*

１ノードでは最大3パッケージまで

Databaseの並列処理

<Frame>
  <img src="https://mintcdn.com/integrateio/riZNoaOHg__NoUrC/images/japanese-knowledge-base/etc-part12-jp/image-5.webp?fit=max&auto=format&n=riZNoaOHg__NoUrC&q=85&s=eb0f222a28109f33dccea1724c520c86" alt="etc-part12-jp image 5" width="469" height="183" data-path="images/japanese-knowledge-base/etc-part12-jp/image-5.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/riZNoaOHg__NoUrC/images/japanese-knowledge-base/etc-part12-jp/image-6.webp?fit=max&auto=format&n=riZNoaOHg__NoUrC&q=85&s=26bbda1f5bc0d6113665e48d1850cb15" alt="etc-part12-jp image 6" width="469" height="517" data-path="images/japanese-knowledge-base/etc-part12-jp/image-6.webp" />
</Frame>

parallel connectionsを５に設定

File Storageの読込み/書込み

<Frame>
  <img src="https://mintcdn.com/integrateio/riZNoaOHg__NoUrC/images/japanese-knowledge-base/etc-part12-jp/image-7.webp?fit=max&auto=format&n=riZNoaOHg__NoUrC&q=85&s=3d9eda8d1bbd226bded24c083cc480f8" alt="etc-part12-jp image 7" width="544" height="245" data-path="images/japanese-knowledge-base/etc-part12-jp/image-7.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/riZNoaOHg__NoUrC/images/japanese-knowledge-base/etc-part12-jp/image-8.webp?fit=max&auto=format&n=riZNoaOHg__NoUrC&q=85&s=260820631452d051da98fac77b3bb1ac" alt="etc-part12-jp image 8" width="528" height="328" data-path="images/japanese-knowledge-base/etc-part12-jp/image-8.webp" />
</Frame>

ノード数に応じて自動割り当てになる

状況に応じて、ノード数を増やすのが効果的かどうかを判断すると良いかと思います。

後書き

以上でクラスターとノードについて見てみました。

弊社、integrate.ioはリーズナブルな価格でお客様のDX/AI構築に必須である賢いデータ転送機能を提供しております。
ぜひ、[２週間の無料トライアル](https://www.integrate.io/jp/demo/)にてXplentyを試して頂ければと存じます。
心からお待ちしております。
