It can be overwhelming trying to learn a new AWS Service. Learn useful techniques for approaching and learning a new service from scratch in this article.
With a new service seemingly launching every month or so, it can be scary to try and learn a new one from scratch. Since AWS creation in the early 2000s, we’ve gone from a handful of services to over 250 as of today. Needless to say, it can be scary trying to keep up in this rapidly changing atmosphere. Technologies evolve and become out of date requiring new services to fill the gap.
I feel this personally as a YouTuber and blog writer. I regularly have to learn new services from scratch for a new post or video. And over time, I’ve put together a systematic approach I consistently use when trying to learn a new service or feature. Today, I want to share with you my tips.
We’re going to cover the following topics when starting to learn a new service:
- Understanding the Domain
- Watching AWS Overview/Summary Videos
- Understand the Pricing Model
- Experiment in the Console
- Infrastructure as Code
So let’s get into it.
Understanding the Service’s Domain
If you’re trying to learn a new AWS service, its likely that you have a general understanding of the domain that the service operates in. This will help explain where the service fits in. For example, are we talking about a database service? A Compute service? What are we talking about here… There are many varieties and the category a service fits in makes a big difference in how to approach it. Examples of service domains can be the following:
- Compute – These are all purpose services that allow you to perform computations. Think APIs or backends for WebApps. Services can include EC2, ECS, Lambda, Lightsail, and many more.
- Storage – These can range from general object storage to full blown databases. Popular examples include S3, RDS, DynamoDB
- Orchestration – These are services that orchestrate or coordinate using other services. Examples include Elastic Beanstalk, Step Functions, and SWF.
- Event Driven – These are classic pub/sub services to communicate “changes” to other applications or microservices. Some examples include SNS, SQS, and Eventbridge.
- Security – These are services that help protect your account or provide some kind of security mechanism. The prime example is IAM.
- Monitoring – These are services that provide optics and visibility into how your application is performing. Two popular examples are Cloudwatch and Cloudtrail.
This is a subset of service categories you can expect to find. Below shows an image of some of the other categories.
This is definitely not an exhaustive list, but understanding which category this service falls in can help prime your brain for whats to come. Once you have an idea of where the service fits in, its time to get familiar with the primary purpose of the service and what types of features it offers.
Watch High Level Overview / Summary Videos
Watching brief overview/summary videos of the service in question is my next step when learning a new AWS service. The videos that I like to watch are the Getting Started videos by AWS. These are short and concise videos that are typically only one to four minutes long and provide high level overviews of the service. They are pretty high production value and have useful visuals and animations that help explain key concepts that the service offers.
Almost every service I’ve come across has these types of Getting Started videos available. You can find them by navigating to the service on https://aws.amazon.com , clicking on Resources, and then Getting Started. Below is an image to give you a better reference.
On the subsequent page, you’ll find the Getting Started video for you to watch. As an example, here’s a link to the S3 Getting Started Page / Video.
If you prefer a video that’s a little bit more in depth, you can check out YouTube for summary videos. You can visit my channel where I have a ton of AWS service overview videos – this may be a good place to start. Here’s a playlist of my AWS Service Overview videos that you can reference as well.
At this point, you should have a general understanding of what the service does and why its useful. Before we can get to playing with the service in the console, we first need to understand the pricing model of the service. Some services have a free-tier option where you can try it for free. Its important to understand whether the service qualifies and if not, what cost you are looking at for experimenting. This will ensure we don’t end up with any surprise bills.
Understand the Pricing Model
After you understand what the service does at a high level, you now need to understand how the pricing model works and whether or not the service is free tier eligible.
As a quick test, you can use this AWS tool to see if there is free tier support for the service (tip: use the search box filter). If it is, read up on what the free tier includes and keep it in the back of your mind for when you start experimenting with the service. Note that that the free tier only applies to accounts that are less than 12 months old.
There is also a concept of “free trials” and “always free” that you should be aware of. I write up the difference between all these types of modes extensively in my Day 1 AWS Account Checklist article.
Its important here to understand how pricing works for the service you’re experimenting with. Every AWS service page on aws.amazon.com has a pricing section, so make sure to read it carefully. For example, here’s the pricing page for AWS Lambda.
As a general rule of thumb when you’re experimenting, ALWAYS select the lowest level compute option (if there’s one available) and NEVER enable any “production” configuration. Doing so is a sure fire way to provision more than you need.
Alright. Now that we have a basic understanding of the service, and understand how pricing works, its finally time to get your hands dirty.
Experiment in the Console
At this point, its time to head over into the AWS console and start building! Each service is different so there’s really not that much guidance I can give you here. However I AM a firm believer that playing in the console is one of the best ways to learn how a service works.
Create resources, read up on settings, and just experiment overall. If you’re every unsure of what something does, look it up in the AWS documentation on the service page. There’s tons of detail there that can greatly help you navigate the service.
A useful piece of advice is to follow a practical tutorial for the service in question. There are some excellent hands on tutorials provided by AWS here that you can follow. Simply type the service you’re using in the filter box and select a beginner level tutorial. Practical hands on experience is valuable in learning how services work – so don’t feel bad about spending hours tinkering with a new service.
Don’t forget to refer to the AWS Developer Guide Documentation to clarify and new concepts. Typically, services have a “Core Concepts” part of their documentation that explain the gist of the service. Here’s an example of the core concepts for AWS Lambda.
Graduating to Infrastructure as Code
Once you have a solid handle of how the service works, it’s time to consider using Infrastructure as Code (IaC) to start provisioning your resources.
You generally have two main options for IaC if you want to stay in the AWS ecosystem: CloudFormation or CDK. CloudFormation using YAML/JSON templating to create your resources while CDK allows you to write code to create resources. CDK is definitely more modern and I suggest to use it over CloudFormation unless you have a reason not to. If you want to get out of the AWS ecosystem to use IaC, consider using Terraform or Pulumi.
I want to stress – don’t skip to immediately using IaC when learning a new service. This is a recipe for getting confused. I truly believe the best way is to get your hands dirty and play in the console. This isn’t true for everyone, but for visual learners like myself, the console experience is invaluable.
Clean up Your Resources
Before you call it a day, remember to clean up the resources you created in the console or using IaC. This will prevent any surprise bills if your account’s free trial expires or you accidentally provision something that has a cost associated with it.
I’m guilty of forgetting to do this and occasionally end up paying for it. Don’t be like me.
Learning a new AWS service can be a overwhelming time. However applying a methodology to it can speed up your ramp up time. Start simple with light research and understand the pricing model before getting your hands dirty in the console. Before you know it, you’ll have a solid understanding and ready to graduate to using Infrastructure as Code.