<h1 style='border: none'><center>Parallel and Distributed Systems Lab 3</center></h1>
<h2 style='border: none'><center>Amazon Web Service(AWS)<br>EC2 & AMI</center></h2>
<h5><center>The Islamic University of Gaza<br>Engineering Faculty<br>Department of Computer Engineering</center></h5>
<h6>Authors: Usama R. Al Zayan<span style="float:right">2022/09/12</span></h6>
---
## Amazon EC2
* EC2 is one of the most popular of AWS’ offering
* EC2 = Elastic Compute Cloud = Infrastructure as a Service
* It mainly consists in the capability of :
• Renting virtual machines (EC2)
• Storing data on virtual drives (EBS)
• Distributing load across machines (ELB)
• Scaling the services using an auto-scaling group (ASG)
* Knowing EC2 is fundamental to understand how the Cloud works
### EC2 sizing & configuration options
* Operating System (OS): Linux, Windows or Mac OS
* How much compute power & cores (CPU)
* How much random-access memory (RAM)
* How much storage space:
• Network-attached (EBS & EFS)
• hardware (EC2 Instance Store)
* Network card: speed of the card, Public IP address
* Firewall rules: security group
* Bootstrap script (configure at first launch): EC2 User Data
### Security Groups
* Security Groups are the fundamental of network security in AWS
* They control how traffic is allowed into or out of our EC2 Instances.
<center>
![](https://i.imgur.com/BDSy4q1.png =500x)
</center>
* Security groups only contain rules
* Security groups rules can reference by IP or by security group
* Security groups are acting as a “firewall” on EC2 instances
* They regulate:
• Access to Ports
• Authorised IP ranges – IPv4 and IPv6
• Control of inbound network (from other to the instance)
• Control of outbound network (from the instance to other)
![](https://i.imgur.com/G5WaeAo.png)
### How to Create EC2 Instance:
#### The steps are explained in this [video](https://youtu.be/rjxWiX01iCQ).
1. Search for EC2 service in the top search bar.
![](https://i.imgur.com/4hTUz7n.png)
2. Choose an instance from the left menu.
![](https://i.imgur.com/qg6G20o.png)
3. Click Launch instance Button.
![](https://i.imgur.com/JzryohD.png)
4. Enter instance Name and choose the operating system you want, we usually use Amazon Linux or Ubuntu.
![](https://i.imgur.com/lR7bNgp.png)
5. Chosse instance type (t2.micro For free tier). You can press Compare instance types to compare between different types.
![](https://i.imgur.com/gj8vziN.png)
6. As you can see $t2.micr$ has one vCPU, one GiB Memory and 0.0116 USD per Hour.
![](https://i.imgur.com/2P0lQVL.png)
7. Click Create new key pair Or you can Proceed without a key pair (Not recommended).
![](https://i.imgur.com/FnQxO8f.png)
8. Enter key pair name, chosse RSA and .pem the click create key pair.
<center>
![](https://i.imgur.com/Nt9fzeV.png =500x)
</center>
9. Create security group or Select existing secutity group.
![](https://i.imgur.com/9YAe1yw.png)
10. Configure storage. By default 8 GiB is mostly enough.
![](https://i.imgur.com/tPMdwts.png)
11. (optional) In Advanced details you can add User data. Specify user data to provide commands or a command script to run when you launch your instance.
![](https://i.imgur.com/NSOLhxh.png)
12. Finally, in the summary, you can see a summary of the instance, specify the number of instances you want to create, and then click Launch instance.
<center>
![](https://i.imgur.com/ktZRGUg.png =400x)
</center>
13. Click view all instance.
![](https://i.imgur.com/zoA62Fi.png)
### Connect to EC2 instance using the console (browser)
1. Select EC2 instance then Click connect form Action.
![](https://i.imgur.com/TUBooTp.png)
2. Then Click connect.
![](https://i.imgur.com/Ufqx2lC.png)
3. Now you are in the EC2 instance.
![](https://i.imgur.com/hdaWwvM.png)
### How to SSH into your EC2 Instance
#### The steps are explained in this [video](https://youtu.be/CvnfQpdzDuE).
1. Open an SSH client.
2. Locate your private key file. (key.pem)
3. Run this command, if necessary, to ensure your key is not publicly viewable.
````linux
chmod 400 EC2_test_key.pem
````
4. Connect to your instance using its Public IPv4 address (in the Details):
````linux
ec2-54-234-126-10.compute-1.amazonaws.com
````
![](https://i.imgur.com/jUw5DaN.png)
#### Example:
````linux
ssh -i .\test.pem ec2-user@34.238.240.140
````
![](https://i.imgur.com/tZaxjFx.png)
### How to terminate or Stop EC2 Instances?
![](https://i.imgur.com/J1ROz04.png)
## Amazon Machine Images (AMIs)
* AMI are a customization of an EC2 instance
* You add your own software, configuration, operating system, monitoring…
• Faster boot / configuration time because all your software is pre-packaged
• AMI are built for a specific region (and can be copied across regions)
* You can launch EC2 instances from:
• A Public AMI: AWS provided
• Your own AMI: you make and maintain them yourself
• An AWS Marketplace AMI: an AMI someone else made (and potentially sells)
### AMI Process (from an EC2 instance)
* Start an EC2 instance and customize it
* Stop the instance (for data integrity)
* Build an AMI – this will also create EBS snapshots
* Launch instances from other AMIs
### How to create image form Ec2 instance?
![](https://i.imgur.com/nHzLJZg.png)
### How to create EC2 from AMI
To help you get started, an AMI (AMI ID = 080ff70d8f5b80ba5) is provided with the following software:
* Python
* MySQL Server (root password ece1779pass)
* Database and AWS Flask examples covered in lectures
* gunicorn This is a high-performance server for Python-based applications. For an example of how to run it, look at the `run.sh` file inside /home/ubuntu/extras/run.sh
* In addition the directory in Desktop/ece1779 contains the following:
• databases: A PyCharm project with all examples from the databases lecture and tutorial
• extras: A PyCharm project with code for transcoding photos and a sample form that conforms to the load testing interface
<span style="color:#e20000" >**Note: Use ubuntu as user name when ssh.**</span>
````linux
ssh -i .\test.pem ubuntu@34.238.240.140
````
![](https://i.imgur.com/IOGLFpJ.png)
###### tags: `Parallel and Distributed Systems` `Cloud computing` `IUG` `Computer Engineering`
<center>End Of Lab 3</center>