How to Create a Website on AWS Using YouTube Videos: A Simple Guide
Creating your own website can be a fantastic way to share your work, whether it's showcasing your data science projects, writing a blog, or building an online portfolio. Amazon Web Services (AWS) is a popular platform for hosting websites, but getting started can be a bit overwhelming.
I stress that AWS and their product names leaves a lot to be desired. EC2? Route53? All of it is migraine-inducing. My guiding light has been youtube tutorials.
Buy a domain name
I did this so long ago that I can't remember it. Technically, I bought it off of GoDaddy or something. Then I transferred it to AWS. So, the instructions on how to do it would not help anyone else except in my unique situation.
Hosting your personal site
Angel #1: A Monk in Cloud Youtube Channel This is how you get your website started and online. You go to Amazon, you turn on an "instance". I think of it as a cloud/virtual computer somewhere in Jeff Bezosland. You'll have to configure the type of operating system. The youtube tutorial used linux. So I followed suit. Then you send your files to the cloud. Then you open up the ports to allow the internet to access it. However, the link is just a public ip. If you want the a "www" address you'll have to connect it to a domain. That's the next step. Here's some commands I had to use in this part of the project. Entering it here for posterity sake.
sudo su - yum update -y yum install -y httpd systemctl status httpd ls -lrt mv * /var/www/html systemctl enable httpd systemctl start httpd
Point your Domain to EC2 Instance using Route 53
Angel #2: Koding 101 Channel This is how to connect your purchase domain name to your hosted website. Instead of XX.XX.XX.XX you'll have something like "http://www.tophernguyen.com" This was actually pretty straightforward. However, this doesn't resolve when someone tries to https:\\www.tophernguyen.com. I'll have to buy a security certificate at some point and return to update that.
Updating my website files
Angel #3: Ram N Java This is how I update my website files. I'm using WINSCP to directly upload files to the EC2 instance (what I consider the cloud computer that's in Jeff Bezosland). I had to create a ppk. Amazon defaults to something else, so make sure to either have a method to change the type. Another hurdle was that I could not copy into the EC2 instance because of permissions. I had to change the permissions of the destination folder. I probably made it less secure because of that. Oh well, it's always a balance of security and convenience.
Editing Permissions to upload to hosted website. Not even a day goes by and I had to figure out the permissions problem again. Go to the instance via aws or use putty. Navigate to folder containing the directory you need to update
sudo su - chmod 777 [directory name]
My SSL certificate expired. I'm using Let's Encrypt which is a free SSL certificate. I used their documentation to originally set it up. I am running my server on Amazon Linux 2023. There's documentation on nginx and apache servers. I took a 50/50 bet and guessed nginx. Well, I was wrong. I had to uninstall Let's Encrypt installation and install the Apache version. The commands to renew the SSL cert are:
sudo su - sudo certbot --apache
Other Important Stuff
Free-CSS.com In the video on how to host a website, the youtube creator used this website to grab a template. I figured if it's good enough for the youtube creator, it's good enough for me. I picked one that suited my needs and did my best to understand HTML and CSS.
Unsplash.com For stock photos, I go to this website to find the closest one I can find to meet my needs.