How To Learn Technology : AWS


This blog post is from a series. Please see the introductory post for more information.

Be aware, this is a work in progress and something that I need to grow and expand over time! Please give feedback early and often!

Recommended Reading

I do not have too many resources here yet. Expect this section to grow.

One good easy read that sets a lot of context is the Amazon AWS whitepaper.

Recommended Training

Amazon offers AWS Training in a number of classes and class format. I have taken several of these (along with their corresponding certifications) and I think the lecture part of the training is excellent.

I do find the lab portion to be generally lacking as it is of the "copy and paste" step by step variety. Still, if you want to pursue certification (which I recommend), the classes are an excellent addition to your own independent study.

There are three introductory courses based on your role:

  • Developer
  • System Administrator
  • Solutions Architect

This blog post assumes you have some basic technical background. It does not assume any prior knowledge about AWS, but assumes you have a mind willing to dive in and learn it! Many of these objectives require reading and research. So use them as a direction for your study, not as an end in themselves.


Here we go! I have opted for a more linear arrange of tasks.

Some objectives I have marked as "advanced". I would skip these initially and do all the other objectives before returning and doing the advanced ones.

Objective 1 - Create an AWS account and log into the AWS Console. This is an easy victory and gets you ready for the world of AWS!

Objective 2 - Create an email billing email alert with AWS CloudWatch and AWS SNS that warns you if you spend more than $10 a month. This objective involves a lot of steps, but do not fear, there are many step by step tutorials.

Normally I would consider that a bad thing, but in this case, a little hand holding is good and having an email alert when you are spending more money than you planned gives you confidence to keep learning. (If you work for a company with a book budget or training budget see if they will reimburse your AWS bill! If they will not, Sequoia is hiring...)

Success Criteria: You can send yourself an email through the SNS topic you created. If you set the threshold really low ($0.50) you receive an email.

Objective 3.1 - Start an EC2 instance in a public subnet based on AWS Linux. Install PuTTY. Learn how to connect to the EC2 instance using PuTTY.

There is a lot of material here! For each item in the form, spend some time researching what it means. What is an AMI? What types of EC2 instances are there? What is a subnet? What options are there for running an EC2 instance? What is a security group? What does it do? All these are questions you will want to explore a little.

PuTTY is a powerful tool and one that you will want to become familiar with if you have not already.

Success Criteria: You can log into your EC2 instance with PuTTY.

Objective 3.2 - Start an EC2 instance in a public subnet based on Windows. Setup Remote Desktop and learn how to connect to the instance using RDP.

Success Criteria: You can log into your EC2 instance with RDP.

Objective 3.3 - Start two EC2 instances in a private subnet. Connect to one of the EC2 instances you created earlier in a public subnet. From that EC2 instance, connect to the EC2 instance in the private subnet.

Success Criteria: You can log into your EC2 instance in the private subnet from another instance that is publicly accessible.

Objective 3.4 - Create two security groups (A and B). Setup security group A to allow traffic from port 22 only from servers with security group B. Assigned security group A security group to a server in a private subnet and security group B to another server.

Success Criteria: You can only connect to the server in group A from another server in group B.

Objective 3.5 - Go onto the AWS Marketplace and choose an instance to startup. (I suggest Redmine as it is free and simple to use.) Start up an EC2 instance running Redmine from the AWS Marketplace in a public subnet.

Success Criteria: You can visit the Redmine (or whatever) instance from your browser.

Objective 3.6 - Create a load balancer. Have it load balance your AWS Marketplace instance.

Success Criteria: You can still visit the Redmine (or whatever) from your browser.

Objective 3.7 - ADVANCED - Start another instances from the AWS Marketplace. This time, start it in a private subnet. Use PuTTY to setup a Tunnel / Port Forwarding to your local computer.

Success Criteria: You can visit the Redmine (or whatever) instance from your browser.

Objective 4 - S3 - Take the following objectives as an opportunity to build a simple personal website. Put whatever you want on it and use this as a motivation to work the next few objectives. You can see some of my toy websites here and here.

Objective 4.1 - Create an S3 bucket. Create a simple HTML file and upload it to the bucket.

Success Criteria: Your file is in the S3 bucket.

Objective 4.2 - Make your S3 bucket public and web enabled. Browse to the S3 bucket URL and see your file.

Success Criteria: Your file can be viewed from a browser on the internet.

Objective 4.3 - Create another S3 bucket. Upload some files. Setup an S3 lifecycle policy on your bucket to move files to Glacier after 1 days, and delete them after 3.

Success Criteria: Your files are migrated according to your S3 lifecycle policy.

Objective 4.4 - ADVANCED - Register a domain name with Route 53. Setup your S3 bucket to be served up from behind the domain name.

Success Criteria: You can visit your domain name and see the HTML files rendered from there.

Objective 4.5 - ADVANCED - Setup a certificate in AWS ACM and attached it your domain name and the bucket serving content to the internet.

Success Criteria: You can visit your domain name over HTTPS and see a valid certificate.

Objective 4.6 - ADVANCED - Deploy your S3 backed website into a CloudFront distribution.

Success Criteria: Your website is served up via CloudFront.

Objective 5 - Create a new IAM user. Learn about IAM policies and IAM roles. Assign your new IAM user some basic, pre-made policies from Amazon's pre-made list, and set a password and an API key (save this for later). Log into your console as that new IAM user. See how the policy controls what you can do and cannot do.

Objective 6 - Look at Glacier. Create a vault. Download FastGlacier, give your IAM user full read/write access to Glacier in IAM, and then use the API key to configure FastGlacier. Copy some files into Glacier.

Success Criteria: Your files are stored in Glacier.

To be continued...


Questions? Comments? Email me at [email protected]!