Enterprise Runner is exclusively available to customers on the Enterprise tier. If you’re an Enterprise customer, contact your Gitpod account manager for more information.

Deploy your Enterprise AWS Runner using our enhanced CloudFormation template with custom ingress capabilities. This comprehensive guide walks you through the complete deployment process using the AWS Management Console.

Prerequisites

Before starting the deployment, ensure you have:

  • Admin access to the Gitpod organization
  • AWS Account with appropriate permissions to create CloudFormation stacks
  • VPC and Subnets configured in your AWS account
  • SSL/TLS Certificate provisioned in AWS Certificate Manager (ACM) with both root domain and wildcard subdomain SANs
  • Domain Name that you control and can modify DNS records for
  • Permissions to deploy CloudFormation stacks with IAM resources

Create Enterprise Runner in Gitpod

Go to Settings -> Runners, and press Setup a new runner:

Runners in settings

After choosing AWS from the list of available providers, continue with the Enterprise Runner template.

Provider selection

CloudFormation Template selection

Choose the Enterprise Runner template, provide a name and select the AWS region to deploy the Runner into, then press Create. This creates the Runner reference in Gitpod.

Runners are regional, and can only launch Environments in the AWS region they are deployed in. For multi-region support we recommend setting up multiple Runners in different regions. The region cannot be changed once deployed.

Add an AWS Runner

Runner details

CloudFormation Template Deployment

Next, ensure you are signed into the right AWS account in the AWS console, and then press Open AWS CloudFormation to start deploying the Runner into your AWS account. This will link you to the AWS console to create the CloudFormation stack:

Create stack in AWS

Most parameters are auto-filled already. The template is organized into several parameter groups and has to be filled out carefully.

Gitpod Configuration

Core authentication and API connection settings for your Gitpod Runner.

ParameterDescriptionRequired
Runner IDUnique identifier for your Runner (auto-generated by Gitpod)✅ Yes
Exchange TokenAuthentication token for the EC2 Runner (auto-generated by Gitpod)✅ Yes
API EndpointURL of the Gitpod API (auto-generated by Gitpod)✅ Yes

⚠️ Important: These values are automatically generated by Gitpod when you create a Runner configuration. Do not modify these values manually.

Network Configuration (Mandatory)

VPC and subnet settings for deploying the Runner infrastructure.

ParameterDescriptionExample ValueRequired
VPCThe VPC where the Runner will be deployedvpc-12345abcd✅ Yes
Availability ZonesAZs for high availability (select 2-3)us-east-1a, us-east-1b✅ Yes
EC2 Instances SubnetPrivate subnets for EC2 instances (can be non-routable from internal network). Should match the number of AZssubnet-123abc, subnet-456def✅ Yes
Loadbalance SubnetsSubnets for load balancer with CIDR ranges routable from your internal network. Should match the number of AZssubnet-123abc, subnet-456def✅ Yes

Recommendations:

  • Select 2-3 Availability Zones for high availability
  • EC2 subnets: Use private subnets, must be sufficiently large for your expected workload
  • Load balancer subnets: Must have CIDR ranges routable from your internal network for user access
  • Ensure connectivity from user locations via VPN, Direct Connect, or Transit Gateway

Network Configuration (Optional)

Additional security group customization for load balancer traffic control.

ParameterDescriptionExample ValueRequired
Custom Security Group for Load BalancerSecurity group to attach to the load balancer for traffic controlsg-abcdef123❌ Optional

Security Group Behavior:

  • If not provided: An automatic security group will be created that allows all traffic (0.0.0.0/0) to ports 80 and 443
  • If provided: You can specify a custom security group to narrow down the allowed traffic sources for enhanced security

DNS Configuration

Domain name, SSL certificate, and load balancer visibility settings.

ParameterDescriptionExample ValueRequired
Load Balancer VisibilityChoose between internal or internet-facinginternal✅ Yes
Domain NameYour domain name for Gitpod accessyourdomain.com✅ Yes
Certificate ARNARN of your SSL certificate from ACMarn:aws:acm:us-east-1:123456789012:certificate/abc123...✅ Yes

Load Balancer Visibility Options:

  • internal: Load balancer is only accessible from within your VPC (recommended for private deployments)
  • internet-facing: Load balancer is accessible from the internet (only if using public subnets)

Review and Deploy

  1. Review Configuration
    • Verify all parameters are correctly set
    • Review the resource summary
  2. Acknowledge Capabilities
    • Check the box acknowledging that CloudFormation will create IAM resources
    • This is required for the stack to create necessary service roles
  3. Create Stack
    • Click “Create stack” to begin deployment
    • Monitor the deployment progress in the Events tab
The CloudFormation stack deployment typically takes 20-25 minutes.

Monitoring Deployment

  1. Stack Status
    • Monitor the stack status on the CloudFormation dashboard
    • Any errors will be displayed in the Events tab
  2. Event Monitoring
    • Click on the “Events” tab to see real-time deployment progress

Post-Deployment DNS Configuration

Retrieve Load Balancer DNS Name

After successful deployment:

  1. Navigate to Outputs Tab
    • Click on your stack name
    • Go to the “Outputs” tab
  2. Locate DNS Names
    • Find the output value: LoadBalancerDNS: internal-LoadBa-XXXXX-123456789.us-east-1.elb.amazonaws.com

Configure DNS Records

Create DNS records in your domain registry or DNS provider for the exact domain name you specified in the CloudFormation parameters:

Required DNS Records

TypeNameValueTTL
CNAMEyourdomain.cominternal-LoadBa-XXXXX-123456789.us-east-1.elb.amazonaws.com300
CNAME*.yourdomain.cominternal-LoadBa-XXXXX-123456789.us-east-1.elb.amazonaws.com300

Example DNS Configuration:

If you entered yourdomain.com as your domain name parameter, configure:

yourdomain.com.     CNAME   internal-LoadBa-XXXXX-123456789.us-east-1.elb.amazonaws.com.
*.yourdomain.com.   CNAME   internal-LoadBa-XXXXX-123456789.us-east-1.elb.amazonaws.com.

⚠️ Important: Replace yourdomain.com with the exact domain name you entered in the CloudFormation parameters.

  • DNS changes typically propagate within 5-60 minutes
  • You can verify DNS resolution using tools like nslookup or dig
  • Test both the root domain and a wildcard subdomain

Verification and Testing

  1. Internal Network Test
    • Verify that the load balancer is accessible from within your VPC
    • Test from an EC2 instance in the same VPC: curl -k https://yourdomain.com
  2. DNS Resolution Test
    nslookup yourdomain.com
    nslookup test.yourdomain.com
    

Important Stack Outputs

After deployment, the following outputs provide important information for integration:

Output NameDescriptionUsage
LoadBalancerDNSNetwork Load Balancer DNS namePoint your DNS records here
EnvironmentRoleArnEC2 Environment Role ARNUsed by Gitpod Environments for all operations
InstanceProfileNameOutputEC2 Instance ProfileAttached to Runner EC2 instances

Next Steps

Once your Enterprise Runner is deployed, configure your repository access and Environment classes.