You are not logged in. Click here to log in.

codebeamer Application Lifecycle Management (ALM)

Search In Project

Search inClear

Tags:  not added yet

Constraints when running a cluster on ECS


There are some constraints when running a cluster on ECS. The following document assumes the following setup:

Codebeamer cluster running on EC2 backed ECS with TLS offload on the Application Elastic Loadbalancer.


The containers should be started in network mode "host". This means that the same port has to be used on both the host and the container. To be able to serve on port 443, you should configure the loadbalancer to listen on port 443 HTTPS but forward traffic to port 8090 (default secure codebeamer port) HTTP.


The hostname of the containers should match the private DNS name of the EC2 instance (e.g. ip-20-16-0-153.eu-central-1.compute.internal)


Also, some environment variables, more precisely java options should be set to this value as well. To achieve this, you need to mount an env.sh script to /home/appuser/env.sh in your container. Codebeamer will automatically detect this file, and will run its contents. The content of the file should be:

#!/usr/bin/env bash

export JVM_OPTIONS="${JVM_OPTIONS} -DCB_CLUSTER_SERVER_ID=$(curl http://169.254.169.254/latest/meta-data/hostname) -DCB_RMI_CACHE_HOSTNAME=$(curl http://169.254.169.254/latest/meta-data/hostname) -Djava.rmi.server.hostname=$(curl http://169.254.169.254/latest/meta-data/hostname)"

Alternatively you can mount your /etc/hostname file to the /home/appuser/hostname location in your container, to read the hostname from there. To achieve this, the contents of the env.sh script should be:

#!/usr/bin/env bash

export JVM_OPTIONS="${JVM_OPTIONS} -DCB_CLUSTER_SERVER_ID=$(cat /home/appuser/hostname) -DCB_RMI_CACHE_HOSTNAME=$(cat /home/appuser/hostname) -Djava.rmi.server.hostname=$(cat /home/appuser/hostname)"

To test the cluster cache configuration, you should use this hostname with HTTP on port 8080 (default unsecured codebeamer port) and the context path (e.g. /cb/, /) for both servers separated by a colon. e.g.:

http://ip-20-16-0-153.eu-central-1.compute.internal:8080/cb/,http://ip-20-16-0-91.eu-central-1.compute.internal:8080/cb/