HOW-TO: SMS via Amazon Web Services

(To be followed in order, as indicated below...)

AWS Elastic Compute Cloud (EC2)

AWS EC2 is a virtual server hosting service. When you set up a new server via EC2 (servers are referred to as instances) you get a full, bootable operating system that is customizable and accessible from the Internet. I will leave it to EC2's website to go into the details of how it all works on AWS's end. All we need to know for this HOW-TO is that it will offer us the server that will run our SMS service.

Note AWS services almost always offer a "free tier" to allow new users to try them out. Free tiers don't offer unlimited access to services, but the allowances they do offer tend to be very generous, especially for individual users. AWS's services are mainly set up for enterprise customers whose demands far exceed those of individuals, so where a corporation may think of an AWS free tier as middling, you—individual person that you are—may see a near inexhaustible monthly allowance of service. The wiggle room this offers makes AWS a wonderful platform for experimentation in all things cloud. Naturally, if you already have an EC2 instance that you would like to use, feel free to skip this section of the HOW-TO.

The process begins with an AWS login account. If you have an account already for purchases, the login credentials should work with AWS. If not, create a new account. Click on "Sign In to the Console" (it's a big yellow button, hard to miss) and either log in or get set up as a new user.

Once logged in, you should see the AWS listing of services:

Choose EC2 (not "EC2 Container Service") to get to the EC2 Dashboard. It will look something like this:

This view gives you information about your running EC2 instances, security groups, the AWS region for the services you are viewing, etc. Be sure to select a region by pulling down the region menu in the top bar on the page (it's between your login user menu and the Support menu).

Note The region is not tied to your personal location. Instead, it is the AWS region from which the service you are setting up will be offered. Some services are full offerings in all regions, others are limited depending on the region you select. SNS is one example of a service that is not offered the same way in all regions. We will get to that later. For now, just select the region that makes the most sense for you and don't worry about limitations. EC2 should be the same regardless of the AWS region.

With your region selected, click on "Launch Instance" (big blue button) to move to the Amazon Machine Image (AMI) selection page:

For this HOW-TO, I will be covering EC2 with Ubuntu Server flavor of Linux. Select Ubuntu Server by clicking on the "Select" button next to its listing.

Note If you are more of a Red Hat user, AWS offers a Linux distribution based on Red Hat that you can choose instead. However, the instructions in this HOW-TO will only cover Ubuntu so using a Red Hat flavor of Linux may require some interpretation. If you're a Windows user and decide to install Windows to your EC2 instance, even more interpretation will be required. Please consider just using a flavor of Linux with EC2.

With the AMI selected, the Instance Type selection page should appear:

The default selection ("t2.micro") should be fine for the free tier, so don't change anything on this page. Click on the blue "Review and Launch" button to review the instance settings.

Astute observers will note that we somehow jumped from "Step 2" in the last page to "Step 7" in this page. Don't worry about it. You're right where you need to be.

There is really nothing to change here, so go ahead and click the blue "Launch" button to launch the instance. Then, in the left menu, select "Instances" to get an instance listing. You should end up on a page that looks like the following:

If you have made it this far and have a running instance, congratulations! You have a server "machine" running in the cloud. It isn't doing anything yet, though. Before it becomes any shade of useful, you'll need to log in and add a few items. We'll go over the items next.

First, though, you need to get set up to log into your EC2 instance. On the top of the "Instances" page is a button called "Connect." Click on that and follow the instructions. I will not duplicate the information here, but instead I'll note that it involves setting up a key pair and using a special SSH command line to log in. If you are familiar with SSH logins, you should have little to no difficulty following the instructions. I recommend saving them off to the side somewhere so you can easily pull them up when you need them.

When you're logged in, move to the next phase: installing Node.js & Express.