You are viewing the documentation of TeamCity 10.x and 2017.x, which is not the most recently released version of TeamCity.
View this page in the latest documentation or refer to the listing to choose the documentation corresponding to your TeamCity version.


Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


It is assumed that the machine images are pre-configured to start TeamCity agent on boot (see details below). The exception is usage of agent push.


On instance terminating/stopping, its disconnected agent is removed from authorized agents list and is deleted from the system.

Amazon EC2 Spot Instances are supported.



  • ec2:Describe*
  • ec2:StartInstances
  • ec2:StopInstances
  • ec2:TerminateInstances
  • ec2:RebootInstances
  • ec2:RunInstances
  • ec2:ModifyInstanceAttribute

  • ec2:*Tags


To use spot instances, the following additional permissions are required:

  • ec2:RequestSpotInstances
  • ec2:CancelSpotInstanceRequests

To launch an instance with Iam Role (applicable to instances cloned from AMI-s only) the following additional permissions are required:


Optional permissions

See the section below for permissions to set IAM roles on an agent instance.


  1. Choose one of existing generic images.
  2. Start the image.
  3. Configure the running instance:
    • Install and configure build agent:
      • Configure server name and agent name in conf/buildAgent.properties — this is optional, if the image will be started by TeamCity, but it is useful to test the agent is configured correctly.
      • It usually makes sense to specify tempDir and workDir in conf/buildAgent.properties to use non-system drive (d: under Windows)
    • Install any additional software necessary for the builds on the machine.
    • Run the agent and check it is working OK and is compatible with all necessary build configurations, etc.
    • Configure system so that agent it is started on machine boot (and make sure TeamCity server is accessible on machine boot).
    • Anchor
      To ensure proper TeamCity agent communication with EC2 API under Windows, add a dependency from the TeamCity Build Agent service on the AmazonSSMAgent or EC2Launch / EC2Config service (the service which makes sure the machine is fully initialized in regard to AWS infrastructure use). This can be done, for example, via the Registry or using sc config , e.g. sc config TCBuildAgent depend= EC2Config
      Alternatively, you can use the "Automatic (delayed start)" service starting mode. 

  4. Test the setup by rebooting machine and checking that the agent connects normally to the server.
  5. Prepare the Image for bundling:
    • Remove any temporary/history information in the system.
    • Stop the agent (under Windows stop the service but leave it in Automatic startup type)
    • Delete content logs and temp directories in agent home (optional)
    • Delete "<Agent Home>/conf/amazon-*" file (optional)
    • Change config/buildAgent.properties to remove properties: name, serverUrl, authorizationToken (optional). serverUrl can be removed for EC2 integration plugins. Other plugins might require that it is present and set to correct value.
  6. Make a new image from the running instance (or just stop it for Amazon EBS images).


Sharing single EBS instance between several TeamCity servers

As mentioned above, TeamCity tags every instance it launches with "teamcity:TeamcityData" tag that represents server, cloud profile and source (AMI or EBS-instance). So, in case when several TeamCity servers tries to use the same EBS instance, the second one will see message "Instance is used by another TeamCity server. Unable to start/stop it". If you are sure that no other TeamCity servers are working with this instance, you can delete the "teamcity:TeamcityData" tag and the instance will become available for all TeamCity servers again.