[20170531220422] ECS Throttling Improvements, Build Instance Options and Health Check Thresholds

ECS Throttling Improvements

This caches all ECS Describe* API calls to eliminate ECS API throttling.

DescribeTaskDefinition calls are cached for 24h since a task definition is immutable. DescribeContainerInstances and DescribeTasks are cached for 5 and 10 seconds respectively. In environments with frequent convox ps, convox rack, convox scale, etc. calls, this will reduce the number of calls that get through to the AWS API and therefore reduce AWS API rate limiting

Build Instance Options

A new BuildVolumeSize parameter is introduced and the BuildMemory parameter is turned into a soft limit. This enables faster and/or more concurrent builds on a build instance.

For example you can enables the fastest EBS baseline performance (docs) for up to 60 concurrent builds with:

  • BuildInstance=c4.4xlarge
  • BuildMemory=512
  • BuildVolumeSize=1000

Health Check Thresholds

This adds two optional Docker Compose configuration labels:

  • convox.health.threshold.healthy
  • convox.health.threshold.unhealthy

Heathy Threshold and the Unhealthy Threshold on a service’s ELB: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html

Valid values are 2-10. If no label is set the default value of 2 is used.