1. Launch an EC2 instance on AWS
- Sign up on AWS
- Launch an EC2 instance with a free-tier option
- Ubuntu
- Security Group
- t2.micro
- Download a key-pair for accessing the EC2 instance (ex:
.pemfile)
- SSH into the EC2 instance
ssh -i <path_to_keypair_pem_file> ubuntu@<ec2_public_ip_address>
- Install nginx for web server
sudo apt install nginx- Ubuntu’s NGINX installation guide
- Install other necessary packages such as
git
2. Move the static files of the website onto EC2 instance
Ideally, when I have more knowledge on this, I’d like to automate the process of having the static files of the blog website through CI/CD pipeline such as GitHub Action.
- Use
scpto move directory and files to the EC2 instancescp -i <path_to_keypair_pem_file> -r <your_local_files_and_directories> ubuntu@<ec2_public_ip_address>:<destination_path_to_move_files_to>
- GitHub Action:
- (to do in the future)
3. Move static files to /var/www/html
- This blog website is made from Hugo so I used
hugo buildcommand to build its static files first. Then, I moved thepublicdirectory to the EC2 instance.- Ensure the
index.htmlis there
- Ensure the
4. Start NGINX server
sudo systemctl start nginx.serviceto start the NGINX serversudo systemctl status nginxto check the status of the NGINX server- For me, I had to add
sudoat the front of the command so that the EC2 instance does not ask me authentication password.
5. Access the static website through EC2 public IP address
- We can open the web browser and access the public IP address, the static website is there!
Questions
- How does NGINX work as a webserver?
- The browser says “Not secure” for the IP address. How can I make it “Secure”?
- How can I automate the building the static website and deploying to the EC2 instance?
- NGINX serves as a proxy, load balancer, security (encryption), how can apply this to the EC2 instance?
- How does
sshwork?