AWS EC2
This guide is designed to get you up and running with a Coder proof-of-concept VM on AWS EC2 using a Coder-provided AMI. If you are familiar with EC2 however, you can use our install script to run Coder on any popular Linux distribution.
Requirements
This guide assumes your AWS account has AmazonEC2FullAccess
permissions.
Launch a Coder instance from the from AWS Marketplace
We publish an Ubuntu 22.04 AMI with Coder and Docker pre-installed. Search for
Coder
in the EC2 "Launch an Instance" screen or
launch directly from the marketplace.
Be sure to keep the default firewall (SecurityGroup) options checked so you can connect over HTTP, HTTPS, and SSH.
We recommend keeping the default instance type (t2.xlarge
, 4 cores and 16 GB
memory) if you plan on provisioning Docker containers as workspaces on this EC2
instance. Keep in mind this platforms is intended for proof-of-concept
deployments and you should adjust your infrastructure when preparing for
production use. See: Scaling Coder
Be sure to add a keypair so that you can connect over SSH to further configure Coder.
After launching the instance, wait 30 seconds and navigate to the public IPv4 address. You should be redirected to a public tunnel URL.
That's all! Use the UI to create your first user, template, and workspace. We recommend starting with a Docker template since the instance has Docker pre-installed.
Configuring Coder server
Coder is primarily configured by server-side flags and environment variables. Given you created or added key-pairs when launching the instance, you can configure your Coder deployment by logging in via SSH or using the console:
ssh ubuntu@<ec2-public-IPv4>
sudo vim /etc/coder.d/coder.env # edit config
sudo systemctl daemon-reload
sudo systemctl restart coder # restart Coder
Give developers EC2 workspaces (optional)
Instead of running containers on the Coder instance, you can offer developers full EC2 instances with the aws-linux template.
Before you add the AWS template from the dashboard or CLI, you'll need to modify the instance IAM role.
You must create or select a role that has EC2FullAccess
permissions or a
limited
Coder-specific permissions policy.
From there, you can import the AWS starter template in the dashboard and begin creating VM-based workspaces.