2019-08-17 03:46:37 +08:00
|
|
|
# Deploy on AWS EC2
|
2019-03-05 02:31:27 +08:00
|
|
|
|
2019-08-17 03:46:37 +08:00
|
|
|
This tutorial shows you how to deploy `code-server` on an AWS EC2 instance.
|
2019-03-05 02:31:27 +08:00
|
|
|
|
2019-08-17 03:46:37 +08:00
|
|
|
If you're just starting out, we recommend
|
|
|
|
[installing code-server locally](self-hosted-docs). It takes only a few minutes
|
|
|
|
and lets you try out all of the features locally.
|
|
|
|
|
|
|
|
If you get stuck or need help at anytime, [file an issue](create-issue),
|
|
|
|
[tweet (@coderhq)](twitter-coderhq) or [email](email-coder).
|
|
|
|
|
|
|
|
[self-hosted-docs]: ../../self-hosted/index.md
|
|
|
|
[create-issue]: https://github.com/cdr/code-server/issues/new?title=Improve+AWS+quickstart+guide
|
|
|
|
[twitter-coderhq]: https://twitter.com/coderhq
|
|
|
|
[email-coder]: mailto:support@coder.com?subject=AWS%20quickstart%20guide
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### Creating an Instance using the AWS Launch Wizard
|
|
|
|
|
|
|
|
1. Click **Launch Instance** from your [EC2 dashboard](ec2-home).
|
|
|
|
2. Select the "Ubuntu Server 18.04 LTS (HVM), SSD Volume Type" AMI..
|
|
|
|
3. Select an appropriate instance size (we recommend t2.medium/large, depending
|
|
|
|
on team size and number of repositories/languages enabled), then **Next:
|
|
|
|
Configure Instance Details**.
|
|
|
|
4. Select **Next: ...** until you get to the **Configure Security Group** page,
|
|
|
|
then add a **Custom TCP Rule** rule with port range set to `8443` and source
|
|
|
|
set to "Anywhere".
|
|
|
|
> Rules with source of 0.0.0.0/0 allow all IP addresses to access your
|
|
|
|
> instance. We recommend setting [security group rules](ec2-sg-docs) to allow
|
|
|
|
> access from known IP addresses only.
|
|
|
|
5. Click **Launch**.
|
|
|
|
6. You will be prompted to create a keypair.
|
|
|
|
> A key pair consists of a public key that AWS stores, and a private key file
|
|
|
|
> that you store. For Linux AMIs, the private key file allows you to
|
|
|
|
> securely SSH into your instance.
|
|
|
|
7. From the dropdown choose "create a new pair", give the key pair a name.
|
|
|
|
8. Click **Download Key Pair**. This is necessary before you proceed. A `.pem`
|
|
|
|
file will be downloaded. make sure you store is in a safe location because it
|
|
|
|
can't be retrieved once we move on.
|
|
|
|
9. Finally, click **Launch Instances**.
|
|
|
|
|
|
|
|
[ec2-home]: https://console.aws.amazon.com/ec2/v2/home
|
|
|
|
[ec2-sg-docs]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html?icmpid=docs_ec2_console
|
2019-03-05 02:31:27 +08:00
|
|
|
|
|
|
|
---
|
|
|
|
|
2019-08-17 03:46:37 +08:00
|
|
|
### Installing code-server onto an AWS Instance
|
|
|
|
|
|
|
|
1. First head to your [EC2 dashboard](ec2-home) and choose **Instances** on the
|
|
|
|
left sidebar.
|
|
|
|
2. Select the instance you just created, and in the description tab at the
|
|
|
|
bottom of the screen copy the **Public DNS (IPv4)** address using the copy to
|
|
|
|
clipboard button.
|
|
|
|
3. Open a terminal on your computer and use the following command to SSH into
|
|
|
|
your EC2 instance. If you're using Windows, you can use [PuTTY](putty-guide)
|
|
|
|
to open an SSH connection.
|
|
|
|
```
|
|
|
|
ssh -i "path/to/your/keypair.pem" ubuntu@(paste the public DNS here)
|
|
|
|
```
|
|
|
|
> For example: `ssh -i "/Users/John/Downloads/TestInstance.pem" ubuntu@ec2-3-45-678-910.compute-1.amazonaws.co`
|
|
|
|
4. If you get a warning about an unknown server key fingerprint, type "yes" to
|
|
|
|
approve the remote host.
|
|
|
|
5. You should see a prompt for your EC2 instance like so:
|
|
|
|
<img src="../../assets/aws_ubuntu.png">
|
|
|
|
6. At this point it is time to download the `code-server` binary. We will, of
|
|
|
|
course, want the linux version. Find the latest code-server release from the
|
|
|
|
[GitHub releases](code-server-latest) page.
|
|
|
|
7. Right click the Linux x64 `.tar.gz` release asset and copy the URL. In the
|
|
|
|
SSH terminal, run the following command:
|
|
|
|
```
|
|
|
|
wget (paste the URL here)
|
|
|
|
```
|
|
|
|
8. Extract the downloaded file with the following command:
|
|
|
|
```
|
|
|
|
tar -xvzf code-server*.tar.gz
|
|
|
|
```
|
|
|
|
9. Navigate to extracted directory with this command:
|
|
|
|
```
|
|
|
|
cd code-server*/
|
|
|
|
```
|
|
|
|
10. Ensure the code-server binary is executable with the following command:
|
|
|
|
```
|
|
|
|
chmod +x code-server
|
|
|
|
```
|
|
|
|
11. Finally, to start code-server run this command:
|
|
|
|
```
|
|
|
|
./code-server
|
|
|
|
```
|
|
|
|
12. code-server will start up, and the password will be printed in the output.
|
|
|
|
Make sure to copy the password for the next step.
|
|
|
|
13. Open your browser and visit `https://$public_ip:8443/` (where `$public_ip`
|
|
|
|
is your AWS instance's public IP address). You will be greeted with a page
|
|
|
|
similar to the following screenshot. code-server is using a self-signed SSL
|
|
|
|
certificate for easy setup. In Chrome/Chromium, click **Advanced** then
|
|
|
|
click **proceed anyway**. In Firefox, click **Advanced**, then **Add
|
|
|
|
Exception**, then finally **Confirm Security Exception**.
|
|
|
|
<img src="../../assets/chrome_warning.png">
|
|
|
|
|
|
|
|
[putty-guide]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html
|
|
|
|
[code-server-latest]: https://github.com/cdr/code-server/releases/latest
|
|
|
|
|
2019-03-05 02:31:27 +08:00
|
|
|
---
|
2019-08-17 03:46:37 +08:00
|
|
|
|
|
|
|
### Post Installation Steps
|
|
|
|
|
|
|
|
To ensure the connection between you and your server is encrypted, view our
|
|
|
|
guides on [securing your setup](security-guide).
|
|
|
|
|
|
|
|
For instructions on how to keep the server running after you end your SSH
|
|
|
|
session please checkout [how to use systemd](systemd-guide). systemd will run
|
|
|
|
code-server for you in the background as a service and restart it for you if it
|
|
|
|
crashes.
|
|
|
|
|
|
|
|
[security-guide]: ../../security/index.md
|
2019-08-19 19:12:04 +08:00
|
|
|
[systemd-guide]: https://www.digitalocean.com/community/tutorials/how-to-configure-a-linux-service-to-start-automatically-after-a-crash-or-reboot-part-1-practical-examples
|