Citrix ADM を使用したMicrosoft AzureでのCitrix ADC VPXのオートスケーリング
自動スケーリングは、実際の使用状況に応じて自動的にリソースを追加または削除するクラウドコンピューティング方法です。自動スケーリングは、変動するクライアント要求や処理ジョブ数を満たすために、サイトまたはアプリケーションがオンデマンドのリソース割り当てを必要とする場合に便利です。
Web アプリケーションやサービスの需要は大きく異なる場合があります。トラフィックのニーズに応じて適切な数のCitrix ADC インスタンスを維持することが重要です。需要に応じて、Microsoft Azure のネットワークリソースを増減できます。したがって、パフォーマンスを損なうことなく、コストの最適化を提供します。
Citrix美联社plication Delivery Management(ADM)オートスケーリングでは、リソースの消費量が変動するため、Citrix ADCインスタンスの正確な数が維持されます。Citrix ADMは、変動するリソース消費量に基づいてトラフィックフローを決定し、Citrix ADCインスタンスを動的にスケールアウトまたはスケールインします。したがって、適切な数のCitrix ADC インスタンスを維持するための柔軟性を提供します。
Citrix ADM は、Citrix ADC インスタンスのリソース使用率を監視し、設定されたしきい値と照合します。設定されたリソースの 1 つが指定されたしきい値を超えると、スケールアウトアクションがトリガーされます。
Citrix ADM は、構成されているすべてのリソースの使用量が通常のしきい値を下回った場合にのみ、スケールインアクションをトリガーします。
重要:
自動スケーリングは、クラスターノード上でスポット設定を必要とする以下の機能を除き、すべてのCitrix ADC 機能をサポートします。
- GSLBか
- Citrix Gateway とその機能
- Telco 機能
スポッティング設定について詳しくは、ストライプ、部分的にストライプ、およびスポットされた構成を参照してください。
長所
アプリケーションの高可用性:自動スケーリングにより、アプリケーションのトラフィック要求を処理するための適切な数のCitrix ADC VPX インスタンスが常に確保されます。これにより、トラフィック要求に関係なく、アプリケーションが常に起動し、実行されていることが保証されます。
スマートなスケーリングの決定とゼロタッチ構成:自動スケーリングはアプリケーションを継続的に監視し、需要に応じてCitrix ADC インスタンスを動的に追加または削除します。一定期間需要が増加すると、インスタンスは自動的に追加されます。一定期間需要が減少すると、インスタンスは自動的に削除されます。Citrix ADC インスタンスの追加と削除は自動的に行われるため、手動でのゼロタッチ構成になります。
自動DNS管理:Citrix ADM Autoscale機能は、自動DNS管理を提供します。新しいCitrix ADC インスタンスが追加されると、ドメイン名が自動的に更新されます。
正常な接続終了:スケールイン中、Citrix ADC インスタンスは正常に削除され、クライアント接続が失われるのを防ぎます。
コスト管理の向上:自動スケーリングは、必要に応じてCitrix ADC インスタンスを動的に増減します。この方法では、関連するコストを最適化できます。必要なときにのみインスタンスを起動し、不要になったときにインスタンスを終了すると、運用コストが削減されます。したがって、使用したリソースに対してのみお支払いいただきます。
オブザーバビリティ:オブザーバビリティは、アプリケーションの稼働状態を監視するアプリケーションの開発/運用担当者にとって重要です。Citrix ADMのAutoScaleダッシュボードでは、しきい値のパラメーター値、AutoScaleトリガーのタイムスタンプ、イベント、およびAutocaleに参加しているインスタンスを視覚化できます。
ライセンスの要件
Citrix自动定量グループ用に作成されたCitrix ADCインスタンスは,Citrix ADCアドバンストライセンスまたはプレミアム ADC ライセンスを使用します。Citrix ADC クラスタリング機能は、アドバンストまたはプレミアムADCライセンスに含まれています。
注:
ADC クラスタは、ADC Premium ライセンスまたは Advanced ライセンスを使用する ADM 自動スケーリングでのみサポートされます。
次のいずれかの方法を選択して、Citrix ADCitrix ADM によってプロビジョニングされたCitrix ADCのライセンスを取得できます。
Citrix ADMに存在するADCライセンスを使用する:Autoscaleグループの作成時に、プール容量、VPXライセンス、または仮想CPUライセンスを構成します。したがって、Autocale グループに対して新しいインスタンスがプロビジョニングされると、既に設定されているライセンスタイプがプロビジョニングされたインスタンスに自動的に適用されます。
プールされた容量: Autocale グループ内のすべてのプロビジョニングされたインスタンスに帯域幅を割り当てます。新しいインスタンスをプロビジョニングするために必要な帯域幅がCitrix ADM で利用可能であることを確認します。詳しくは、「プール容量を構成する」を参照してください。
Autocale グループの各 ADC インスタンスは、1 つのインスタンス・ライセンスと、指定された帯域幅をプールからチェックアウトします。
VPXライセンス:新しくプロビジョニングされたインスタンスにVPXライセンスを適用します。新しいインスタンスをプロビジョニングするために、Citrix ADM で必要な数のVPXライセンスがあることを確認します。
Citrix ADC VPX インスタンスがプロビジョニングされると、インスタンスはCitrix ADM からライセンスをチェックアウトします。詳しくは、「Citrix ADC VPXチェックインとチェックアウトのライセンス」を参照してください。
仮想 CPU ライセンス:新しくプロビジョニングされたインスタンスに仮想 CPU ライセンスを適用します。このライセンスでは、Citrix ADC VPX インスタンスの資格を持つCPUの数を指定します。新しいインスタンスをプロビジョニングするために必要な数の仮想CPUがCitrix ADM にあることを確認します。
Citrix ADC VPX インスタンスがプロビジョニングされると、インスタンスはCitrix ADM から仮想CPUライセンスをチェックアウトします。詳しくは、「Citrix ADC仮想CPUライセンス」を参照してください。
プロビジョニングされたインスタンスが破棄またはプロビジョニング解除されると、適用されたライセンスは自動的にCitrix ADM に返されます。
消費されたライセンスを監視するには、[ネットワーク] > [ライセンス] ページに移動します。
Microsoft Azure サブスクリプションライセンスの使用:Autoscaleグループの作成中に、Azure マーケットプレイスで利用可能なCitrix ADCライセンスを構成します。したがって、Autoscaleグループ用に新しいインスタンスがプロビジョニングされると、ライセンスは Azure Marketplace から取得されます。
自動スケーリングでサポートされるCitrix ADC Azure仮想マシンイメージ
最低3つのNICをサポートするAzure仮想マシンイメージを使用します。自動スケーリングCitrix ADC VPXインスタンスは、プレミアムエディションとアドバンスエディションでのみサポートされます。Azure 仮想マシンイメージタイプについて詳しくは、「仮想マシンの種類とサイズ (Microsoft ドキュメントを参照)」を参照してください。
オートスケーリングの推奨仮想マシンサイズを以下に示します。
Standard_DS3_v2
Standard_B2ms
Standard_DS4_v2
アーキテクチャ
Citrix ADM は、Azure DNSまたはAzureロードバランサー(ALB)を使用してクライアントトラフィックの分散を処理します。
Azure DNS を使用したトラフィックの分散
次の図は、Azure トラフィックマネージャーをトラフィックディストリビューターとして使用して DNS ベースの自動スケーリングがどのように行われるかを示しています。
DNS ベースの自動スケーリングでは、DNS はディストリビューション層として機能します。Azure トラフィックマネージャーは、Microsoft Azure の DNS ベースのロードバランサーです。トラフィックマネージャーは、Citrix ADM自動スケーリンググループで使用可能な適切なCitrix ADCインスタンスにクライアントトラフィックを転送します。
Azureトラフィックマネージャーは、FQDNをCitrix ADC インスタンスのVIPアドレスに解決します。
注:
DNSベースの自動スケーリングでは、Citrix ADM Autoscaleグループ内の各Citrix ADCインスタンスにパブリック IP アドレスが必要です。
Citrix ADM は、クラスターレベルでスケールアウトまたはスケールインアクションをトリガーします。スケールアウトがトリガーされると、登録された仮想マシンがプロビジョニングされ、クラスターに追加されます。同様に、スケールインがトリガーされると、Citrix ADC VPX クラスターからノードが削除され、プロビジョニングが解除されます。
Azure Load Balancerを使用したトラフィックの分散
次の図は、Azure ロードバランサーをトラフィックディストリビューターとして使用して自動スケーリングがどのように行われるかを示しています。
Azure Load Balancerは、クラスターノードへの配布層です。ALBはクライアントトラフィックを管理し、Citrix ADC VPX クラスターに配信します。ALBは、クライアントトラフィックをCitrix ADC VPX クラスターノードに送信します。このクラスターノードは、複数のアベイラビリティーゾーンにまたがってCitrix ADM 自動スケーリンググループで使用できます。
注:
パブリック IP アドレスは Azure Load Balancerに割り当てられます。Citrix ADC VPX インスタンスでは、パブリックIPアドレスは必要ありません。
Citrix ADM は、クラスターレベルでスケールアウトまたはスケールインアクションをトリガーします。スケールアウトがトリガーされると、登録された仮想マシンがプロビジョニングされ、クラスターに追加されます。同様に、スケールインがトリガーされると、Citrix ADC VPX クラスターからノードが削除され、プロビジョニングが解除されます。
Citrix ADM Autoscaleグループ
Autoscaleグループは、Citrix ADC インスタンスのグループで、アプリケーションを単一のエンティティとして負荷分散し、設定されたしきい値パラメータ値に基づいて自動スケーリングをトリガーします。
リソース グループ
リソースグループには、Citrix ADC 自動スケーリングに関連するリソースが含まれます。このリソースグループは、自動スケーリングに必要なリソースを管理するのに役立ちます。詳しくは、「リソースグループの管理」を参照してください。
Azure バックエンド仮想マシンスケールセット
Azure 仮想マシンスケールは、同一の VM インスタンスのコレクションです。VM インスタンスの数は、クライアントのトラフィックに応じて増減できます。このセットは、アプリケーションに高可用性を提供します。詳しくは、「仮想マシンのスケールセット」を参照してください。
アベイラビリティーゾーン
アベイラビリティーゾーンは、Azure リージョン内の独立した場所です。各リージョンは、複数のアベイラビリティーゾーンで構成されています。各アベイラビリティーゾーンは 1 つのリージョンに属しています。各アベイラビリティーゾーンには、1 つの Citrix ADC VPX クラスターがあります。詳しくは、「Azure のアベイラビリティーゾーン」を参照してください。
可用性セット
可用性セットは、Citrix ADC VPX クラスターとアプリケーションサーバーの論理的なグループです。可用性セットは、クラスター内の複数の分離されたハードウェアノードに ADC インスタンスをデプロイする場合に役立ちます。可用性セットを使用すると、Azure 内でハードウェアまたはソフトウェアの障害が発生した場合に、信頼できる ADM 自動スケーリングを保証できます。詳しくは、「可用性セット」を参照してください。
次の図は、可用性セットの自動スケーリングを示しています。
Azureインフラストラクチャ(ALBまたはAzureトラフィックマネージャ)は、可用性セット内のCitrix ADM 自動スケーリンググループにクライアントトラフィックを送信します。Citrix ADM は、クラスターレベルでスケールアウトまたはスケールインアクションをトリガーします。
オートスケーリングの仕組み
次のフローチャートは、オートスケーリングのワークフローを示しています。
Citrix ADMは、Autoscaleプロビジョニングされたクラスターから毎分統計情報(CPU、メモリ、スループット)を収集します。
統計情報は、設定しきい値に対して評価されます。統計情報に応じて、スケールアウトまたはスケールインがトリガーされます。統計情報が最大しきい値を超えると、スケールアウトがトリガーされます。統計情報が最小しきい値を下回ると、スケールインがトリガーされます。
スケールアウトがトリガーされた場合:
新しいノードがプロビジョニングされます。
ノードがクラスタに接続され、構成がクラスタから新しいノードに同期されます。
ノードはCitrix ADM に登録されています。
新しいノードの IP アドレスは、Azure トラフィックマネージャーで更新されます。
スケールインがトリガーされた場合:
削除するノードが識別されます。
選択したノードへの新しい接続を停止します。
接続がドレインするまで指定した期間待機します。DNS トラフィックでは、指定された存続時間(TTL)期間も待機します。
ノードがクラスターから切り離され、Citrix ADM から登録解除され、Microsoft Azure からプロビジョニングが解除されます。
注
アプリケーションをデプロイすると、すべてのアベイラビリティーゾーンのクラスターに IP セットが作成されます。次に、ドメインとインスタンスの IP アドレスが Azure トラフィックマネージャーまたは ALB に登録されます。アプリケーションを削除すると、ドメインとインスタンスの IP アドレスが Azure トラフィックマネージャーまたは ALB から登録解除されます。次に、IP セットが削除されます。
オートスケーリングのシナリオの例
次の設定を使用して、単一のアベイラビリティーゾーンに asg_arn という名前のAutoscaleグループを作成したとします。
選択されたしきい値パラメータ — メモリ使用量。
メモリに設定されたしきい値の制限:
最小制限:40
最大制限:85
総再生時間 — 2 分。
クールダウン期間 — 10分。
プロビジョニング解除中の待機時間(10分)。
DNS の存続時間 — 10 秒。
[Autoscale] グループが作成されると、[Autoscale] グループから統計が収集されます。Autoscaleポリシーは、Autoscaleイベントが進行中かどうかも評価します。自動スケーリングが進行中の場合は、そのイベントが完了するのを待ってから、統計情報を収集します。
イベントのシーケンス
メモリ使用量がT2のしきい値制限を超えています。ただし、スケールアウトは指定された総再生時間に対して違反しなかったため、トリガーされません。
スケールアウトは、最大しきい値が 2 分(総再生時間)連続的に突破された後、T5でトリガーされます。
ノードのProvisioning が進行中であるため、T5-T10間の違反に対するアクションは実行されていません。
ノードはT10でプロビジョニングされ、クラスタに追加されます。クールダウン期間が開始されました。
クールダウン期間が原因で、T10-T20間の違反に対する処置は実行されていません。この期間は、Autoscaleグループのインスタンスの有機的な増加を保証します。次のスケーリング決定をトリガーする前に、現在のトラフィックが安定し、現在のインスタンスのセットで平均化するのを待機します。
メモリ使用量がT23の最小しきい値制限を下回っています。ただし、スケールインは指定された総再生時間に対して違反しなかったため、トリガーされません。
最小しきい値が 2 分(総再生時間)連続的に突破された後、スケールインがT26でトリガーされます。クラスタ内のノードは、プロビジョニング解除のために識別されます。
Citrix ADM が既存の接続を切断するのを待機しているため、T26-T36間の違反に対する処置は実行されていません。DNS ベースの自動スケーリングでは、TTL が有効です。
注:
DNSベースの自動スケーリングの場合、Citrix ADMは指定されたTTL(有効期限)期間待機します。次に、ノードのプロビジョニング解除を開始する前に、既存の接続がドレインするのを待機します。
ノードのプロビジョニング解除が進行中であるため、T37-T39間の違反に対するアクションは実行されていません。
ノードはT40でクラスターから削除され、プロビジョニング解除されます。
ノードのプロビジョニング解除を開始する前に、選択したノードへのすべての接続がドレインされました。したがって、クールダウン期間は、ノードのプロビジョニング解除後にスキップされます。