Configuring Elastic Bamboo

Elastic Bamboo allows you to use computing resources from the Amazon Elastic Compute Cloud (EC2) to run builds. Elastic Bamboo uses a remote agent AMI (Amazon Machine Image) to create instances of remote agents in the Amazon EC2. 

Builds run on these 'elastic agents' in a similar way to how they run on local and remote agents.

(warning) If you have disabled remote agent support, you must enable it before you can enable Elastic Bamboo. Refer to Disabling and enabling remote agents support for instructions on how to enable remote agent support.


To configure your Amazon Web Services (AWS) account details or settings for Elastic Bamboo:

  1. Click the  icon in the Bamboo header and choose Overview.
  2. In the left navigation panel, go to Elastic Bamboo > Configuration.
  3. Click Edit configuration.

  4. Configure settings as described in the sections below.
  5. Click Save when finished.

AWS account settings

Before you use Elastic Bamboo for the first time in your Bamboo instance, you must enter your Amazon Web Services (AWS) account details into the Bamboo application. If you do not have an AWS account, you must register for one on the AWS registration page before you can enable Elastic Bamboo.

Before you begin:

  • Please note, Elastic Bamboo dynamically creates and runs remote agents in the Amazon Elastic Compute Cloud (EC2). Hence, if you choose to use Elastic Bamboo, you will be charged by Amazon for your EC2 compute usage (separately to your Bamboo license fee). These charges will be billed to the AWS account that you provide. Please read Elastic Bamboo Costs for more details.
  • Please note, if you change your AWS account details, Bamboo will stop all elastic agents that are currently running.

To set your AWS account details:

You can enter or update your AWS Access Key ID and AWS Secret Access Key as follows:

  1. Go to your account: choose My account/console from your user menu at the top right.
  2. Click Security credentials.
  3. Enter, or update, your AWS Access Key ID.
  4. Select the Change AWS Secret Access Key? checkbox, and enter or update your AWS Secret Access Key.
  5. Click Save.

Note that your AWS Access Key ID and AWS Secret Access Key are used together to identify you when accessing Amazon EC2 services. If you are unsure what your AWS Account ID and AWS Secret Access Key are, please refer to the Amazon documentation on AWS access identifiers.

Global settings

Elastic Bamboo provides you with a number of global configuration options to help you optimize EC2 usage for your Bamboo job builds. These settings control how the Bamboo server operates and how it manages its elastic instances and agents.

Maximum Number of Elastic Instances
The number of elastic instances that can be running at any one time. You may wish to decrease this value if you are concerned about EC2 compute costs, and you have a large number of concurrent job builds that cannot be supported by your non-elastic agents.

Automatically terminate elastic instance when elastic agent process ends

Controls whether your elastic instances will automatically shut down after the elastic agent processes running on them terminate.

  • Shutdown Delay —controls how long an elastic instance will wait before shutting down, after its elastic agent process terminates.


EC2 spot instances

Elastic Bamboo provides support for Amazon EC2 Spot Instances. Amazon spot instances allow you to buy unused EC2 capacity. You can configure Elastic Bamboo to buy you a spot instance of a particular type, and fall back to a regular instance after a set amount of time if no instances are available.

Enable support for spot instances
Select this checkbox to enable support for spot instances.

Fallback to a regular instance after
The time (in minutes) after which Elastic Bamboo will fall back to using a regular instance, if a spot instance has not become available.

AWS settings

These settings allow you to specify your AWS configuration settings in Bamboo so that Bamboo can operate elastic instances through your AWS account. This section includes settings that are used to configure elastic instances to work with the Amazon Elastic Block Store (EBS).

Using EBS with your elastic instances can significantly reduce the amount of data transfer required to run a job build, compared with starting a clean elastic instance. To find out more about this feature and how to set it up in Elastic Bamboo, read Configuring elastic instances to use the EBS.

Upload AWS account identifiers to new elastic instances
Select to upload the AWS Account Private Key File and Account Certificate File to all new elastic instances started. This is mandatory if you wish to use EBS to store job build information in a snapshot. However, you can also check this option if you are not using EBS (e.g. if you wish upload the AWS account identifiers in order to use Amazon's AWS command line tools).

Key files location
Choose how private key and certificate will be provided.

Account Private Key File
You must specify the location of this file to use the Amazon EBS with Elastic Bamboo. This file is generated by Amazon.

Account Certificate File
You must specify the location of this file to use the Amazon EBS with Elastic Bamboo. This file is generated by Amazon.

(info) If you haven't downloaded an AWS private key file or certificate file to your Bamboo server yet, see IAM best practices on the Amazon page.

Automatic elastic instance management

The Automatic Elastic Instance Management feature allows Bamboo to start and shut down elastic instances automatically (based on build queue demands), so that you do not have to perform these action manually. This feature reduces Bamboo administration overhead and can help minimize your overall elastic instance usage costs.

If a job's requirements cannot be met by any available online agents, this feature will start any elastic instance whose elastic agent has the capabilities to execute the job, so that the job's build can be generated. Regardless of how an elastic instance was started, all elastic instances will be shut down based on the settings specified below.

Elastic Instance Management
Choose from the following elastic instance management presets. Each of these presets define values for the five criteria described in the 'Custom' user-defined options (below). (Bear in mind that both the 'Aggressive' and 'Passive' presets have trade-offs.)

  • Default — Balances build queue clearance rates with elastic instance usage costs.
  • Aggressive — Favors higher build queue clearance rates but with higher elastic instance usage costs.
  • Passive — Favors lower instance usage costs but with lower build queue clearance rates.
  • Custom — Choose your own settings, as described below.
  • Disabled — Disables Bamboo's automatic elastic instance management feature.

Idle Agent Shutdown Delay
Specify the number of minutes that an elastic agent must be idle before Bamboo shuts down the elastic instance running that agent.
 (info) Elastic instances running in the Amazon EC2 compute cloud are charged in hourly blocks from the time they are started. To maximize usage of elastic instances in a cost-effective manner, Bamboo only performs these checks just prior to the expiry of each hourly block.

Allowed non-Bamboo instances
The maximum number of elastic instances allowed on your AWS account that are not controlled by this Bamboo instance. When this limit is exceeded, Bamboo will not start any new instances.

Maximum Number of Instances to Start at Once
The maximum number of elastic instances that Bamboo can start in one go. Bamboo only starts this maximum number of elastic instances on a 'per minute' basis.

Number of Builds in Queue Threshold
The total number of builds in a queue. When this and all other thresholds have been reached, new elastic instances will be started.

Number of Elastic Builds in Queue Threshold
The number of builds in the queue that can be executed on elastic instances. When this and all other thresholds have been reached, new elastic instances will be started.

Average Queue Time Threshold
The average number of minutes that job builds have been waiting in a queue. When this and all other thresholds have been reached, new elastic instances will be started.


Last modified on Nov 23, 2020

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.