Amazon Web Services
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:
- Create an AWS account: http://aws.amazon.com/
- Sign up for the EC2 Web Service: http://aws.amazon.com/ec2/
- Log in to the AWS Management Console
To create your new virtual machine, click Launch Instance. Do the following to configure your instance:
- Use the Classic Wizard.
- Now choose what distribution of Linux you would like to use. For more information on distributions, refer to the Linux guide. The following are both good choices, and throughout the wiki, the instructions are equally comprehensive for both. Ideally, about half the class will be using one, while half the class will be using the other, so that you can learn from each other.
- Ubuntu Server 12.04 LTS (based on Debian)
- Amazon Linux AMI (based on RHEL)
- The default instance variables are all fine. Click Continue until you get to the "Create Key Pair" screen.
- Create a new Key Pair. Enter some name for it, and then click "Create & Download your Key Pair". Save your key pair somewhere secure that you will be able to access whenever you want to SSH into your server. You will be able to use this key pair for additional instances.
- Once you have downloaded your key, set the permissions on it such that only you can read it; that is, the *.pem file you downloaded should have permissions
-r--------. For more information on setting file permissions, refer to the Linux guide. (Can you think of any reason why you wouldn't want other people viewing your private key file?)
- (This step is optional. The Amazon default group will work fine.) 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
You can start and stop your instance by right-clicking on the instance. The options are down in the "Instance Lifecycle" section.
Note: Remember to stop your server instance when you are done using it, for otherwise your account will be charged hourly.
VERY IMPORTANT: Never "terminate" your instance, as this PERMANENTLY DELETES the instance- you will lose all your work! 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: This is one reason why it is a good idea to commit all your code for various projects to your SVN repository just in case you accidentally terminate your instance.
Accessing your EC2 Instance via SSH
To access your instance via SSH, right click on the icon for the instance and click Connect. You have two options:
- You can use an SSH client on your computer. Amazon gives you instructions, and even gives you the command you need. For more information, including how to use SSH on Windows, refer to the Web Server Configuration guide.
- You can use an SSH client that Amazon provides that runs in your browser.
It will probably be more convenient for you to use an SSH client on your machine so that you do not have to log into AWS every time you want to access your server. However, which option to use is up to you.
At first, you will need to SSH into your server using Amazon's default user.
- In the Amazon AMI, the default user is ec2-user
- In Ubuntu 12.04 LTS, the default user is ubuntu
To configure your server to allow logins using your own username, refer to the Web Server Configuration guide.
Enabling Web Access to your EC2 Instance
Once you have configured Apache, 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!").
- 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 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