Earlier this week I hosted an “AWS 101” session at work. The goal was to give a small group an interactive introduction to the primary AWS services over 90 minutes. I figure I’d share our agenda and exercises in case they’re helpful to anyone else. We had trouble sticking to the times but the fact that everyone was remote did make it easier to do group-debugging with those stuck sharing their screens.
- Introduction to Cloud Computing and AWS
- What is Cloud Computing?
- How is it different/better than running your own data center?
- Regions and Availability Zones
- The AWS Console
- Highlight the breadth of services and how to navigate the console
- Common AWS Services (Interactive)
- EC2: “Launch an instance”
- Specific OS, Instance Type, VPC, Security Group, and Storage
- SSH into the instance and install Apache
- Go to the Public DNS and you should see the default Apache page
- Notes: To make this work you need to make sure that you’ve set up the appropriate VPC and Security Group. These should have a Public IP address and have ports 22 (SSH) and 80 (HTTP) open within the Security Group. The point of the apache installation is to show something tangible and not just something visible in the AWS Console.
- S3: “Create a bucket and upload a publicly accessible file”
- Notes: This took a bit of time to get right since S3 has a variety of ways to make this happen. We took the lazy route and made the bucket policy open and then modified the file publicly available.
- RDS: “Launch a MySQL instance”
- Specific version, instance class, and storage size
- Notes: In hindsight I would have skipped this step since the instances took too long to spin up and AWS throttled us in our test account. In addition, there’s nothing tangible after this without users logging in and that would require installing a MySQL client. It would have been better to make this part of a future session and have it be a part of an end-to-end LAMP app.
- Route 53: “Create a CNAME record to point to your EC2 instance”
- Notes: This was a straightforward one and if someone was able to get the EC2 instance setup in the first step they were able to get a human readable domain name. I wanted to avoid registering another domain to save the $10 and setup subdomain delegation across accounts by pointing to the appropriate nameservers.
- EC2: “Launch an instance”