If you’ve ever wondered how to host your website on AWS, one of the most popular cloud platforms, this guide is for you. With Amazon EC2 (Elastic Compute Cloud), you can host a website with great flexibility and scalability, providing a reliable platform to grow your online presence. In this article, I’ll walk you through the step-by-step process of setting up a website on AWS EC2 from scratch.
Let’s dive in!
For a visual walkthrough of the concepts covered in this article, check out my YouTube Video:-
Why AWS EC2 for Website Hosting?
Amazon Web Services (AWS) provides a powerful cloud infrastructure, and EC2 is at the heart of it. It allows you to run virtual servers in the cloud, providing you with control over the operating system, server configuration, and the applications you run. AWS EC2 is ideal for hosting websites due to its:
- Scalability: You can easily adjust the server resources based on traffic.
- Cost-effectiveness: The free tier is perfect for small-scale projects, and you only pay for what you use.
- Reliability: AWS provides high uptime and availability.
- Customizability: You have full control over the server configuration.
Ready to get started? Let’s set up your website on AWS EC2!
Step 1: Set Up Your AWS Account
The first step in hosting a website on AWS EC2 is to create an AWS account if you don’t already have one. Here’s how:
- Head over to AWS and sign up for an account.
- Complete the registration process and select the free tier option if you’re just getting started. This gives you 750 hours of t2.micro instance usage per month for the first 12 months — more than enough for a small website.
Once your account is set up, you can access the AWS Management Console, where the magic happens.
Step 2: Launch an EC2 Instance
Now that you’ve got your account ready, it’s time to launch an EC2 instance. Think of this instance as your virtual server.
- In the AWS Management Console, navigate to EC2 under the ‘Compute’ section.
- Click on Launch Instance.
- Choose an Amazon Machine Image (AMI): Select an operating system for your instance. Amazon Linux 2 or Ubuntu are good choices for website hosting.
- Select an Instance Type: Choose t2.micro if you’re within the free tier.
- Configure Instance Details: You can keep most of the default settings, but ensure that Auto-assign Public IP is enabled. This will allow your instance to be accessible via the internet.
- Add Storage: Keep the default settings unless you need more storage for your website files.
- Configure Security Group: This step is critical. You’ll need to open port 80 (for HTTP traffic) and port 443 (for HTTPS traffic) to allow web access. Also, make sure to allow port 22 for SSH access so you can connect to your instance later.
- Review and Launch: Double-check your settings and click Launch. When prompted, either create a new key pair or use an existing one. Download the key pair as you will need it to connect to your instance.
Your EC2 instance will now begin launching, and it should be ready in a few minutes.
Step 3: Connect to Your EC2 Instance
Once your instance is running, it’s time to connect to it and set up your web server.
- Go to the EC2 Dashboard, select your instance, and click on Connect.
- You’ll be provided with SSH connection details. Use the following command to connect from your terminal (for Linux or macOS):
ssh -i "your-key.pem" ec2-user@your-ec2-public-ip
If you’re on Windows, you can use an SSH client like PuTTY to connect to your instance.
Step 4: Install a Web Server (Apache or Nginx)
After connecting to your EC2 instance, you’ll need to install a web server to host your website. Here, I’ll use Apache, but you can also use Nginx.
- Update the Package Manager:
sudo yum update -y # Amazon Linux 2
sudo apt-get update # Ubuntu
2. Install Apache:
sudo yum install httpd -y # Amazon Linux 2
sudo apt-get install apache2 -y # Ubuntu
3. Start the Apache Web Server:
sudo service httpd start # Amazon Linux 2
sudo systemctl start apache2 # Ubuntu
4. Enable Apache to Start on Boot:
sudo systemctl enable httpd # Amazon Linux 2
sudo systemctl enable apache2 # Ubuntu
At this point, Apache is running, and your EC2 instance is ready to serve your website. However, you need to upload your website files.
Step 5: Upload Your Website Files
You can now upload your website files to your EC2 instance. To do this, you can use SCP (Secure Copy) or an FTP client.
- Transfer Files via SCP: Open your terminal and run the following command to upload your
index.html
file:
scp -i "your-key.pem" index.html ec2-user@your-ec2-public-ip:/var/www/html/
2. Set File Permissions:
sudo chmod 755 /var/www/html/index.html
Your website should now be live on the public IP of your EC2 instance.
Step 6: Configure a Domain Name (Optional)
If you want to use a custom domain name instead of the EC2 public IP, you’ll need to configure DNS settings.
- Get your EC2 Public IP from the EC2 dashboard.
- Log into your domain registrar (e.g., GoDaddy, Namecheap) and create an A Record pointing to your EC2 public IP address.
Once the DNS settings propagate, your domain should point to your EC2-hosted website.
Step 7: Secure Your Website with SSL (Optional)
For added security, it’s a good idea to secure your website with an SSL certificate. Let’s Encrypt offers free SSL certificates that are easy to install with Certbot.
- Install Certbot:
sudo yum install certbot -y # Amazon Linux 2
sudo apt-get install certbot -y # Ubuntu
2. Run Certbot to generate and install the SSL certificate:
sudo certbot --apache
3. Follow the Prompts: Certbot will guide you through the process of installing the certificate and configuring Apache for HTTPS.
Step 8: Test Your Website
At this point, your website should be live! Open your browser and enter your EC2 public IP or domain name, and you should see your website up and running.
Conclusion
You’ve successfully hosted your website on AWS EC2! In this guide, we covered setting up an AWS EC2 instance, installing a web server, uploading your website files, and even securing your site with SSL.
With EC2, you have the flexibility to scale, customize, and manage your website as you see fit. Whether you’re running a personal blog, a portfolio, or a business site, AWS EC2 offers the tools and infrastructure to support your needs.
Connect with Me:
- YouTube ► S3 CloudHub Channel
- Facebook ► S3 CloudHub Page
- Medium ► S3 CloudHub Blog
- Demo Reference ► GitHub Repository
- Blog ► S3 CloudHub Blogspot
- Dev ► S3 CloudHub on Dev.to
No comments:
Post a Comment