Interactive roadmap
AWS Best Practices roadmap
Designed for cloud beginners and developers, this roadmap helps you build secure, reliable, and cost-effective applications on Amazon Web Services.
- 1
Secure Your Account
0 of 3 done
Lock down your AWS account and manage user access safely.
Security starts with your login. Lock down your credentials early so you can build with peace of mind. - 2
Set Up Networking
0 of 2 done
Control traffic flow and isolate your resources properly.
Good network design is like building a castle with a moat, keeping your most valuable assets safely away from the street. - 3
Ensure High Reliability
0 of 3 done
Design systems that stay online even when things break.
Plan for things to break, because in tech, they eventually will. Build redundancy so your users never notice. - 4
Manage Costs
0 of 2 done
Keep your cloud bill under control with smart spending habits.
Cloud bills can creep up quietly. Keep a close eye on your spending so you never get an unpleasant surprise at month end. - 5
Monitor and Back Up
0 of 3 done
Keep an eye on system health and protect your important data.
You cannot fix what you cannot see, and you cannot recover what you did not back up. Stay prepared.
Learn it all, with a tutor that never sleeps
Every topic links to LevelUp lessons, practice exercises and the 24/7 AI Tutor. Your progress updates as you master lessons.
Every topic explained
Step 1: Secure Your Account
- Keep your main account safe by locking away credentials and using it only for critical tasks.AWS Documentation
Read more
Your root account holds the master keys to your entire cloud environment. Think of it like the master key to a building, which should only be used to open the front door for the very first time.
In practice, you create this account to set up your billing and initial structure, then immediately lock it in a digital safe and use restricted daily accounts instead. This matters because if someone steals your root password, they own everything. Restricting its use stops a single compromised password from destroying your whole setup.
By hiding the root account away, you drastically reduce your overall security risk and ensure bad actors cannot easily take complete control of your cloud infrastructure.
- Never use the root account for daily work
- Enable multi-factor authentication on root immediately
- Store root login details in a secure password manager
- Create separate everyday accounts for normal tasks
- Give people and apps only the permissions they need to do their jobs.
Read more
Identity and Access Management lets you control who can access your cloud resources and what they can do. Imagine giving a cleaner a key to enter the building, but not the key to the main safe.
Instead of sharing one password with your whole team, you create individual identities and grant the bare minimum permissions required for each person or application. This principle of least privilege matters because if a developer laptop is hacked, the attacker only gets access to that specific person's limited tools, rather than the entire database.
Using proper access controls keeps your company data safe and helps you trace who made changes and when.
- Follow the principle of least privilege
- Give applications roles instead of embedding passwords
- Review and remove old user accounts regularly
- Never share passwords or access keys between people
- (optional)
- Keep passwords and keys out of your code by using dedicated secret storage services.
Read more
Hardcoding passwords and database keys inside your application source code is a major security risk. If your code goes on GitHub, your keys go with it for the whole world to see.
Secrets manager services act like a secure digital vault. Your application asks the vault for the password only when it actually needs it, keeping credentials completely out of your code files. This matters because it stops accidental credential leaks and lets you update database passwords easily without rewriting your application code.
Keeping secrets separate from your source code is a fundamental habit for building professional and secure cloud applications.
- Never put passwords or API keys in source code
- Use dedicated vault services to store sensitive data
- Rotate your database passwords and keys regularly
- Restrict which applications can read specific secrets
Step 2: Set Up Networking
- Keep databases and backend servers hidden from the public internet for better security.
Read more
A subnet is a fenced-off section of your cloud network. Public subnets connect directly to the internet, while private subnets are hidden away behind a secure barrier.
Your website frontend belongs in the public subnet so customers can visit it. Your database, however, goes in a private subnet because only your backend servers need to talk to it, not random strangers on the web. This matters because even if hackers manage to break into your public web server, they still cannot reach your private database.
Isolating your backend components adds a powerful second layer of defence to your application architecture.
- Put web servers in public subnets with internet access
- Keep databases and backend code in private subnets
- Use a network gateway to route traffic safely
- Limit direct access to sensitive internal workloads
- Set strict rules on firewalls to control exactly who can talk to your servers.
Read more
Security groups act as virtual firewalls attached directly to your servers. They check every piece of incoming and outgoing traffic to decide if it is allowed.
By default, cloud firewalls block everything. You must explicitly open specific ports, such as allowing web traffic on port 443, while blocking everything else. This matters because it stops unauthorised computers from probing your servers for weaknesses.
Configuring strict firewall rules ensures that only legitimate traffic from trusted sources can ever reach your running applications.
- Block all incoming traffic by default
- Only open necessary ports like HTTP and HTTPS
- Restrict administrative SSH access to your own IP address
- Attach firewalls directly to your server instances
Step 3: Ensure High Reliability
- Run your apps in multiple data centres so a single failure does not take you offline.
Read more
Cloud providers run massive data centres in different physical locations called availability zones. Spreading your app across them means you are not putting all your eggs in one basket.
If you run half your servers in Zone A and half in Zone B, a power outage in Zone A will not take your app offline because Zone B keeps right on running. This matters because hardware failures and local power hiccups happen occasionally without warning.
Designing for multi-location resilience ensures your business stays online and your customers stay happy during unexpected data centre outages.
- Deploy your servers across at least two data centres
- Replicate your database storage across locations
- Use load balancers to share traffic evenly
- Test your failover procedures periodically
- Automatically add or remove servers based on how busy your application is.
Read more
Traffic to your website goes up and down throughout the day. Auto scaling watches your workload and automatically adds or removes server capacity to match demand.
Imagine a coffee shop that automatically calls in extra baristas the moment a long queue forms at the door, then sends them home when the rush is over. This matters because it keeps your app fast when users flood in, while saving you money when traffic is quiet.
Dynamic scaling ensures your infrastructure adapts instantly to real-world usage patterns without manual intervention.
- Monitor CPU usage to trigger new server launches
- Set minimum and maximum limits for server counts
- Design apps to handle sudden server additions smoothly
- Scale down automatically to save money during quiet times
- (optional)
- Automatically detect broken servers and route traffic away from them.
Read more
Health checks are automated pings sent to your servers to see if they are awake, happy, and responding properly to requests.
Think of it like a manager checking in on workers every few minutes. If a server freezes or starts throwing error pages, the health check spots the issue and tells the load balancer to stop sending users to that broken machine. This matters because users never get stuck staring at a frozen browser screen.
Automated checks keep your application self-healing and minimise downtime caused by unresponsive servers.
- Set up regular ping checks on your application endpoints
- Automatically remove unhealthy servers from user traffic
- Restart or replace broken instances automatically
- Monitor response times alongside basic availability
Step 4: Manage Costs
- Get notified immediately if your monthly spending goes higher than expected.
Read more
Cloud usage is pay-as-you-go, which is great for flexibility but dangerous if someone leaves a heavy server running by accident.
Budget alerts act like an automated smoke detector for your wallet. You set a monthly spending limit, and the system sends you an email warning the moment your spending crosses a certain threshold. This matters because it catches runaway scripts or forgotten test servers before they turn into a massive, expensive bill.
Setting up simple alerts gives you early warning and total control over your cloud spending.
- Define an expected monthly budget for your projects
- Set up email alerts at fifty, eighty, and one hundred percent
- Review your billing dashboard at least once a week
- Assign financial accountability to project owners
- Regularly check for old hard drives and idle servers that you are still paying for.
Read more
When testing new ideas, it is easy to spin up storage drives, databases, and servers, and then completely forget about them once you finish.
Cleanup involves regularly hunting down idle hard drives and forgotten servers that are sitting around doing nothing while still racking up hourly charges. This matters because paying for unused digital clutter wastes money that could be spent growing your business.
Regular tidying keeps your cloud environment lean, organised, and cost-effective.
- Delete unattached storage volumes left over from deleted servers
- Shut down development environments over weekends and nights
- Audit old snapshots and backups you no longer need
- Tag resources with owner names to track who uses what
Step 5: Monitor and Back Up
- Collect error logs and performance metrics in one central place to spot problems early.
Read more
When an application crashes in the cloud, you cannot walk over and look at the physical screen. You need a central dashboard to collect all your error logs and performance metrics.
Centralised logging gathers messages from every server and database into one searchable place. This matters because when a customer reports a bug, you can search the logs immediately to find out exactly what went wrong and where.
Good monitoring turns frustrating guessing games into quick, data-driven bug fixes.
- Send all server error messages to a central log store
- Monitor key performance metrics like memory and CPU usage
- Set up alerts for unusual error spikes
- Keep logs long enough to investigate historical issues
- Schedule regular copies of your databases and files so you can recover from accidental deletions.
Read more
Accidental deletions, buggy software updates, and database corruption happen to everyone eventually. Without backups, a single mistake can wipe out your entire business.
Automated backups take regular snapshots of your databases and file storage, saving them safely away in case disaster strikes. This matters because it gives you a time machine to restore your system to a healthy state minutes before a problem occurred.
Routine backups provide a vital safety net for your most important asset, your data.
- Schedule daily automated snapshots of critical databases
- Test your restore process to ensure backups actually work
- Store backup copies in a separate physical location
- Define how long you need to keep historical archives
- (optional)
- Keep a log of every action taken in your account to track down security issues.
Read more
Audit logging records a permanent history of every single action taken inside your cloud account, from creating a server to changing a password.
Think of it like security camera footage in a bank, showing who touched what and when. This matters for security investigations because if an unauthorised change occurs, you can check the audit trail to see exactly which user account made the change.
Maintaining a clear audit history ensures complete accountability and helps meet compliance standards.
- Enable account-wide activity logging from day one
- Store audit logs in a read-only, tamper-proof bucket
- Review activity logs when investigating security anomalies
- Track administrative changes closely for unusual patterns