AWS (Amazon Web Services)

Virtual Servers and Command Lines: Week 3 of Building and Uploading a Website

Ethan M. Lee
4 min readApr 17, 2020

--

Throughout this month I have decided to build my own website from scratch using HTML and to host it myself. I am doing this so that I can learn basic HTML and CSS and demonstrate my knowledge of computer networking. This is my week 3 documentation so if you are new then you can find the documentation for weeks 1 and 2 here.

Week 3 Goals

For this week’s goals, I wanted to set up the groundwork for hosting my website. This involved choosing a VPS, researching how to use the VPS as I had never used one before, and

“A [VPS or a] virtual private server is a virtual machine sold as a service by an Internet hosting service,”(Wikipedia)

Why Use A VPS

Some people might say, “Ethan! Why are you spending time trying to figure out how a VPS works and which one to use when you can use an easier method?” and that is a valid question to have.

When it comes down to it, it’s about learning how to manage a VPS. Many companies use virtual private servers such as AWS to host their web apps or databases. I wanted to learn how to manage a VPS because that’s a career path that interests me.

Another reason is freedom. If I built my website with Wix for example, I would be stuck with them and would not have the ability to move to a different service. Hosting myself and building everything from scratch gives me the ability to replace individual parts instead of having to start from scratch every time I want to move to another company.

Virtual Private Servers are also very versatile. You can use a VPS for more than just web hosting. You can connect them to each other and automate a ton of things and make your life easier in the future.

This leads to my last reason: Cost. Using a VPS makes web hosting competitive. Competition makes prices go down and therefore lowers costs. And who doesn’t want to save money?

Problems and Solutions

Throughout this process, I encountered some of the hardest problems I had faced throughout this project. I was diving into a world of which I had no experience, and where mistakes had harsh consequences.

Choosing A VPS

The biggest thing I had to research was which VPS provider I would choose. Ultimately I chose AWS because it had a 12 Month free tier. I did this for two reasons. The first reason is that a 12-month free trial is insane and a great way to learn the system. You simply cannot beat free. Second of all is that many businesses use it. This means that I am gaining experience that I will be able to use in the future job.

Managing A Computer That’s on Another Network

Having a home server, I am familiar with how to automate tasks and how to port forward, however, the process is much different when the computer is not on your home network. If everything goes wrong you can’t just plug a monitor and keyboard into the computer and fix something manually. Everything had to be done through the AWS interface. I had to relearn things that I already knew how to do if the computer was right in front of me. This experience taught me how to use tools such as Putty and FileZilla and decided to create video documentation on them.

Photo of FileZilla

Using the Command Line

Using the command line instead of a graphical interface is daunting. Most people prefer a settings menu to typing something cryptic into a black box on your computer. I was afraid that I would do something wrong having used basic settings menus my whole life, however it was not nearly as bad as I expected. I found that I could be more direct with what I wanted the computer to do and could accomplish tasks faster.

Photo by Markus Spiske on Unsplash

Progress

  • I chose to use AWS for my VPS
  • I did research and learned how to use the AWS Dashboard
  • I learned how to work with virtual private servers
  • I learned tech tools such as FileZilla and Putty
  • I learned how to use the command line
  • I installed docker and a docker image of Nginx on the VPS

What I’m working on next

Next week is my final week to work on this project. I will be using NGINX and Docker to finally make my website available on the internet.

--

--

Ethan M. Lee

I am currently a Devops Engineer at BeyondMD. If you like my stuff you can see more at https://www.ethanmlee.com