Google Cloud 向けAutoscale アーキテクチャ
Citrix ADMは、Googleネットワークロードバランサーを使用してクライアントトラフィックの分散を処理します。次の図は、トラフィックディストリビュータとして Google ネットワークロードバランサーを使用して自動スケーリングがどのように行われるかを示しています。
Google ネットワークロードバランサーは、クラスターノードへの分散層です。ネットワークロードバランサーは、クライアントトラフィックを管理し、NetScaler VPXクラスタに配信します。ネットワークロードバランサーは、クライアントトラフィックをCitrix ADC VPXクラスタノードに送信します。このクラスタノードは、複数のゾーンにまたがるCitrix ADM自動スケーリンググループで使用できます。
NetScaler ADM は、クラスターレベルでスケールアウトまたはスケールインアクションをトリガーします。スケールアウトがトリガーされると、登録された仮想マシンがプロビジョニングされ、クラスターに追加されます。同様に、スケールインがトリガーされると、NetScaler VPX クラスターからノードが削除され、プロビジョニングが解除されます。
Citrix ADMAutoScaleグループは、単一のエンティティとしてアプリケーションを負荷分散し、構成されたしきい値パラメータ値に基づいて自動スケーリングをトリガーするCitrix ADCインスタンスのグループです。
オートスケーリングの仕組み
次のフローチャートは、自動スケーリングのワークフローを示しています。
Citrix ADMは、Autoscaleプロビジョニングされたクラスターから毎分統計情報(CPU、メモリ、スループット)を収集します。
統計情報は、設定しきい値に対して評価されます。統計に応じて、スケールアウトまたはスケールインがトリガーされます。統計が最大閾値を超えると、スケールアウトがトリガーされます。統計が最小閾値を下回ると、スケールインがトリガーされます。
スケールアウトがトリガーされた場合:
-
新しいノードがプロビジョニングされます。
-
ノードがクラスタに接続され、構成がクラスタから新しいノードに同期されます。
-
ノードはCitrix ADM に登録されています。
-
新しいノードの IP アドレスが Google ネットワークロードバランサーで更新されます。
スケールインがトリガーされた場合:
-
削除するノードが特定されました。
-
選択したノードへの新しい接続を停止します。
-
ノードがクラスタから切り離され、Citrix ADMから登録解除され、Google Cloudからプロビジョニング解除されます。
注
アプリケーションをデプロイすると、すべてのアベイラビリティーゾーンのクラスターに IP セットが作成されます。次に、ドメインとインスタンスの IP アドレスが Google ネットワークロードバランサーに登録されます。アプリケーションを削除すると、ドメインとインスタンスの IP アドレスは Google ネットワークロードバランサーから登録解除されます。次に、IP セットが削除されます。
オートスケーリングのシナリオの例
次の設定を使用して、単一のアベイラビリティーゾーンに asg_arn という名前のAutoscaleグループを作成したとします。
-
選択されたしきい値パラメータ — メモリ使用量。
-
メモリに設定されている閾値の上限:
-
最小制限値:40
-
最大制限:85
-
-
総再生時間 — 2 分
-
クールダウン期間 — 10 分
-
プロビジョニング解除中の待機時間 — 10 分。
-
DNS の存続時間 — 10 秒。
[Autoscale] グループが作成されると、[Autoscale] グループから統計が収集されます。Autoscaleポリシーは、Autoscaleイベントが進行中かどうかも評価します。自動スケーリングが進行中の場合は、そのイベントが完了するのを待ってから、統計情報を収集します。
イベントのシーケンス
-
メモリ使用量が T2のしきい値制限を超えています。ただし、スケールアウトは指定された総再生時間に対して違反しなかったため、トリガーされません。
-
スケールアウトは、2 分間(総再生時間)にわたって最大しきい値を超過したあと、 T5 でトリガーされます。
-
ノードプロビジョニングが進行中であるため、 T5 ~ T10 間の違反に対しては何の措置も取られませんでした。
-
ノードは T10 でプロビジョニングされ、クラスタに追加されます。クールダウン期間が開始されました。
-
クールダウン期間が原因で、 T10-T20 間の違反に対する処置は実行されていません。この期間により、Autoscale グループのインスタンスが有機的に増加することが保証されます。次のスケーリング決定をトリガーする前に、現在のトラフィックが安定し、現在のインスタンスのセットで平均化するのを待機します。
-
メモリ使用量は T23で最小閾値制限を下回ります。ただし、スケールインは指定された総再生時間に対して違反しなかったため、トリガーされません。
-
スケールインは、最小しきい値を2分間(総再生時間)連続して超過した後、 T26にトリガーされます 。クラスタ内のノードは、プロビジョニング解除のために識別されます。
-
NetScaler ADM は既存の接続のドレインを待っているため、 T26-T36 間の違反に対しては何の措置も取られませんでした。DNS ベースの自動スケーリングでは、TTL が有効です。
注:
DNSベースの自動スケーリングでは、NetScaler ADM は指定された有効期間(TTL)の間待機します。次に、ノードのプロビジョニング解除を開始する前に、既存の接続がドレインするのを待機します。
-
ノードのプロビジョニング解除が進行中であるため、 T37-T39 間の違反に対しては何の措置も取られませんでした。
-
ノードは T40 でクラスタから削除され、プロビジョニング解除されます。
ノードのプロビジョニング解除を開始する前に、選択したノードへのすべての接続がドレインされました。したがって、クールダウン期間は、ノードのプロビジョニング解除後にスキップされます。