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.
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:
- Click the icon in the Bamboo header and choose Overview.
- In the left navigation panel, go to Elastic Bamboo > Configuration.
Click Edit configuration.
- Configure settings as described in the sections below.
- 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:
- Go to your account: choose My account/console from your user menu at the top right.
- Click Security credentials.
- Enter, or update, your AWS Access Key ID.
- Select the Change AWS Secret Access Key? checkbox, and enter or update your AWS Secret Access Key.
- 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.
Elastic Bamboo provides you with a number of global configuration options to help you optimise 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.
EC2 spot instances
Elastic Bamboo provides support for Amazon EC2 Spot Instances. Amazon spot instances allow you to bid on unused EC2 capacity and use it, as long as your bid exceeds the current "Spot price". You can configure Elastic Bamboo to bid for 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.|
|Your current bid levels (per hour)||Fill out this table with your bids. The bids are categorised by EC2 instance type and operating system.|
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.|
If you haven't downloaded an AWS private key file or certificate file to your Bamboo server yet, please see Generating your AWS Private Key File and Certificate File for instructions.
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 minimise 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.
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.)
|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.|
Elastic instances running in the Amazon EC2 compute cloud are charged in hourly blocks from the time they are started. To maximise 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.|