需要の変化に対応するために Azure Data Explorer のクラスターの水平スケーリング (スケールアウト) を管理する
クラスターのサイズを適切に設定することは、Azure データ エクスプローラーのパフォーマンスにとって重要なことです。 静的クラスター サイズは過少使用や過剰使用につながる可能性があります。いずれも理想的ではありません。 クラスターに対する需要を高い精度で予測することはできないため、変化する需要に合わせて容量と CPU リソースを追加および削除して、クラスターを "スケーリング" することをお勧めします。
Azure Data Explorer クラスターのスケーリングには、2 つのワークフローがあります。
- 水平スケーリング (スケールアウトおよびスケールインともいいます)。
- 垂直スケーリング (スケールアップおよびスケールダウンともいいます)。 この記事では、水平スケーリングのワークフローについて説明します。
水平スケーリングを構成する
水平スケーリングを使用して、事前に定義されたルールとスケジュールに基づいて、インスタンス数を自動的にスケーリングすることができます。 クラスターの自動スケーリングの設定を指定するには:
Azure portal で、Azure Data Explorer クラスター リソースに移動します。 [設定] で、 [スケールアウト] を選択します。
[スケールアウト] ウィンドウで、必要な自動スケーリング方法を次から選択します: [手動スケール] 、 [Optimized autoscale](最適化された自動スケーリング) 、 [Custom autoscale](カスタム自動スケーリング) 。
手動でのスケーリング
手動スケール オプションでは、クラスターの静的容量は自動的に変更されません。 [インスタンス数] バーを使用して静的容量を選択します。 クラスターのスケーリングは、変更されるまで選択した設定のままです。
最適化された自動スケーリング (推奨オプション)
最適化された自動スケーリングは、クラスターの作成時の既定の設定であり、推奨されるスケーリング方法です。 この方法では、クラスターのパフォーマンスとコストが以下のように最適化されます。
- クラスターの使用率が低い場合は、必要なパフォーマンスに影響を与えることなく、コストを削減するためにスケールインされます。
- クラスターの使用率が高い場合は、最適なパフォーマンスを維持するためにスケールアウトされます。
最適化された自動スケーリングを構成するには:
[Optimized autoscale](最適化された自動スケーリング) を選択します。
最小のインスタンス数と、最大のインスタンス数を指定します。 クラスターは、負荷に基づいてこれらの値の範囲で自動スケーリングされます。
[保存] を選択します。
最適化された自動スケーリングの動作が始まります。 そのアクションは、Azure のクラスターのアクティビティ ログに表示できます。
最適化された自動スケーリングのロジック
最適化された自動スケーリングは、予測ロジックまたは事後対応ロジックによって管理されます。 予測ロジックは、クラスターの使用パターンを追跡し、季節性を高い信頼度で識別すると、クラスターのスケーリングを管理します。 それ以外の場合は、クラスターの実際の使用状況を追跡する事後対応ロジックを使用して、現在のリソース使用量レベルに基づいてクラスターのスケール操作を決定します。
予測フローと事後対応フローの両方の主なメトリクスは次のとおりです。
- CPU
- キャッシュ使用率
- インジェストの使用率
予測ロジックと事後対応ロジックは両方とも、最適化された自動スケール構成で定義されている、クラスターのサイズ境界、インスタンスの最小数と最大数による制約を受けます。 クラスターのスケールアウトおよびスケールイン操作を頻繁に行うと、クラスターのリソースへ影響を与え、インスタンスの追加または削除に時間が必要となるだけでなく、すべてのノード間でホットキャッシュの再調整が必要になるため、望ましくありません。
予測自動スケーリング
予測ロジックは、過去数週間のクラスターの使用パターンに基づいて、翌日のクラスターの使用状況を予測します。 予測を使用してスケールインまたはスケールアウト操作のスケジュールを作成し、クラスターのサイズを事前に調整します。 これにより、負荷の変化に遅れずにクラスターのスケーリングとデータの再調整を完了できます。 このロジックは、日次または週次の使用量の急増のような季節パターンに特に有効です。
ただし、予測を超える使用量が一意に急増するシナリオでは、最適化された自動スケーリングは事後対応ロジックにフォールバックします。 この場合、スケールインまたはスケールアウト操作は、リソース使用量の最新レベルに基づいて随時実行されます。
事後対応自動スケーリング
スケールアウト
クラスターが過大使用状態に近づくと、最適なパフォーマンスを維持するために、スケールアウト操作が実行されます。 スケールアウト操作は 、次の条件の少なくとも 1 つが発生した場合に実行されます。
- キャッシュ使用率が高い状態が 1 時間を超えている
- CPU が高い状態が 1 時間を超えている
- インジェストの使用率が高い状態が 1 時間を超えている
スケールイン
クラスターの使用率が低い場合、最適なパフォーマンスを維持しながらコストを削減するためにスケールイン操作が実行されます。 クラスターをスケールインすることが安全であることを確認するために、複数のメトリクスが使用されます。
リソースのオーバーロードがないことを確認するために、スケールインが実行される前に、次のメトリクスが評価されます。
- キャッシュ使用率が高くない
- CPU が平均を下回っている
- インジェストの使用率が平均を下回っている
- ストリーミング インジェストが使用されている場合、ストリーミング インジェストの使用率は高くありません
- キープ アライブ メトリクスが定義された最小値を超え、適切に処理され、クラスターが応答していることを時間通りに示しています
- クエリの調整がない
- 失敗したクエリの数が定義された最小値を下回っています
注意
スケールインのロジックでは、最適化されたスケールインを実装するには、その前に 1 日間の評価を必要とします。 この評価は、1 時間ごとに行われます。 直ちに変更が必要な場合は、手動スケールを使用してください。
カスタム自動スケーリング
最適化された自動スケーリングは推奨されるスケーリング オプションですが、Azure カスタム自動スケーリングもサポートされています。 カスタム自動スケーリングを使うと、指定したメトリックに基づいて、クラスターを動的にスケーリングできます。 カスタム自動スケーリングを構成するには、次の手順に従います。
[自動スケーリング設定の名前] ボックスに、名前を入力します (例: "スケールアウト: キャッシュ使用率")。
[スケール モード] には、 [メトリックに基づいてスケーリングする] を選択します。 このモードは、動的スケーリングを提供します。 また、 [特定のインスタンス数にスケーリングする] も選択できます。
[+ ルールの追加] を選択します。
右側の [スケール ルール] セクションで、各設定の値を入力します。
条件
設定 説明と値 時間の集計 [平均] など、集計条件を選択します。 メトリック名 [キャッシュ使用率] など、スケール操作のベースとするメトリックを選択します。 時間グレインの統計 [平均] 、 [最小] 、 [最大] 、 [合計] から選択します。 [オペレーター] [次の値以上] など、適切なオプションを選択します。 しきい値 適切な値を選択します。 たとえば、キャッシュ使用率の場合、80% が適切な開始点です。 期間 (分) システムでメトリックを計算する際にさかのぼって確認する適切な期間を選択します。 既定値の 10 分から始めます。 操作
設定 説明と値 操作 スケールインまたはスケール アウトする適切なオプションを選択します。 インスタンス数 メトリック条件が満たされたときに追加または削除するノードまたはインスタンスの数を選択します。 クール ダウン (分) スケール操作の間の待機する適切な時間間隔を選択します。 既定値の 5 分から始めます。 [追加] を選択します。
左側の [インスタンスの制限] セクションで、各設定の値を入力します。
設定 説明と値 最小 インスタンス数の下限。使用率に関係なく、クラスターはこの数未満にスケールしません。 [最大] インスタンス数の上限。使用率に関係なく、クラスターはこの数を超えてスケールしません。 [Default] 既定のインスタンス数。 この設定は、リソース メトリックの読み取りで問題がある場合に使用されます。 [保存] を選択します。
これで、Azure Data Explorer クラスターの水平スケーリングが構成されました。 垂直スケーリング用に別のルールを追加します。 クラスターのスケーリングに関する問題が発生したときにサポートが必要な場合は、Azure portal でサポート要求を開いてください。
関連コンテンツ
- メトリックを使用した Azure Data Explorer のパフォーマンス、正常性、および使用状況の監視
- クラスターの適切なサイズ設定を行うために、クラスターの垂直スケーリングを管理する。