Difference between revisions of "Amazon Web Services"

From CSE330 Wiki
Jump to: navigation, search
m (Enabling Web Access to your EC2 Instance)
(Starting and Stopping your EC2 Instance)
 
(15 intermediate revisions by 8 users not shown)
Line 4: Line 4:
  
 
== Creating and Configuring your EC2 Instance ==
 
== Creating and Configuring your EC2 Instance ==
 +
 +
{{RequiredInstructions|content=
  
 
Follow these steps to get to the AWS Management Console:
 
Follow these steps to get to the AWS Management Console:
Line 13: Line 15:
 
To create your new virtual machine, click '''Launch Instance'''.  Do the following to configure your instance:
 
To create your new virtual machine, click '''Launch Instance'''.  Do the following to configure your instance:
  
# Use the Classic Wizard.
+
# Choose the image labeled "Amazon Linux 2 AMI", and make sure you have x86 selected on the right (this should be the default). Please do not choose any other instance image (for example, do NOT choose the macOS images just because you have a Mac), as selecting the wrong image will cause problems later.  For more information on distributions, refer to [[Linux#Linux Distributions|the Linux guide]].
# Now choose what distribution of Linux you would like to use.  For more information on distributions, refer to [[Linux#Linux Distributions|the Linux guide]].  The following are both good choices, and throughout the wiki, the instructions are equally comprehensive for both.  This semester, we will be teaching this class using Ubuntu, but you are free to use either one.
+
# The default instance variables are all fine.  Click Next until you get to the "Step 6: Configure Security group" screen.
#* Ubuntu Server 12.04 LTS (based on Debian)
+
# Make sure your security group includes a rule of type "SSH", protocol "TCP", port range "22", and source of "0.0.0.0/0" or "Anywhere". If it does not include an SSH rule, click the "Add Rule" button and set the rule accordingly. The security groups you create determine whether a port is open or blocked for your server.
#* Amazon Linux AMI (based on RHEL)
+
#* It might be helpful to change the name for the security group to be more descriptive, such as "CSE330 Instance 1 Security Group" or similar.
# The default instance variables are all fine.  Click Continue until you get to the "Create Key Pair" screen.
+
# Click "Review and Launch", and then "Launch". Then, in the dialog box, create a new Key Pair.  Enter some name for it, and then click "Create & Download your Key Pair".  '''Save your key somewhere secure.'''  In addition to using it to authenticate for this instance, you will be able to use the same key for additional instances. Please note that this is needed to connect to the instance as the root user, and there is no way to download this file again. It is vital you do not lose or delete this file.
# Create a new Key Pair.  Enter some name for it, and then click "Create & Download your Key Pair".  '''Save your key somewhere secure.'''  In addition to using it to authenticate for this instance, you will be able to use the same key for additional instances.
+
# You are now ready to launch your virtual server!  Click "Launch Instances".
# Create a new Security Group.  The security groups you create determine whether a port is open or blocked for your server.
+
 
#* You need to open the SSH port on your server.  To do this, select "SSH" from the drop-down box, and then click "Add Rule."
+
}}
#: We will be opening more ports by modifying the security group at a later time.  Click Continue.
 
# You are now ready to launch your virtual server!  Click Launch.
 
  
 
== Starting and Stopping your EC2 Instance ==
 
== Starting and Stopping your EC2 Instance ==
Line 30: Line 30:
 
=== Amazon EC2 Gives You One Free Micro Instance ===
 
=== Amazon EC2 Gives You One Free Micro Instance ===
  
It is free to keep '''''one''''' micro instance running at all times.  Keeping your instance running around the clock will make your life easier, because then you won't need to always change your hostname in your SSH clients.
+
It is free to keep '''''one''''' micro instance running at all times.  The AWS Free Tier includes 750 hours of Micro instance usage per month for a year; given that the longest month is 744 hours long, the Free Tier is enough to keep a single Micro instance running 24/7 for a year.  Keeping your instance running around the clock will make your life easier, because then you won't need to always change your hostname in your SSH clients.
  
For additional Micro instances, or for larger instances, you will be charged hourly for their use.  One non-free Micro instance costs about $14/month; a Small instance costs about $43/month.
+
For additional micro instances, or for larger instances, you will be charged hourly for their use.  One non-free micro instance costs about $14/month; a small instance costs about $43/month.
  
 
=== Terminate vs Stop ===
 
=== Terminate vs Stop ===
Line 39: Line 39:
  
 
'''Note:''' Frequently committing your work to your repository is a safety net in case something horrible happens to your instance.
 
'''Note:''' Frequently committing your work to your repository is a safety net in case something horrible happens to your instance.
 +
 +
 +
 +
=== Reboot vs Stop + Start ===
 +
 +
When rebooting your instance using "Reboot", your instance address will not change. When rebooting your instance by clicking "Stop" and then "Start", your address WILL change.
 +
 +
For many assignments, you will need to submit a link to your code running on your instance. If you must reboot your instance, please use "Reboot" rather than the alternative to ensure your link does not become invalid.
  
 
== Enabling Web Access to your EC2 Instance ==
 
== Enabling Web Access to your EC2 Instance ==
 +
 +
{{RequiredInstructions|content=
  
 
Once you have configured [[Apache]] (which you will do later in this Module), you will need to open up your EC2 instance to web traffic.  (By default amazon blocks all traffic to our instance.)
 
Once you have configured [[Apache]] (which you will do later in this Module), you will need to open up your EC2 instance to web traffic.  (By default amazon blocks all traffic to our instance.)
Line 46: Line 56:
 
Go to the Security Groups under Network & Security on the EC2 webpage. Select your security group, click on the Inbound Tab. Add a new Custom TCP rule with a Port range of 80.  Leave the Source at 0.0.0.0/0 (for all traffic). Click Add Rule, and then click Apply Rule Change.
 
Go to the Security Groups under Network & Security on the EC2 webpage. Select your security group, click on the Inbound Tab. Add a new Custom TCP rule with a Port range of 80.  Leave the Source at 0.0.0.0/0 (for all traffic). Click Add Rule, and then click Apply Rule Change.
  
To make sure things are working, create a file, like '''hello.txt''', in your web server root.  Give it some content (might I suggest "Hello, world!").
+
To make sure things are working, create a file, like '''hello.txt''', in your web server root.  Give it some content (might I suggest "Hello, world!"). The web server root is at /var/www/html
 
 
* In the Amazon AMI, the web server root is at /var/www/html
 
* In Ubuntu 12.04 LTS, the web server root is at /var/www
 
  
 
For more information on editing files on the command line, refer to [[Linux#File Editors|the Linux guide]].
 
For more information on editing files on the command line, refer to [[Linux#File Editors|the Linux guide]].
  
 
You should now be able to visit your server load up the file using your web browser!  Example Link: http://ec2-xxx-xxx-xxx-xx.compute-1.amazonaws.com/hello.txt
 
You should now be able to visit your server load up the file using your web browser!  Example Link: http://ec2-xxx-xxx-xxx-xx.compute-1.amazonaws.com/hello.txt
 +
 +
NOTE:depending on the city in which your server is located, your link might look like:
 +
 +
http://ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com/hello.txt
 +
 +
}}
  
 
[[Category:Module 2]]
 
[[Category:Module 2]]

Latest revision as of 14:32, 10 November 2022

Amazon Web Services provides a method to publish web sites on virtual machines in the "cloud." In CSE330, you will be using an EC2 instance to host your web site.

Before reading this guide, you should be familiar with Linux and the various distributions of Linux. Fore more information, refer to the Linux guide.

Creating and Configuring your EC2 Instance

Follow these steps to get to the AWS Management Console:

  1. Create an AWS account: http://aws.amazon.com/
  2. Sign up for the EC2 Web Service: http://aws.amazon.com/ec2/
  3. Log in to the AWS Management Console

To create your new virtual machine, click Launch Instance. Do the following to configure your instance:

  1. Choose the image labeled "Amazon Linux 2 AMI", and make sure you have x86 selected on the right (this should be the default). Please do not choose any other instance image (for example, do NOT choose the macOS images just because you have a Mac), as selecting the wrong image will cause problems later. For more information on distributions, refer to the Linux guide.
  2. The default instance variables are all fine. Click Next until you get to the "Step 6: Configure Security group" screen.
  3. Make sure your security group includes a rule of type "SSH", protocol "TCP", port range "22", and source of "0.0.0.0/0" or "Anywhere". If it does not include an SSH rule, click the "Add Rule" button and set the rule accordingly. The security groups you create determine whether a port is open or blocked for your server.
    • It might be helpful to change the name for the security group to be more descriptive, such as "CSE330 Instance 1 Security Group" or similar.
  4. Click "Review and Launch", and then "Launch". Then, in the dialog box, create a new Key Pair. Enter some name for it, and then click "Create & Download your Key Pair". Save your key somewhere secure. In addition to using it to authenticate for this instance, you will be able to use the same key for additional instances. Please note that this is needed to connect to the instance as the root user, and there is no way to download this file again. It is vital you do not lose or delete this file.
  5. You are now ready to launch your virtual server! Click "Launch Instances".

Starting and Stopping your EC2 Instance

You can start and stop your instance by right-clicking on the instance. The options are down in the "Instance Lifecycle" section.

Amazon EC2 Gives You One Free Micro Instance

It is free to keep one micro instance running at all times. The AWS Free Tier includes 750 hours of Micro instance usage per month for a year; given that the longest month is 744 hours long, the Free Tier is enough to keep a single Micro instance running 24/7 for a year. Keeping your instance running around the clock will make your life easier, because then you won't need to always change your hostname in your SSH clients.

For additional micro instances, or for larger instances, you will be charged hourly for their use. One non-free micro instance costs about $14/month; a small instance costs about $43/month.

Terminate vs Stop

Never "terminate" your instance, as this PERMANENTLY DELETES the instance! Any time you are done using the instance you should instead "stop" the instance and then when you are ready to resume work you should "start" the instance.

Note: Frequently committing your work to your repository is a safety net in case something horrible happens to your instance.


Reboot vs Stop + Start

When rebooting your instance using "Reboot", your instance address will not change. When rebooting your instance by clicking "Stop" and then "Start", your address WILL change.

For many assignments, you will need to submit a link to your code running on your instance. If you must reboot your instance, please use "Reboot" rather than the alternative to ensure your link does not become invalid.

Enabling Web Access to your EC2 Instance

Once you have configured Apache (which you will do later in this Module), you will need to open up your EC2 instance to web traffic. (By default amazon blocks all traffic to our instance.)

Go to the Security Groups under Network & Security on the EC2 webpage. Select your security group, click on the Inbound Tab. Add a new Custom TCP rule with a Port range of 80. Leave the Source at 0.0.0.0/0 (for all traffic). Click Add Rule, and then click Apply Rule Change.

To make sure things are working, create a file, like hello.txt, in your web server root. Give it some content (might I suggest "Hello, world!"). The web server root is at /var/www/html

For more information on editing files on the command line, refer to the Linux guide.

You should now be able to visit your server load up the file using your web browser! Example Link: http://ec2-xxx-xxx-xxx-xx.compute-1.amazonaws.com/hello.txt

NOTE:depending on the city in which your server is located, your link might look like:

http://ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com/hello.txt