AWS 向けAutoscale アーキテクチャ
次の図は、DNS をトラフィックディストリビューターとして使用する Auto Scaling 機能のアーキテクチャを示しています。
次の図は、トラフィックディストリビューターとして NLB を使用する Auto Scaling 機能のアーキテクチャを示しています。
NetScaler コンソール
NetScaler Consoleは、オンプレミスまたはクラウドに展開されるすべてのNetScaler展開を管理するためのWebベースのソリューションです。このクラウドソリューションを使用すると、単一の統合された、一元化されたクラウドベースのコンソールから、グローバルアプリケーション配信インフラストラクチャ全体を管理、監視、トラブルシューティングできます。NetScaler Consoleは、NetScaler環境におけるアプリケーション配信の迅速なセットアップ、展開、管理に必要なすべての機能と、アプリケーションの状態、パフォーマンス、およびセキュリティに関する豊富な分析機能を備えています。
Autoscale グループはNetScalerコンソールで作成され、NetScaler VPXインスタンスはNetScalerコンソールからプロビジョニングされます。その後、アプリケーションはNetScalerコンソールのStyleBook を介してデプロイされます。
トラフィックディストリビュータ(NLB または DNS /Route53)
NLB または DNS/route53 は、Autoscale グループ内のすべてのノードにトラフィックを分散するために使用されます。詳しくは、「AutoScaleトラフィック分散モード」を参照してください。
NetScaler Consoleはトラフィックディストリビューターと通信して、アプリケーションのフロントエンドである負荷分散仮想サーバーのアプリケーションドメインとIPアドレスを更新します。
NetScaler コンソールAutoscale グループ
Autoscaleグループは、NetScaler インスタンスのグループで、アプリケーションを単一のエンティティとして負荷分散し、設定されたしきい値パラメータ値に基づいて自動スケーリングをトリガーします。
NetScaler クラスター
NetScaler ADCクラスターは、NetScaler VPXインスタンスのグループであり、各インスタンスはノードと呼ばれます。クライアントトラフィックは、高可用性、高スループット、およびスケーラビリティを提供するために、ノード間で分散されます。
注
- 自動スケーリングの決定は、ノードレベルではなくクラスターレベルで行われます。
独立したクラスターは異なるアベイラビリティーゾーンでホストされるため、一部の共有状態機能のサポートには制限があります。
ソース IP パーシステンスなどのパーシステンスセッションや、Cookie ベースのパーシステンス以外のパーシステンスセッションは、クラスタ間で共有できません。ただし、負荷分散メソッドなどのステートレス機能はすべて、複数のアベイラビリティーゾーンで期待どおりに動作します。
AWS 自動スケーリンググループ
AWS Auto Scaling グループは、同様の特性を共有する EC2 インスタンスの集合であり、インスタンスのスケーリングおよび管理を目的として論理的なグループとして扱われます。
AWS 利用可能ゾーン
AWS アベイラビリティーゾーンは、リージョン内の独立した場所です。各リージョンは複数のアベイラビリティーゾーンで構成されています。各アベイラビリティーゾーンは 1 つのリージョンに属しています。
トラフィック分散モード
アプリケーションのデプロイをクラウドに移行すると、自動スケーリングはインフラストラクチャの一部になります。アプリケーションが自動スケーリングを使用してスケールアウトまたはスケールインする場合、これらの変更をクライアントに伝播する必要があります。この伝播は、DNS ベースまたは NLB ベースの自動スケーリングを使用して実現されます。
NLB ベースの自動スケーリング
NLB ベースのデプロイモードでは、クラスターノードへのディストリビューション層が AWS ネットワークロードバランサーになります。
NLB ベースの自動スケーリングでは、アベイラビリティーゾーンごとに 1 つの静的 IP アドレスしか提供されません。これは route53 に追加されるパブリック IP アドレスであり、バックエンド IP アドレスはプライベートにすることができます。このパブリックIPアドレスでは、自動スケーリング中にプロビジョニングされた新しいNetScaler ADC インスタンスはプライベートIPアドレスを使用して動作し、追加のパブリックIPアドレスは必要ありません。
NLB ベースの自動スケーリングを使用して、TCP トラフィックと UDP トラフィックの両方を管理できます。
DNS ベースの自動スケーリング
DNSベースの自動スケーリングでは、DNSはNetScaler ADC クラスターノードへのディストリビューションレイヤーとして機能します。スケーリング変更は、アプリケーションに対応するドメイン名を更新することによってクライアントに伝達されます。現在、DNS プロバイダーは AWS Route53 です。
注:
DNS ベースの自動スケーリングでは、各 NetScaler インスタンスにはパブリック IP アドレスが必要です。
自動スケーリングの仕組み
次のフローチャートは、自動スケーリングのワークフローを示しています。
NetScaler Consoleは、Autoscale eでプロビジョニングされたクラスターから統計情報(CPU使用率、メモリ使用量、スループット)を1分間隔で収集します。
統計情報は、設定しきい値に対して評価されます。統計情報が最大しきい値を超えているか、最小しきい値を下回っているかに応じて、スケールアウトまたはスケールインがそれぞれトリガーされます。
-
スケールアウトがトリガーされた場合:
- 新しいノードがプロビジョニングされます。
- ノードはクラスターに接続され、構成はクラスターから新しいノードに同期されます。
- ノードはNetScalerコンソールに登録されます。
- 新しいノードの IP アドレスは、DNS/NLB で更新されます。
アプリケーションがデプロイされると、IPset
は各アベイラビリティーゾーンのクラスターに作成され、ドメインとインスタンスの IP アドレスは DNS/NLB に登録されます。
- スケールインがトリガーされた場合:
- 削除対象として特定されたノードの IP アドレスが削除されます。
- ノードはクラスターから切り離され、プロビジョニング解除されてからNetScaler Consoleから登録解除されます。
アプリケーションを削除すると、ドメインとインスタンスの IP アドレスが DNS/NLB から登録解除され、 IPset
が削除されます。
例
次の設定を使用して、単一のアベイラビリティーゾーンに asg_arn という名前のAutoscaleグループを作成したとします。
- しきい値パラメータ — メモリ使用量
- 最小制限値:40
- 最大制限:85
- 総再生時間 — 3 分
- クールダウン期間 — 10 分
- ドレイン接続タイムアウト — 10 分
- TTL タイムアウト — 60 秒
[Autoscale] グループが作成されると、[Autoscale] グループから統計が収集されます。Autocale ポリシーは、Autoscale イベントが進行中かどうかも評価し、自動スケーリングが進行中の場合は、そのイベントが完了するまで待機してから、統計情報を収集します。
イベントのシーケンス:
- T1 および T2:メモリ使用量が最大しきい値制限を超えています。
- T3-メモリ使用量が最大閾値制限を下回っています。
-
T6、T5、T4: メモリ使用量が 3 回の再生時間の間、連続して最大閾値を超えました。
- スケールアウトがトリガーされます。
- ノードのProvisioning が行われます。
- クールダウン期間が有効です。
-
T7 — T16: クールダウン期間が有効なため、このアベイラビリティーゾーンでは T7 から T16 までのAutoscale 評価はスキップされます。
- T18、T19、T20-3回連続してメモリ使用量が最小閾値制限を超えました。
- スケールインがトリガーされます。
- ドレイン接続タイムアウトが有効です。
- IP アドレスは DNS/NLB から解放されます。
-
T21 — T30: ドレイン接続タイムアウトが有効になっているため、T21 から T30 までのこのアベイラビリティーゾーンのAutoscale 評価はスキップされます。
- T31
- DNS ベースの自動スケーリングでは、TTL が有効です。
- NLB ベースの自動スケーリングでは、インスタンスのプロビジョニング解除が行われます。
- T32
- NLB ベースの自動スケーリングでは、統計の評価が開始されます。
- DNS ベースの自動スケーリングでは、インスタンスのプロビジョニング解除が行われます。
- T33: DNS ベースの自動スケーリングの場合、統計情報の評価が開始されます。