Skip to content

chiradeep/netscaler-aws-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automate NetScaler configuration and autoscale in AWS using AWS Lambda and AWS CloudWatch

Provides AWS Lambda functions and Terraform configs to manage the configuration of Citrix NetScaler VPX instances in AWS. A series of Terraform modules are provided to build different automation scenarios. A few automation scenarios, including autoscaling of the VPX in AWS, using the modules, are provided.

Video (click to play):

Alt text

Terraform usage

Terraform is used to

  • instantiate the VPX and associated resources, including the Lambda functions. NOTE: that CloudFormation can be substituted for this purpose. Let us know by creating an issue if you would like CloudFormation support.
  • within the workload_autoscale lambda function to automate the configuration of the NetScaler in response to workload autoscale events. NOTE: other formats/orchestration (Ansible etc) are possible. Let us know in the issues

Modular Terraform config

The config/modules subdirectory contains re-useable Terraform configs that you can use in your own scenario The scenarios subdirectory contains Terraform configs that use the modules to automate the creation of various NetScaler VPX deployment scenarios.

Lambda Functions overview

  • workload_autoscale: The idea is to automate the reconfiguration of the NetScaler VPX when it load balances to a set of backend instances in an AutoScaling Group (ASG). As the ASG shrinks and expands, the lambda function reconfigures the NetScaler VPX appropriately.
  • vpx_lifecyle: The VPX instances are launched in an Autoscaling group to ensure availability and scale. When a VPX boots up however, it is not ready to receive traffic. This lambda function automates the initialization of the VPX.
  • stats_lambda: Lambda function used to store LB stats from the NetScaler VPX in CloudWatch. Uses the NITRO API to retrieve stats from the VPX. CloudWatch metrics include individual metrics per lb vserver/per vpx instance as well as aggregated across the (VPX) auto scaling group