Customizing an Instance

Log into your AWS account. To launch the proper instance, select EC2 from the dropdown menu labeled "All services". Select a Linux server as the desired Amazon Machine Image (AMI). This demonstration selects Ubuntu 20.4 LTS, though other Linux servers will also be suitable. Select an instance type. This should be chosen based on class size and computational needs. For AWS's free tier, choose "General purpose" family and "t2.micro" type. Click "Next: Configure Image" to continue. Immediately continue to "Next: Add Storage."

Change the storage from the default to 30 GB. This should be chosen based on class size and computational needs. Continue to “Next: Add Tags”. Tags are optional metadata that describe the instance for categorization and organization purposes. To add a tag, the "Add a tag" button is located on the bottom left. Otherwise, continue to "Next: Configure Security Groups". The default SSH rule will use the standard port 22. Change the source to “Anywhere” to allow the Ubuntu system adminstrator with any IP address to access the instance. For improved security, one can change the source to only allow specific IP. Since JupyterHub uses port 8000 as default for connecting to the internet, it has to be included in the security group. Add a second custom TCP security rule by clicking the “Add Rule” button. Modify the rule to include port 8000. Add an optional description of “JupyterHub.” Continue to the final stage by clicking the blue “Review and Launch” button.

💡 What is port range? A port is a designated number that specifies a network service for operating systems. E.g. Port 80 is assigned to HTTP (Hypertext Transfer Protocol). These are tied to the IP address and communicate the purpose of the network. The TCP (Transmission Control Protocol) port 22 is the default for SSH (Secure Shell). TCP Port 8000 is the default for JupyterHub.

Now, “Launch”.

Selecting “Launch” will prompt the user to select an existing SSH key pair or create a new one. Name and download your key pair.

Important to keep the key private and safe. Losing the key will render your instance inaccessible. Sharing the key could leave your instance vulnerable to unauthorized access.

💡 What is an SSH key? An SSH key pair serves as the "password" which connects a SSH client to the server. This demonstration suggests the use of Bitvise, although other clients, such as PuTTY for Windows/Unix users or the Terminus App for Mac users, can serve as substitutions.