Blog
Published On: 2024-05-08 by Wiseman Fernandes
Setting Up Apache Web Server on an EC2 Instance

Introduction

Amazon Elastic Compute Cloud (EC2) instances provide a scalable and reliable platform for hosting web applications. Apache is one of the most popular web servers, known for its flexibility, performance, and security. This guide will walk you through the steps of setting up Apache on an EC2 instance.

Prerequisites

  • An AWS account
  • An EC2 instance running a Linux distribution (e.g., Ubuntu, Amazon Linux)
  • SSH access to your EC2 instance

Steps

  1. Connect to Your EC2 Instance

    Use an SSH client like PuTTY or the terminal on your local machine to connect to your EC2 instance. You'll need the public IP address of your instance and your SSH key pair.

    Bash

    ssh -i your_key_pair.pem ec2-user@your_instance_public_ip
    


  2. Update Package Lists

    Ensure your package lists are up-to-date:

    Bash

    sudo apt update
    


  3. Install Apache Web Server

    Install Apache using the package manager:

    Bash

    sudo apt install apache2
    


  4. Start Apache

    Start Apache after installation:

    Bash

    sudo systemctl start apache2
    


  5. Verify Apache Installation

    Open a web browser and enter the public IP address of your EC2 instance. You should see a default Apache welcome page.

  6. Configure Apache

    The Apache configuration files are located in the /etc/apache2/ directory. You can customize Apache's behavior by editing these files. For example, to change the default document root:

    sudo nano /etc/apache2/sites-enabled/000-default.conf
    


    Modify the DocumentRoot directive to point to your desired directory.

    <Directory /var/www/html/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    


    Restart Apache for changes to take effect:

    Bash

    sudo systemctl restart apache2
    


Additional Considerations

  • Security: Harden your Apache server by disabling unnecessary modules, using strong passwords, and implementing security best practices.
  • Firewall: Configure your EC2 instance's firewall to allow incoming traffic on port 80 (HTTP) and 443 (HTTPS).
  • HTTPS: Set up HTTPS using a Let's Encrypt certificate for secure communication.
  • Monitoring: Use tools like CloudWatch to monitor Apache's performance and resource usage.

Conclusion

By following these steps, you've successfully set up Apache on your EC2 instance and are ready to host your web applications. Remember to customize Apache's configuration to meet your specific requirements and ensure its security.

Server Configuration