At my job, I have to deal with AWS on a daily basis. I feel like I need to learn AWS on my own to start proposing solutions to problems. How do you suggest to go about learning AWS to become proficient at it?
AWS certifications get a lot of well deserved hate here. They are very marketing hype heavy and seem to be designed to give inexperienced people a false sense of expertise. That said, they aren’t a bad introduction if think of as just learning the table of contents and the glossary.
I do not consider myself an expert even though I’ve built some pretty large things on AWS. My own path was to build some toy apps, some side projects, and just play in general. Then I took a few certifications (pro and specialty) to help illuminate the gaps in my experience. Then I started building more.
Ultimately, the only real way to become an expert is to do stuff. You have to build, solve problems, pivot, do peer reviews, etc.
There's a guy from Australia who teaches some good courses, he was on LinkedIn when I used to be on the platform. Unfortunately I don't recall his name but he posts in various groups on LinkedIn.
If you're interested in AWS, you can have a look at their Reference Architectures [1] where you can find many example for different use cases.
For most AWS products there are also non-provider specific solutions [2]. I would try to be aware of that too.
It's worth noting that a lot of their reference architectures are hugely bloated for what they need to do. It's equally important to consider the cost of the solution, and many of AWS solutions are very expensive.
Experience is the best teacher here. But to help you get on track faster, things like the courses @ acloud.guru, the first level of AWS certs, and the reference implementations by AWS itself are a BIG help.
My advice is, go directly to the source and read the papers of the services you are using (dynamo, s3, etc.).
IMO doesn't make sense to become an "AWS expert". I would take an engineer that can compare SQS to Kafka (self-managed vs kinesis), MQQT and RabbitMQ and offer an educated guess on which is better suited on our use case, taking into consideration the context (no of engineers, skillset required, application characteristics, etc.) than someone who's going to answer "SQS!" when a service requires a queuing system.
Stephane Maareks courses on Udemy helped me a lot. Go for AWS certs after you feel confident. It may sound like the certs are fluff, but they really helped me systematize all of my AWS knowledge.
My suggestion is to use Terraform to build something and read lots of docs. I think that Terraform gives you a clearer picture of how the pieces of AWS fit together than the console does.
Totally agree. Learning the CDK is when AWS products really started making sense. And it gives you a lot of power in being able to create and manage resources so fast.
Hmmm. There are a few different levels of "proficiency" for a product as sprawling as AWS, and I think there are different ways of approaching each level. You didn't tell us what you are looking for :) .
* How to use a service at a basic level. This means that you know what a service is/does and can do basic tasks with it (start up an EC2 instance or know which EC2 type makes sense for a certain use case, for example). Here the AWS tutorials and other docs are good (reference architectures, well architected framework), as are the certs.
* Understanding the ins and outs of a service. This is where you start to dive in deeper. You might learn what the limits of EBS are for certain EC2 instance types, how to use local volumes, how to maximize network throughput, when you might use dedicated hardware, etc. Here good sources are books, re:invent videos, the builders library: https://aws.amazon.com/builders-library/ , hard knocks/testing ( when in doubt, test it out: http://www.mooreds.com/wordpress/archives/3335 ). You can also short circuit some of the learning by hiring consultants.
* Being an expert at a service. I'm not there, but I've definitely seen some of these. The best way to get here is to do lots of projects. You can also try to teach others about this by teaching courses, writing a book or video series, or blogging. I find that teaching something causes me to learn it in ways that doing that same thing never does, because you have to be prepared for questions.
Source: was an AWS cert instructor for a couple of years, have used AWS for over a decade.
As per a lot of suggestions here, I want to build and break stuff on it to learn. But I'm still afraid that I might unwittingly rack up huge bills while doing so. Am I being unreasonable?
There are a number of courses to prep for AWS certifications (example: Cloud Gurus), but the are heavily focused on actual test prep and less so on actually using AWS to build something.
A combination of hands on experience plus doing a few of the certs will dramatically accelerate your knowledge of AWS and cloud architecture in general. Speaking from experience.
Huge companies beginning from Netflix, Dropbox, Reddit, Boeing, respectively to many small scale companies, are dependent on AWS. Our certificate at SevenMentor is licensed globally. It raises the value of your resume and you'll be able to achieve leading job places with the assistance of this certificate in top MNC's of this planet.
I do not consider myself an expert even though I’ve built some pretty large things on AWS. My own path was to build some toy apps, some side projects, and just play in general. Then I took a few certifications (pro and specialty) to help illuminate the gaps in my experience. Then I started building more.
Ultimately, the only real way to become an expert is to do stuff. You have to build, solve problems, pivot, do peer reviews, etc.