# Elastic CI Stack for AWS v5.0.0 released

**URL:** <https://forum.buildkite.community/t/elastic-ci-stack-for-aws-v5-0-0-released/1310>\
**Category:** Announcements\
**Created:** [October 26, 2020, 11:34pm UTC](https://forum.buildkite.community/t/elastic-ci-stack-for-aws-v5-0-0-released/1310 "2020-10-26T23:34:41Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon17095254](https://avatars.discourse-cdn.com/v4/letter/a/ac91a4/32.png) [@anon17095254](https://forum.buildkite.community/u/anon17095254)\
**Post date:** [October 26, 2020, 11:34pm UTC](https://forum.buildkite.community/t/elastic-ci-stack-for-aws-v5-0-0-released/1310/1 "2020-10-26T23:34:41Z")

</div>

[Elastic CI Stack for AWS v5.0.0](https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v5.0.0) has been released 🎉

### What's new?

#### Previously experimental Lambda-based scaler is the new default 🚀

Our previously experimental fast autoscaler that scales up much faster is now always used. Instances will automatically scale to demand using the stack defaults and you should see good results without changing any parameters.

#### Experimental Windows support is now available [![windows|20x20](upload://dGbOAfU1uzuBOkvkoXUbsr5TQNR.png)](https://github.com/buildkite/emojis/raw/master/img-buildkite-64/windows.png)

A new AMI built on Windows Server 2019 is optionally available to use in the stack for Windows builds. You can enable this by changing the `InstanceOperatingSystem` setting from the default `linux` to `windows`. This release includes recent updates to Windows stability on Buildkite agent v3.25.0. Huge thanks to [@jeremiahsnapp](https://github.com/jeremiahsnapp) and [@tduffield](https://github.com/tduffield) for their contributions here!

**Note:** There is a known issue with graceful handling of spot instances under windows. The agent may not disconnect gracefully, and may appear in the Buildkite UI for a few minutes after they terminate (See issue [#752](https://github.com/buildkite/elastic-ci-stack-for-aws/issues/752)). We recommend using Windows on-demand instances for now.

### Added

- Support for [buildkite/image-builder](https://github.com/buildkite/image-builder) which can enable you to customize AMIs based off the ones we ship [#692](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/692) ([keithduncan](https://github.com/keithduncan))
- Support for multiple security groups on instances [#667](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/667) ([jdub](https://github.com/jdub))
- AMI and Lambda Scaler support more regions: ap-east-1 (Hong Kong), me-south-1 (Bahrain), af-south-1 (Cape Town), eu-south-1 (Milan) [#718](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/718) ([JuanitoFatas](https://github.com/JuanitoFatas))
- Support for loading BuildkiteAgentTokenPath from AWS Parameter Store [#601](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/601) ([jradtilbrook](https://github.com/jradtilbrook)), [#625](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/625) ([jradtilbrook](https://github.com/jradtilbrook))

### Changed

- Docker configuration is now isolated per-step [#678](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/678) ([patrobinson](https://github.com/patrobinson)) [#756](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/756) ([yob](https://github.com/yob))
- Use EC2 LaunchTemplate instead of a LaunchConfiguration [#589](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/589) ([lox](https://github.com/lox))
- InstanceType default is now `t3.large` (was `t2.nano`) [#699](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/699) ([pda](https://github.com/pda))
- Disable AZRebalancing to prevent running instances being terminated unnecessarily [#751](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/751)

### Dependencies updated

- Bump Buildkite Agent to [v3.25.0](https://github.com/buildkite/agent/releases/tag/v3.25.0) [#726](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/726) ([JuanitoFatas](https://github.com/JuanitoFatas))
- Bump Buildkite Agent Scaler to v1.0.2 [#724](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/724) ([JuanitoFatas](https://github.com/JuanitoFatas)) [4fafd8e](https://github.com/buildkite/elastic-ci-stack-for-aws/commit/4fafd8e85a888f0d7b23bb3a1420332fe4e9063c) ([JuanitoFatas](https://github.com/JuanitoFatas))
- Bump docker to v19.03.13 (linux) and v19.03.12 (windows) and docker-compose to v1.27.4 (linux, windows uses [latest choco version](https://chocolatey.org/packages/docker-comp%E2%80%A6)) [#719](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/719) ([yob](https://github.com/yob)) [#723](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/723) ([JuanitoFatas](https://github.com/JuanitoFatas))
- Bump bundled plugins to the latest versions: [secrets](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/740), [ecr](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/741) and [docker login](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/744)

And **much, much more** , we recommend you [view the full changelog for this release](https://github.com/buildkite/elastic-ci-stack-for-aws/compare/v4.5.0...v5.0.0).

## Upgrading

In most cases, you should be able to upgrade in-place older versions of the stack with a CloudFormation stack update using the following template URL:  
[https://s3.amazonaws.com/buildkite-aws-stack/v5.0.0/aws-stack.yml](https://s3.amazonaws.com/buildkite-aws-stack/v5.0.0/aws-stack.yml)

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

[![Launch Buildkite AWS Stack](https://camo.githubusercontent.com/9c49a15ad7e4c64cae6fc0d4448935283b5cd71a/68747470733a2f2f63646e2e7261776769742e636f6d2f6275696c646b6974652f636c6f7564666f726d6174696f6e2d6c61756e63682d737461636b2d627574746f6e2d7376672f6d61737465722f6c61756e63682d737461636b2e737667)](https://console.aws.amazon.com/cloudformation/home#/stacks/new?stackName=buildkite&templateURL=https://s3.amazonaws.com/buildkite-aws-stack/v5.0.0/aws-stack.yml)

If you were using them, the following parameters have been **removed** or **reworked** :

- `EnableExperimentalLambdaBasedAutoscaling` was removed (it's the default now)
- `BuildkiteOrgSlug` was removed – the information reported by [buildkite-agent-scaler](https://github.com/buildkite/buildkite-agent-scaler/blob/0a127ce221c94ffa703882b233a630ccde67d824/README.md#publishing-cloudwatch-metrics) make it redundant, but consider [buildkite-agent-metrics](https://github.com/buildkite/buildkite-agent-metrics) if you need more detailed metric monitoring that supports multiple metric backends
- `BuildkiteTerminateInstanceAfterJobTimeout`, `ScaleDownPeriod` and `ScaleCooldownPeriod` are replaced by the more concise `ScaleInIdlePeriod` [#586](https://github.com/buildkite/elastic-ci-stack-for-aws/pull/586) ([jeremiahsnapp](https://github.com/jeremiahsnapp)) which lets agents self-terminate to scale in when they've been idle after a set period
- `BuildkiteTerminateInstanceAfterJobDecreaseDesiredCapacity` and `ScaleDownAdjustment` were removed - instances will now always try to decrement the ASG desired count when their waiting period for new jobs has elapsed
- `ScaleUpAdjustment` is replaced by `ScaleOutFactor` as the new lambda scaler calculates how many agents are needed at the time. `ScaleOutFactor` allows you to multiply the relative quantity provisioned to the ASG, either to slow it down or speed it up

## Documentation

See [the Readme for this release](https://github.com/buildkite/elastic-ci-stack-for-aws/tree/v5.0.0#readme).

---

<div class="post-metadata">

**Author:** ![jp.fielding](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.buildkite.community/jp.fielding/32/1170_2.png) [@jp.fielding](https://forum.buildkite.community/u/jp.fielding)\
**Post date:** [March 22, 2023, 10:48pm UTC](https://forum.buildkite.community/t/elastic-ci-stack-for-aws-v5-0-0-released/1310/2 "2023-03-22T22:48:48Z")

</div>

love the scaler, just got it working (in terraform). theres an outstanding pr that id love to see merged. it about having a buffer amount. i was literally thinking of writing this and went and looked and there was the PR, sitting unacknowledged since 2022.10.

> <https://github.com/buildkite/buildkite-agent-scaler/pull/72>
>
> This will help fleets where instance startup time is slow, by allowing them to c…onfigure enough free instances to handle a certain amount of load while new instances spin up.
