As of January 2020, there are approximately 190 AWS services. Even if you study full time, that's a lot if you're trying to learn AWS on your own. Fortunately, you can build full-featured applications after learning a small set of the core AWS services. These core services will form the foundation of the vast majority of applications built on AWS.
Can you learn AWS on your own?
Yes, absolutely, you don't need any formal training or even an online course to learn AWS. How hard will it be? Well, that depends on your past experience in the IT / software industry. If you consider yourself a pro, you might not struggle very much. For IT beginners, AWS might not be the best starting point. Ultimately, it is possible to learn AWS on your own and you have to decide for yourself (based on your goals and experience) what path is best for you.
Study the most important AWS services first
Before you get caught up in the AWS machine learning section, consider getting a solid grasp of the fundamental services. It will make you a better engineer in the long run, I promise. I consider these the ten most important AWS services. Obviously, this is just my opinion. This list will change depending on who you ask and what they do in the cloud.
Start with this list and once you have a basic understanding of AWS, branch out to the services specific to your needs.
I highly recommend reading the Getting Started guide and FAQ for each service. After, research the key topics to deepen your understanding. If you can do that, you're well on your way to a solid AWS foundation and maybe even an entry level certification.
Amazon EC2 - (Elastic Cloud Compute)
Amazon EC2 provides virtual servers, called instances, in the cloud. These are the cloud replacement for server racks in a data center. You can provision as many instances as you need and only pay for what you use. EC2 instances are available on-demand and can automatically scale up or down depending on your needs.
Key topics to understand
- Instance types
- Regions & Availability zones
- User-data
- Instance store volumes (EBS)
- Autoscaling & Scaling policies
- Security groups
- SSH keypairs
- Public / Private / Elastic IPs
AWS IAM - (Identity and Access Management)
AWS IAM allows you to restrict access to your cloud resources. With IAM, you can specify exactly who (or what) can interact with each of your AWS resources. IAM enables you to give the right people access to the right areas of your AWS account and enforce security policies as you see fit.
Key topics to understand
- Users and groups
- Service roles
- Trust relationships
- Identity federation
- Managed and inline policies
- Security tokens (STS)
Amazon S3 - (Simple Storage Service)
S3 is low-cost highly scalable data storage for the cloud. S3 enables you to store your data in folders called buckets that are cost efficient, high performing, and reliable. You can upload and retrieve objects via the AWS SDK, CLI, or management interface. S3 is one of AWS's oldest and most popular services because it is so versatile.
Key topics to understand
- Storage classes and retrieval times
- Lifecycle mangement
- Multi-part uploads
- Data consistency model
- Cross region replication
- CORS
- Static website hosting
- Pre-signed URLs
Amazon RDS - (Relational Database Service)
RDS provides databases in the cloud. RDS supports most of the major database engines and can scale up or down depending on the load. It automates many of the common tasks associated with database management such as software patching, backups, and recovery. RDS is a transactional database, in contrast DynamoDB is Amazon's serverless NoSQL offering.
Key topics to understand
- Database engine options
- Database instance types
- Multi-AZ deployments
- Read replicas
- Auto-scaling
- Encryption options
- Backups and restores
Amazon Route53
Route53 manages DNS within the AWS ecosystem. Route53 serves three major functions: registering domains, DNS routing, and health checking. It is highly available by default and can support high traffic out of the box. You can use any DNS registrar with AWS, but there are some advantages to staying within the AWS eco-system (health checks and alias records to name a few).
Key topics to understand
- Domain concepts - domain name, registrars, TLDs
- DNS record types
- Health checks
- Routing policies
- DNS failover
Amazon ELB - (Elastic Load Balancer)
ELB provides load balancers which distribute incoming traffic across multiple resources inside of AWS, like EC2 servers or ECS nodes. If your traffic is too much for one server or you want to make your application highly available, you need a load balancer. ELB increases your applications reliability by handling SSL, health checks, and traffic routing so your application servers can focus on their primary task.
Key topics to understand
- Health checks
- Stickiness
- CLB vs. NLB vs. ALB
- Cross AZ load balancing
- Connection draining
- SSL Certificates
Amazon CloudFront
CloudFront is Amazon's CDN offering. CloudFront serves static files like HTML, CSS, JS, and images through a worldwide network of edge locations. Using CloudFront edge locations serves your website's static assets from locations that are physically closer to the user. CloudFront adds speed and reliability while reducing costs and taking some work off more expensive compute resources.
Key topics to understand
- Edge locations
- Origins
- Signed URLs
- CORS
- Origin Access Identities
Amazon VPC - (Virtual Private Cloud)
VPCs are a tricky topic. With a VPC, you can define the network that your resources use to communicate. Strictly, a VPC is not a service, but it's something that you need to understand because it forms the backbone of networking in AWS. VPCs form the backbone of AWS solutions and can even link-up on-premises and cloud resources.
Key topics to understand
- Public vs. private IPs
- Subnets
- Route tables
- Access control lists and security groups
- Internet & NAT gateways
- VPC Peering
- VPC Endpoints
AWS Lambda
AWS Lambda is one of my favorite AWS services. Lambda functions are small functions that only run while they are being executed. Lambda functions are serverless and scale easily, which means you only pay for what you use and can handle heavy traffic out of the box. If no one is using your website or application, you don't pay.
Key topics to understand
- Supported runtimes
- Function execution limits
- Triggers and integrations
- Lambda@Edge
Amazon API Gateway
Amazon designed API Gateway for building APIs at scale. API Gateway enables you to build APIs that directly return responses or act as a proxy for other AWS services. API Gateway includes features for managing API caching, API keys and usage plans, request / response transformation and much more. Serverless applications commonly rely on an API gateway proxying requests to an array of Lambda functions.
Key topics to understand
- REST vs. HTTP APIs
- Resources and methods
- Triggers and integrations
- Stages, versioning, and deployments
- API keys and usage plans
- Lambda custom authentication
Bonus: AWS CLI and SDK
Usually, people start learning AWS using the console, but you'll quickly realize you also need a method of interacting with the services through code and the command line. Many amateurs who learn AWS on their own work solely with the web interface, but most professionals primarily use the CLI. I encourage you to research the AWS CLI and the AWS SDK that corresponds to the language you're most comfortable with.
AWS CLI
What is the AWS CLI? | CLI Reference
The AWS CLI (Command Line Interface) is exactly what it sounds like. Instead of clicking buttons on a GUI in a web browser, you can install the AWS CLI and manage all your AWS resources from a terminal. Many professionals prefer the AWS CLI because it is more powerful, and personally, I agree with them.
AWS SDK
The AWS SDKs (Software Development Kits) are Amazon's solution for interacting with AWS resources inside of code. If you want to store images in S3 with a Python script, you'll need the Python SDK. Similarly, if you want to store records in an RDS database with PHP, you'd need the PHP SDK. I suggest getting familiar with at least one of these, you'll probably be needing it.
- C++
- Go
- Java
- JavaScript
- .NET
- Node.js
- PHP
- Python
- Ruby
Where to go next
After you've learned the first 10 services, where do you go next? You should decide what you want to build and focus on the services that will enable you to do that. Learning an AWS specialty on your own can take your career to an even higher level.
Serverless
- Lambda
- Step Functions
- SQS
- SNS
DevOps
- CloudPipeline
- CloudFormation
- ECS
- EKS
Monitoring and administration
- CloudWatch
- CloudTrail
- Systems Manager
Data workloads
- Athena
- EMR
- Kinesis
- Elastic search
Machine learning
- Sagemaker
- Lex
- Polly
- Textract
- Transcribe
Hopefully, this article helped you decide where to start learning AWS. Learning AWS on your own can be a very challenging task, but I promise it's well worth it!
Top comments (4)
Good article.
The most essential service to deeply learn is IAM. It is an essential fabric for the cloud. You may read more at: cloudyali.io/blogs/the-absolute-mi...
Good article. Even better first initial and last name. 😀
Hello. Good article. A note, AWS Lambda is named twice.
That great!, It gives me an overview of these AWS services.