====== Guides: Web server: Part 1 ======
* [[:guides/webserver|Back to Guides: Webserver]]
===== Setting up your Amazon EC2 instance =====
Visit Amazon Web Services and create an account https://aws.amazon.com/ You will have to put credit card details in, but you won't be charged for your first year if you select a product in the free tier (the free tier has an adequate server for what we'll need, just don't create a second one).
Get logged in to the AWS site to you see your username beside the bell icon. Hit the orange button "Sign in to console"
* In the top-right of the nav bar left of "Support" is a region, click this to change your region to EU e.g. Ireland
* In the top-left of the nav bar click **Services** then **EC2**, or search for EC2 in the search bar.
* Click **Launch Instance**
* Select **Ubuntu Server 18.04 LTS, 64-bit (x86)**
* Choose the **General Purpose t2.micro** option (it should say "Free tier eligible" in green)
* Click **Review and Launch**, then **Launch**
It may take a few minutes for Amazon to approve your launch request\\
You'll be asked to set up a key pair and save it to your machine. Select **Create a new pair** and hit **Continue**. It's important you don't lose this file or you'll lose whatever is in your EC2 instance and will have to launch a new one.\\
\\
Now we should add security rules so when we make the web pages they will be accessible by anyone with a browser.
==== Security ====
In the navigation pane choose Security Groups. Select Create Security Group.\\
Give it a name and a description.\\
Click Add Rule.\\
Enter the following rule settings:
|Type| HTTP|
|Protocol| TCP|
|Port range| 80|
|Source| anywhere|
Click Create.
Then we need to assign that rule to our server instance.\\
Back in the side menu select Instances.\\
Tick your instance.\\
Go to Actions > Networking > Change Security Groups.\\
Tick your security group and Apply.\\
{{wiki:securitygroupmenu.png?400}}
You should now be able to connect to your instance.
Make sure you **DON'T** disable the existing ticked Security Groups (those are the ones that let you SSH into the server) i.e. install-wizard.
==== On Mac/Linux/Windows ====
Mac and Linux systems (as well as Windows 10+) have builtin OpenSSH tools to connect to your server:
ssh -i youridentityfile.pem ubuntu@your_server_ip
**Having trouble with permissions or accessing the PEM file?** You probably have to set correct permissions on the PEM file. Further information [[creating_an_ssh_shortcut|is here]]
chmod 600 youridentityfile.pem
==== On Windows ====
If you don't have SSH installed (you get a ''command not found'' error when trying to run ssh from the command prompt), you'll need to download PuTTY and convert your PEM file to PPK:
* Download PuTTY from https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html You generally want to choose the '64 bit MSI (Windows Installer)' option.
* You'll have to convert the PEM file from Amazon to a ppk file that PuTTY can use. From the start menu run PuTTYgen
* Under 'Type of key to generate' choose **RSA**
* Press the **Load** button and select the PEM file you downloaded from Amazon
* Press **Save private key** and save the newly generated ppk file somewhere you'll be able to find it
To use PuTTY to connect to your server:
* Open PuTTY from the start menu
* In the 'Host Name' box enter ''ubuntu@your_amazon_public_IP'' (replace your_amazon_public_IP with the IP of your new EC2 server - this IP can be found in the instance list on your Amazon console, you might have to scroll a little to the right to see it)
* Under 'Connection type' choose **SSH**
* Ensure the port is **22**
* In the category pane, expand 'SSH' then choose 'Auth'. Click **Browse** and choose the ppk file you generated earlier.
* Optional, but recommended: Choose 'Session' from the top of the category list, enter a name in 'Saved sessions'' then press **Save** (this lets you reconnect to the server without repeating the above steps by just clicking on the session name next time you open putty
* Click **Open** to connect. The first time you do this, you'll be given a notification of the finger print of the server, this is for information only - say Yes to trusting this certificate
* [[Guides/Webserver/Part2|(next) Webserver Part 2: Setting up the web and database server]]