Load Balancers
testgrinder service will be discontinued on January 31, 2025
testgrinder SMPC was discontinued as of February 1, 2024
testgrinder uses two load balances - one, public, for requests arriving from outside of the testgrinder VPC and the other, internal, for communicating with tg-bots.
You can manage load balances on the Load Balancers page in AWS EC2 console at https://console.aws.amazon.com/ec2
Public Load Balancer
You will setup a public load balancer that will handle requests for testgrinder coming from the outside of the testgrinder VPC.
Elastic IP Addresses
The public load balancer will be mapped to all testgrinder VPC subnets with one (at least) subnet being assigned an Elastic IP address (rather than assigning an EIP directly to a tg-app instance). It is recommended but not required to allocate and assign an EIP address to each mapping. Make sure the EIP(s) are allocated and configured in your DNS server for the testgrinder domain name before creating the public load balancer.
Create Public Load Balancer
Visit the Load Balancers page in AWS EC2 console
Click Create load balancer
Click Create under Network Load Balancer
In Basic configuration:
Give the balancer a name, e.g. tg-prod-app-public
Scheme: Internet-facing
IP address type: IPv4
Network mapping:
VPC: choose testgrinder VPC
Mappings: select all availability zones
Assign an EIP address to one of the zones, ideally assign an EIP address to each
Note: you cannot assign the same EIP to several availability zones, choose t
Make sure your DNS maps the testgrinder domain name to the EIP(s)
Listeners and routing:
Listener: TCP:22
Protocol: TCP
Port: 22
Forward to: tg-prod-app-public-ssh target group
Listener: TCP:80
Protocol: TCP
Port: 80
Forward to: tg-prod-app-public-http target group
Listener: TCP: 443
Protocol: TCP
Port: 443
Forward to: tg-prod-app-public-https target group
Click Create load balancer
Enable cross-zone load balancing
Select the load balance you just created, click Actions, and choose Edit load balancer attributes
In Target selection configuration make sure:
Cross-zone load balancing: enabled
Click Save changes
Internal Load Balancer
Visit the Load Balancers page in AWS EC2 console
Click Create load balancer
Click Create under Network Load Balancer
In Basic configuration:
Give the balancer a name, e.g. tg-prod-app-internal
Scheme: Internal
IP address type: IPv4
Network mapping:
VPC: choose testgrinder VPC
Mappings: select all availability zones
Ignore the warning: Your internal load balancer must have a private subnet
Listeners and routing:
Listener: TCP:3000
Protocol: TCP
Port: 3000
Forward to: tg-prod-app-private-bot target group
Click Create load balancer
Enable cross-zone load balancing
Select the load balance you just created, click Actions, and choose Edit load balancer attributes
In Target selection configuration make sure:
Cross-zone load balancing: enabled
Click Save changes
Last updated