Completing this course successfully should mean that you can:
- Find your way around the AWS interface.
- Understand that most resources on AWS aren't free and how you can manage those costs.
- Create AWS security groups and subnets, and configure VMs to work together on your setup.
- Set up iptables to provide port forwarding.
- Secure your resources against the most common internet attacks.
- Set up a basic web server and explain what PHP is.
- Set up a MariaDB instance and use basic SQL commands to manage databases and users.
- Install a modern web application that uses both a web server and a database server.
- Set up and run some basic commands on the AWS console.
- Work with a typical DNS registrar interface to create DNS records.
- Obtain and use a certificate from Let's Encrypt.
- Set up a basic email server including SMTP/STARTTLS with Postfix and IMAPS with Dovecot.
- Choose the most appropriate storage solution of those available on AWS.
Of course you'll probably be able to half-ass your work and complete the course without learning any of the above, but that would be a big learning opportunity lost for you. The skills you can learn in this course are very transferable to many other systems and platforms. They're not limited to AWS and not even to Linux.
The most effective way to learn in this course is a combination of attending labs in person and doing your homework outside of class to solidify what you've learned.
Unfortunately this option is not automatically available these days, so we might have to make due with online learning. Each professor does this differently, they will tell you how labs and lectures will work in their sections.
There's much to learn in OPS345, and it's the third course in the OPS stream, so we're assuming you learned some basics in ULI101/OPS245. As a minimum, you should be comfortable with:
- Using a Linux desktop as a workstation
- Using the terminal for various tasks, including:
- Using an ssh client
- Editing text files (ideally with vi)
- File and permission management
- Managing users
- Managing storage devices including LVM, and filesystems
- Managing services using systemctl
- Reading and monitoring log files
- Using and writing simple shell scripts
- Basic networking concepts, including:
- Public IPs and private subnets
- Simple iptables configurations
- Reading, writing, and oral communication.
That last bullet is so important that many people can BS their way past the fact that they have no useful technical skills at all. But people who are both technically competent and can communicate well are rare, incredibly useful, and therefore expensive. Strive for that no matter what your natural inclination is.
Every skill requires practice. Many short applications of a small skill are more valuable than one heavy application. Run as many commands as you can, just because you can. Read as many explanations as your patience will allow. Put some effort into writing well-formed questions in your emails. Question everything you read and everything you write.
AWS account requirements and account setup
AWS vs AWS Educate vs AWS Academy
One of the goals of the course for you is to learn how to work with cloud service providers, AWS being arguably the most popular one. But AWS was never free. In order to encourage people to learn AWS skills: AWS provides several incentives for beginners and learners. Notable for our purposes are:
- AWS. Available to nearly anyone who has a credit card. All the services are available and you pay for what you use. Because of the potential for huge bills you might get from AWS - we're not using it directly.
- The AWS free tier. It keeps changing but often it still requires a credit card to sign up and though you get some initial free credits: you risk adding up charges you simply didn't expect. We're not going to use it.
- AWS Educate. This was Amazon's first attempt at building an infrastructure specifically for students. It has been deprecated in favour of AWS Academy, but you may find references to it as you look for answers to your questions. We have never used it for OPS345.
- AWS Academy. This is what we're going to be using.
You should automatically get an email from email@example.com once the course begins. That will have a link you'll need to follow to create your free AWS Academy account and enroll in the Learner Lab for this course. That comes with a 100$ credit which will be plenty enough for OPS345 unless you're reckless with your usage.
That will give you access to most AWS services, though it has some severe limitations. For example you can only create VMs with Amazon Linux, and you can't see what you spent your credits on. But it's plenty good enough for this course. We're only getting an overview of AWS, there is no time in one semester to do both an introduction and a deep dive.
AWS Academy also offers entire couses (e.g. AWS Academy Cloud Foundations), which serve as preparation for AWS certification exams. We are not following that curriculum because it wouldn't fit at all with your program at Seneca, and regardless it has questionable value.
Often times internet service users make a ridiculous assumption that "if it's on the internet, it must be free". Nothing in life is free. As a minimum you're paying for a service you received indirectly. Search engines show you ads - which affect you whether you realise it or not. Video and audio providers brainwash you with barrages of messages from sponsors. Amazon has to compete with Microsoft's Azure and many other technology stacks, so they're paying to encourage more engineers to learn/use AWS, which will bring them more clients in the long term.
Seneca does not provide any AWS credits. Amazon does. Which means you're responsible for using those credits appropriately, and if you waste them: you'll have to find some other way to do the required labs in OPS345.
We'll talk more about AWS costs in the upcoming Lab 1.
You will need a Linux workstation for your work in this course. If you already have one you like and are used to: that's great, go ahead and use it (VMs from OPS245 don't count). If you don't have one: you need to set it up this week, so that it's ready for next week's Lab 1.
The distribution you use doesn't matter much. The screenshots in the wiki are from a professor's Linux Mint machine. Linux mint is a friendly desktop most people don't have trouble with, so if you don't have your own preference: you might as well use that. You can either:
- Install it on a dedicated computer directly, or
- Dual-boot with Windows on a computer you already have set up, or
- Install it in a VirtualBox Workstation virtual machine.
The disk space requirements are much lower in OPS345 compared to OPS245, since you'll only need one VM and not much data on it. 50GB will be more than enough for the entire virtual drive.
Go ahead and set that up now. Download the ISO file for the latest Cinnamon edition from a mirror here. No special setup is required for storage configuration. Do use a username which is the same as your myseneca ID. That will make your life easier in the labs.
Once it's installed: configure the interface as you like it. You will be expected to use it for the rest of the course, so make it as comfortable for yourself as you can.
Don't leave this setup for next week even if your professor doesn't give you marks for the lab prep. You'll have lots to do and learn in Lab 1 and you won't need extra distractions.
Submit evidence of your work
There is nothing to submit for this week.