A common skill found on many job postings in the Site Reliability Engineering (SRE)/DevOps/Cloud Infrastructure space is knowledge and experience in Amazon Web Services (AWS). While this requirement doesn’t guarantee that AWS will be the cloud provider used forever at each company, or will even be a required skill for the long-term, Amazon the company and AWS the cloud platform have been the market leader for around 11 straight years now. There are typically a variety of questions typically asked from those just starting their cloud learning journey such as “How do you learn AWS?”, “How do you get involved with using AWS?” and “How do you get good at AWS?”. There are truly an endless number of resources to answer those questions, but today I would like to recommend my go-to areas for anyone completely unfamiliar with AWS entirely. As a word of encouragement: If I can learn this, anyone can 🙂
Creating your own AWS account has great benefits for learning as it can be used for testing out whatever products and services you see fit. Depending on your current employer, you may work in an organization that limits what exactly can be provisioned and where. However, with your own AWS account, you will have free range to learn all about the services without impacting any production environments or money-making applications.
💡 When creating your own brand new AWS account it is important to add the following:
- A budget alarm to notify you when the monthly budget is approaching. AWS has a generous free tier for its services, however outside of the free tier limits and timeframes, certain services like Managed NAT Gateways, Elastic IPs or unattached EBS volumes can cause the monthly bill to increase. This budget alarm will help greatly in the event bad actors access and use your account for unwanted activities. You are responsible for the billing of these activities, so being alerted early can help save you from an unexpectedly large bill.
- Multi-Factor Authentication (MFA) to the root AWS account and any IAM users created to further reduce the security threat of being compromised.
AWS Skill Builder is an online resource that provides many learning courses all for free, and you can sign up using an Amazon account. These courses are provided directly by AWS, so any bias or subjective viewpoints that you may/may not encounter from other non-AWS provided courses are not present. There are learning plans that are focused on both ramping up skills and taking AWS certifications, and for beginners, I would recommend taking a look at the AWS Ramp Up Guides, particularly focusing on the Cloud Foundations Guide. The Cloud Foundations Learning Plan is a 13-hour course that provides an overview of many of the foundational aspects of AWS. The Ramp Up Guides are also geared towards Role, Domain and Industry so there should truly be a guide and learning path for everyone at every level.
To certify, or not to certify: that is the question.
Certifications are sometimes a hot-button topic in our industry, and there are valid arguments for and against obtaining AWS certifications in particular. Do these AWS certifications guarantee you understand AWS completely? Absolutely not. Will an AWS certification demonstrate you have some knowledge of AWS concepts and services? I would argue yes. The truth is that there are some incredible engineers that have zero certifications and are far more talented and knowledgeable than some engineers with certifications, AWS Certifications can assist engineers in their careers and provide a framework for learning. Having AWS certifications can increase the number of job opportunities that an engineer is contacted about, and the knowledge gained can be applied to different projects and services in your professional life. Certifications are not a must-have for everyone, however, they offer some benefits and help demonstrate a basic understanding of certain AWS services.
If you are interested in obtaining an AWS certification, I would advise starting with the Cloud Practitioner and/or Solutions Architect - Associate exam(s). To prepare for these exams, there are some quality online learning courses through the AWS Training and Certification website, A Cloud Guru (my personal favourite), Cantrill or Udemy. These are just some of the many courses available that are geared toward passing the AWS certifications.
Fortunately, at Formidable, we have a generous "All-you-can-eat professional development budget" so if you can have your employer cover the costs of these learning courses, that makes it all the more enticing to sign up!
Sometimes there is no better substitute for learning than getting your hands dirty and seeing what can be created when using AWS. There are countless user instruction guides (for example the AWS Developer Center) on many different and wide-ranging services that can be built on AWS and these are easily found on the AWS website. However, it’s advisable to start with something small and iterate from there as this will provide better motivation to keep your learning progressing. Yes, AWS can seem very daunting due to the sheer size (over 200!) of services provided; but you do not need to start with learning the hardest or most complex tasks to gain an understanding of AWS.
For example; this is my personal blog initially created with S3, CloudFront, Amazon Certificate Management (ACM) and Route53. Since then, Amazon Polly text-to-speech capabilities, and a CI/CD pipeline to automate deployment to S3, have been added as well. Further, an on-demand, ephemeral OpenVPN service that runs on EC2 was also created, demonstrating the different projects that can be created with the many AWS services available. The learnings gained when building out these services, alongside my professional duties, have been immense; but you do not need to create the world’s most sophisticated service to learn AWS well. Building new projects and tools as well as using the services on AWS provides knowledge and experience that cannot be replicated simply by sitting certification exams or undertaking learning classes and courses. Learning how to successfully work with CloudFront cache invalidation to update a website’s static assets is much more valuable than simply knowing about that feature. While a certification or learning plan will explain this particular concept and why it is important, in my opinion, the knowledge becomes ingrained when you run the commands and see the results for yourself.
A good way to build something and gain knowledge in AWS I have come across is The Cloud Resume Challenge - AWS. It requires the usage of some key AWS services and is truly awesome for folks just getting started with AWS or software engineering as well.
If anyone looks online or asks about the best way to learn AWS, they will receive a million different opinions and answers. Truthfully, there is no right or wrong way to gain a deeper understanding of AWS, just different learning paths you can take to get there.
It is important to try and understand what your ideal learning style is and center your learning path around that for the best chance at success. Some engineers can simply read pages upon pages of technical documentation (and some who get by only reading the Linux
man docs!) and that has worked very well for them. Others, like myself, enjoy video tutorials with lab-based learning, along with building out personal projects.
So whatever, your learning style is, whether it be reading the technical documentation, watching video tutorials, or drawing mind maps, try to cater and tailor your AWS learning path around that and the knowledge will follow. Good luck to everyone on their AWS learning journey!