The AMIs provided by AWS contain little more than just the operating system. So to run a PHP web application, for example, you would need to install Apache and PHP. This can be done automatically using User Data, or with an automation tool like Chef or Puppet. Doing it that way extends the wait time to instance “readiness.”
Many applications, such as those in an autoscaling environnemt, need instances ready to use immediately. By creating custom AMIs we can lauch pre-configured instances and skip the wait.
Note: For Windows PuTTY ssh connections to EC2 instances, see:
https://linuxacademy.com/blog/linux/connect-to-amazon-ec2-using-putty-private-key-on-windows/ or https://www.youtube.com/watch?v=bi7ow5NGC-U
For information on using the Cloud Playground, see:
** Please reference the updated commands provided in the Objectives section.
Successfully complete this lab by achieving the following learning objectives:
- Launch a Configuration Instance
Launch an instance from a Base AWS Linux AMI:
- Login to the Management Console
- Launch EC2 instance using the AWS Linux AMI:
- Public IP
- Create a Security Group with SSH (TCP 22) an HTTP (TCP 80) access
- Download a Key Pair
- Install Apache and PHP
SSH to the instance and execute the following commands to install Apache and PHP:
(Windows users see: https://www.youtube.com/watch?v=bi7ow5NGC-U for using PuTTY for SSH)
sudo yum update -y
sudo yum install -y httpd php
sudo systemctl start httpd
sudo systemctl enable httpd
Create a PHP page with the following commands:
sudo usermod -a -G apache ec2-user
sudo chown -R ec2-user:apache /var/www
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
To display the PHP Info page, open a web browser to: [Your EC2 Instance’s Public IP]/phpinfo.php
- Create a Custom AMI
In the EC2 Management Console, create an image from the config instance:
- Select the instance in the console
- Under the Actions menu, choose Create Image:
- Name the Image
- Launch an instance from the new Image by going under "MyAMI’s"
- Configure the new instance’s details as before.
- Verify the PHP page displays in the browser as before (you can use your existing SG that you created).