An Introduction to AWS
Welcome to the Introduction to AWS class. Amazon Web Services (AWS) is an offering that is comprised of dozens (nearly a hundred) services with many having free options to start out (known as the free-tier). We have used the services in multiple companies and sites and find them to provide an excellent way to get started without any real cost to you. If you follow our guides, you will rarely see a charge of more than a few cents, at most, in the first year unless you have heavy usage of your resources. You also will have a foundation that you can grow as your server needs grow or to support your customers.
The AWS approach is more time-consuming than going to a hosting provider and using the built-in tools and consultation. However, in the end, you will know and own your site. You will be able to avoid the pain of getting the source code from a vendor when their prices become too much. You will also add some technical skills along the way. This class may seem intimidating now, but you will find that it is not near as complicated as it seems. You will be comfortable building and maintaining your server in no time.
We are starting here as we will be helping you build out your development (and possibly production) environment for the Internet presence of your product or service. You will be able to avoid hosting fees and extended support calls getting some tool to work the way you need it to, instead, you will have a system you control and quickly be able to get content created to build your brand.
What are the problems we want to solve by taking this class?:
- How do we setup a place to run our website?
- How do we store our images and videos for our site?
- Can we accomplish the above items cheap or free?
What we will cover in this class:
- AWS Overview (Getting started on a cheap/free solution)
- How to register for an account
- Creating an EC2 instance (Finding a place to run our website)
- Creating an S3 bucket (A place to store our images and files)
Class Goal: Each student will have a virtual Linux server in the cloud that they can use for development (and production) purposes.
Note: This class can serve as a stand-alone when you need to setup a customer on the Amazon free tier in the future so keep the link available for reference, particularly the tech notes. If you ever run through the tech notes and find Amazon has changed the process, making our documentation incorrect, please let us know. We hope to provide enough information so you can work through changes, but we also want to keep all walk-throughs as correct as possible.
What is AWS?
Amazon has opened up their vast network of system and resources to the world in the form of AWS (Amazon Web Services). They provide a great number of services, as we will see. Also, they do so at a pricing level that is in line with other commercial offerings out there. Some benefits of using Amazon services include:
- They are established and have a solid track record (even though there have been bumps in the road)
- Security is set up well by default
- The full range of services allow a steady and easily managed growth from small startup to global enterprise
- The user community provides a lot of resources to help those new to the whole AWS experience. This includes those that are new to a particular offering/technology
- They are still growing and adding new services
- AWS experience has value in the IT world. It is a great skill to have when trying to land a job or raise your billable rate.
- The free tier is a great entry point into the world of servers and services
Giving You Access to the Power of Amazon
When we say Amazon opened up their system, it may help to take a step back and look at what that system is. Amazon started building a company and systems that could market, sell and deliver roughly any product people could dream up, anywhere in the world. This took an enormous amount of disk space, processing power, and network bandwidth. In order to ensure they would be able to provide consistent service, they had to plan for, and build, a system way beyond what was actually needed at the time. They had to design and build for growth. However, they wondered what could they do with that “buffer” space and power until it was actually needed?
The cloud was an answer to their question. They could provide virtual systems within their network to customers. Thus, it would be a way to generate revenue from resources that would otherwise be unused. They took the old concept of selling hotel rooms cheap once you knew they would otherwise be empty. Then they applied it to IT resources. We don’t need to go much deeper than that for now. Therefore, we can move on to what they provide rather than spending much time on the “how” or “why.”
The Free Tier
One of the great things Amazon did after it started offering all of these services was open up an offering called “the free tier.” This offer is available to new subscribers (determined by email) and often lasts 12 months. Some of the services even provide a low-end version or limited usage in a non-expiring offer. These are similar to the “your first X are free” offerings that can be ideal for small businesses and personal use. The key services we will look at, EC2 and S3, are essentially free for the first year (you might have to pay a few cents a month). These will give us what we need to provide a platform for your website and blog.
The server sizes we are looking at are a great deal even after the free period expires. These are also resources that can run a small business, or at least their marketing needs. They have prices in line with other hosting providers. You can expect an average of $10 per month or less. Thus, often you end up getting more from Amazon than you would another hosting provider at a similar price level. For example, I have a couple of personal sites that are still the smaller size offerings and they run about five to six dollars a month in costs.
Let’s get started on the fun (and free) stuff. You will have to have a credit card handy to cover any overage fees. However, it is not charged if you stay within the free tier. These steps are pretty straightforward, but ask the facilitators if you have problems. When these steps are completed, you will have your web server on the Internet. Click on each link to walk through the required steps:
- Create an Amazon AWS account
- Create an EC2 server instance
- Setup an elastic IP address
- Connect to your server
- Add a non root user and connect as yourself
- Setup S3 for storage
Once these steps are done, you will be ready to load some software on your server and run your own website. Thus, your introduction is complete. Moving forward, we will be able to start using these tools immediately. You will be getting your own domain name and blogging platform as well. For now, revel in the knowledge that you have a piece of real estate on the information superhighway.
- Setup your AWS server and create a user for yourself
- Create a second user. Send the instructors your elastic IP address and the second user login information so we can verify we can log in. Also, send a screen shot of your ec2 console so we can test that your setup is correct. This will help avoid unexpected charges so don’t skip this assignment.
- Pick an image that you would like to make a part of your home page when we get to the web building class and upload it to your S3 bucket.
Once you are done with this class, it is time to move on to the next step: A crash course for Linux Commands
Outside of additional classes here, we have found these sources to be ideal for learning more about AWS (and several of them are free):
- Learning AWS
- AWS System Administration: Best Practices for Sysadmins in the Amazon Cloud
- The AWS EC2 Home Page
- AWS Console
- Amazon Elastic Compute Cloud (EC2) User Guide for Linux Instances