Automate Your Amazon EC2 Instance Setup with LAMP Stack Using Bash

Automate Your Amazon EC2 Instance Setup with LAMP Stack Using Bash




Introduction

Setting up an Amazon EC2 instance manually can be time-consuming, especially when configuring a LAMP stack (Linux, Apache, MySQL, PHP). This guide introduces a Bash script that simplifies the process, automating tasks such as AWS CLI installation, EC2 instance configuration, and LAMP stack setup. Whether you’re new to AWS or a seasoned cloud engineer, this script can save you significant time and effort.



Prerequisites

Before running the script, ensure you have the following:

  • AWS account: Permissions to launch EC2 instances and configure security groups.
  • Key pair: Created in the AWS region you plan to use.
  • System requirements: A Debian-based Linux system with apt-get package manager.



Features

The script provides the following functionalities:

  1. AWS CLI Check & Installation: Verifies if the AWS CLI is installed and installs it if missing.
  2. Instance Launch: Automates EC2 instance creation with user-specified parameters.
  3. Security Group Configuration: Sets up security rules to allow SSH access from your current IP.
  4. LAMP Stack Installation: Installs and configures Apache, MySQL, and PHP on the instance.



Usage

  1. Clone or download the script.
  2. Make it executable:
   chmod +x setup_ec2.sh
Enter fullscreen mode

Exit fullscreen mode

  1. Run the script:
   ./setup_ec2.sh
Enter fullscreen mode

Exit fullscreen mode

  1. Follow the prompts to input:
    • AMI Image ID
    • Key Pair Name
    • Instance Type (e.g., t2.micro)
    • AWS Region
    • Security Group ID
    • Path to your private SSH key



Script Workflow

The script performs the following steps:



1. AWS CLI Check & Installation

If the AWS CLI is not found on your system, the script installs it using apt-get:

sudo apt-get update
sudo apt install -y awscli
Enter fullscreen mode

Exit fullscreen mode



2. AWS CLI Configuration

The script configures the AWS CLI using your access credentials:

aws configure
Enter fullscreen mode

Exit fullscreen mode



3. EC2 Instance Launch

Prompts you to enter required parameters, then launches an EC2 instance:

aws ec2 run-instances --image-id $image_id --key-name $key_name --instance-type $instance_type --region $region --query 'Instances[0].InstanceId' --output text
Enter fullscreen mode

Exit fullscreen mode



4. Security Group Configuration

Sets up SSH access by authorizing your current IP:

aws ec2 authorize-security-group-ingress --group-id $security_group --protocol tcp --port 22 --cidr $(curl -s https://checkip.amazonaws.com)/32 --region $region
Enter fullscreen mode

Exit fullscreen mode



5. Connect and Install LAMP Stack

Uses SSH to log in to the EC2 instance and install the LAMP stack:

ssh -i $PRIVATE_KEY_PATH ubuntu@$public_ip <<EOF
    sudo apt update && sudo apt -y upgrade
    sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql
    sudo systemctl enable apache2
    sudo systemctl restart apache2
EOF
Enter fullscreen mode

Exit fullscreen mode



Example Output

An example of what to expect when running the script:

2024-11-09 12:00:00 - AWS CLI not found. Installing...
2024-11-09 12:01:00 - Configuring AWS CLI
2024-11-09 12:02:00 - EC2 instance i-1234567890abcdef0 launched successfully.
2024-11-09 12:03:00 - EC2 instance public IP: 18.217.123.456
2024-11-09 12:04:00 - Connecting to EC2 instance via SSH...
2024-11-09 12:05:00 - Setting up LAMP server
2024-11-09 12:10:00 - LAMP setup completed on EC2 instance i-1234567890abcdef0
Enter fullscreen mode

Exit fullscreen mode



Troubleshooting

  • AWS CLI Installation Fails: Ensure your system is Debian-based and supports apt-get.
  • Instance Launch Fails: Double-check your AWS credentials, region, and instance type.
  • SSH Connection Issues: Verify the private key path and ensure security group rules are configured correctly.



Conclusion

This Bash script streamlines the process of setting up an EC2 instance with a LAMP stack, automating repetitive tasks and reducing the potential for errors. By following the steps outlined in this guide, you can deploy a fully functional LAMP server in minutes. Try it out, and feel free to share feedback or suggestions for improvement!

see code here: Automate Your Amazon EC2 Instance Setup with LAMP Stack Using Bash



Source link
lol

By stp2y

Leave a Reply

Your email address will not be published. Required fields are marked *

No widgets found. Go to Widget page and add the widget in Offcanvas Sidebar Widget Area.