→

→

15 AWS Projects for Beginners to Build Real Cloud Skills in 2026

AWS

15 AWS Projects for Beginners to Build Real Cloud Skills in 2026

15 AWS Projects for Beginners to Build Real Cloud Skills in 2026

Building projects turns isolated AWS knowledge into practical cloud engineering skills. Explore 15 progressively harder projects, their architectures, and how to document them for a strong portfolio.

Building projects turns isolated AWS knowledge into practical cloud engineering skills. Explore 15 progressively harder projects, their architectures, and how to document them for a strong portfolio.

Building projects turns isolated AWS knowledge into practical cloud engineering skills. Explore 15 progressively harder projects, their architectures, and how to document them for a strong portfolio.

By YourCloudDude

•

•

24 min read

15 AWS projects for beginners to build real cloud skills in 2026

Building AWS projects is one of the fastest ways to move from knowing individual services to understanding how cloud systems actually work. Tutorials and certifications explain concepts, but they do not replace architecture decisions, permissions, failure testing and documentation. These 15 projects progress from storage and compute fundamentals to serverless systems, highly available applications, containers, Infrastructure as Code and disaster recovery.

You do not need to complete every project. Choose a small set that develops different skills, then rebuild each one without step-by-step instructions.

The goal is not to build 15 projects quickly. It is to progressively learn how AWS services work together.

Use the AWS Cloud Engineer Roadmap 2026 to connect foundations, projects, certifications and job-ready practice.

Best AWS Projects for Beginners in 2026

The best starting projects are small enough to finish but broad enough to teach a complete request, data or operational flow:

  • Static Portfolio Website — hosting, CDN, DNS and HTTPS

  • EC2 Web Server — Linux compute and monitoring

  • Automated S3 Backup System — scheduled automation and IAM

  • AWS Cost Alert System — cost monitoring and notifications

  • Serverless URL Shortener — serverless APIs and NoSQL

  • Image Processing Pipeline — event-driven file processing

  • Secure Notes Application — authentication and authorization

  • Serverless REST API — CRUD APIs and observability

  • Event-Driven File Processing System — queues, decoupling and reliability

  • Highly Available Web Application — availability and scaling

  • Three-Tier AWS Architecture — network segmentation

  • Real-Time Notification System — messaging and async workflows

  • Containerized Application on AWS — containers and deployment

  • Infrastructure as Code Deployment — repeatable infrastructure

  • Multi-Region Disaster Recovery Project — disaster recovery

Project Difficulty System

  • Beginner — Learn core services and complete a simple end-to-end flow.

  • Intermediate — Connect managed services and handle errors, permissions and state.

  • Portfolio-Ready — Design for reliability, security, operations and repeatable deployment.

AWS resources can incur charges depending on account plan, Region, usage and configuration. Configure AWS Budgets, monitor usage and delete resources you no longer need.

Project 1: Static Portfolio Website

Difficulty: Beginner

AWS Services: Amazon S3, CloudFront, Route 53, ACM

What You’ll Build

Host a portfolio as static files in S3, deliver it through CloudFront, connect a domain with Route 53 and use an ACM certificate for HTTPS.

Architecture

Visitor
↓
Route 53
↓
CloudFront
↓
Amazon S3

What You’ll Learn

  • Object storage and static hosting

  • CDN caching

  • DNS records

  • HTTPS certificates

  • Private origins

How It Works

  1. Upload the site to S3.

  2. Configure CloudFront with the bucket origin.

  3. Attach the ACM certificate.

  4. Point Route 53 to CloudFront and test HTTPS.

Why This Project Matters

It teaches the complete path from a browser request to globally delivered content and separates storage from secure delivery.

Make It Portfolio-Ready

  • Keep S3 private with origin access control

  • Automate deployment from GitHub

  • Add cache invalidation and monitoring

YourCloudDude Tip

An S3 website endpoint does not provide HTTPS by itself. Use CloudFront for a secure custom domain.

Project 2: EC2 Web Server

Difficulty: Beginner

AWS Services: EC2, Security Groups, EBS, IAM, CloudWatch

What You’ll Build

Launch a Linux web server on EC2, expose only required traffic, store its volume on EBS and monitor health with CloudWatch.

Architecture

Administrator
↓
EC2 + EBS

Visitor
↓
Security Group
↓
EC2

What You’ll Learn

  • EC2 sizing

  • Linux administration

  • Ports and security groups

  • IAM roles

  • Metrics and logs

How It Works

  1. Create an IAM role and restrictive security group.

  2. Launch EC2 with EBS.

  3. Install and deploy the web server.

  4. Create CloudWatch alarms.

Why This Project Matters

Cloud engineers need virtual-machine, operating-system and network-boundary knowledge even when later systems are serverless.

Make It Portfolio-Ready

  • Use Session Manager instead of public SSH

  • Add an ALB and health checks

  • Create a launch template or IaC definition

YourCloudDude Tip

Start with no inbound access and add only the ports and source ranges the workload requires.

Project 3: Automated S3 Backup System

Difficulty: Beginner

AWS Services: S3, Lambda, EventBridge Scheduler, IAM, CloudWatch

What You’ll Build

Run a scheduled Lambda function that copies selected objects into a versioned backup bucket and logs every run.

Architecture

EventBridge Scheduler
↓
Lambda
↓
source S3
↓
backup S3

What You’ll Learn

  • Scheduled jobs

  • AWS SDK automation

  • Least-privilege IAM

  • S3 versioning

  • Restore testing

How It Works

  1. Create source and versioned backup buckets.

  2. Give Lambda scoped read/write access.

  3. Schedule the function.

  4. Review logs and test a restore.

Why This Project Matters

A backup becomes useful only when it is automated, observable and restorable.

Make It Portfolio-Ready

  • Add lifecycle policies

  • Encrypt and test cross-account access

  • Notify on failure

YourCloudDude Tip

A successful copy is not a recovery plan. Document and test the restore path.

Project 4: AWS Cost Alert System

Difficulty: Beginner

AWS Services: AWS Budgets, CloudWatch, SNS

What You’ll Build

Create actual and forecast cost thresholds and route notifications through email or an authorized SNS topic.

Architecture

Cost and usage data
↓
AWS Budgets or CloudWatch
↓
email / SNS

What You’ll Learn

  • Monthly budgets

  • Alert thresholds

  • SNS notifications

  • Billing-data delay

  • Cleanup discipline

How It Works

  1. Create a small budget.

  2. Add multiple thresholds.

  3. Connect email or SNS.

  4. Document cleanup for every lab.

Why This Project Matters

Cost awareness makes every later project safer and is part of responsible cloud engineering.

Make It Portfolio-Ready

  • Create budgets by project tag

  • Notify a team channel

  • Automate a cleanup checklist

YourCloudDude Tip

Budget alerts are not real-time circuit breakers, so keep thresholds conservative.

Project 5: Serverless URL Shortener

Difficulty: Intermediate

AWS Services: API Gateway, Lambda, DynamoDB, IAM, CloudWatch

What You’ll Build

Create short codes and redirect visitors to destination URLs. API Gateway receives requests, Lambda applies logic and DynamoDB stores mappings.

Architecture

Client
↓
API Gateway
↓
Lambda
↓
DynamoDB
↓
redirect

What You’ll Learn

  • HTTP endpoints

  • Lambda handlers

  • DynamoDB keys

  • Input validation

  • Request tracing

How It Works

  1. Create the DynamoDB table.

  2. Build create and resolve functions.

  3. Expose API routes.

  4. Test missing and malformed links.

Why This Project Matters

It connects managed APIs, stateless compute and persistent data in a compact architecture.

Make It Portfolio-Ready

  • Add DynamoDB TTL

  • Use a custom domain

  • Add rate limits, logs and IaC

YourCloudDude Tip

Use enough randomness and handle short-code collisions explicitly.

Project 6: Image Processing Pipeline

Difficulty: Intermediate

AWS Services: S3, Lambda, CloudWatch; optional SNS

What You’ll Build

Process an uploaded image automatically, create a derivative or extract metadata, and store the result separately.

Architecture

Upload
↓
S3 event
↓
Lambda
↓
processed S3
↓
optional SNS

What You’ll Learn

  • S3 events

  • File processing

  • Input/output separation

  • Retries

  • Memory and error monitoring

How It Works

  1. Upload to the input location.

  2. S3 invokes Lambda.

  3. Lambda transforms and writes output.

  4. CloudWatch records the result.

Why This Project Matters

The pattern appears in media, document and data workflows without requiring a continuously running server.

Make It Portfolio-Ready

  • Make processing idempotent

  • Add a failure destination

  • Record job status

YourCloudDude Tip

Filter the output prefix so processed files cannot trigger a recursive invocation loop.

Project 7: Secure Notes Application

Difficulty: Intermediate

AWS Services: API Gateway, Lambda, DynamoDB, Cognito, IAM

What You’ll Build

Create a private notes backend where authenticated users can access only their own records.

Architecture

User
↓
Cognito
↓
API Gateway authorizer
↓
Lambda
↓
DynamoDB

What You’ll Learn

  • Authentication vs authorization

  • Token-backed identity

  • User-partitioned data

  • Least privilege

  • Access-control testing

How It Works

  1. Create a Cognito user pool.

  2. Protect API routes.

  3. Pass verified identity to Lambda.

  4. Enforce ownership in DynamoDB operations.

Why This Project Matters

It connects identity, API authorization and data-access decisions instead of treating security as an add-on.

Make It Portfolio-Ready

  • Add audit logs

  • Encrypt sensitive data

  • Test cross-user access failures

YourCloudDude Tip

A valid token proves identity, not ownership. Check the user against every record.

Project 8: Serverless REST API

Difficulty: Intermediate

AWS Services: API Gateway, Lambda, DynamoDB, CloudWatch, IAM

What You’ll Build

Implement create, read, update and delete operations for tasks or inventory with consistent responses and observable failures.

Architecture

Client
↓
API Gateway routes
↓
Lambda
↓
DynamoDB
↓
CloudWatch

What You’ll Learn

  • CRUD routes

  • Request validation

  • Access-pattern design

  • Status codes

  • Logs and correlation IDs

How It Works

  1. Define access patterns.

  2. Create routes and handlers.

  3. Scope DynamoDB permissions.

  4. Test success and error paths.

Why This Project Matters

Production-ready APIs require contracts, error handling, security and observability—not only CRUD logic.

Make It Portfolio-Ready

  • Add Cognito

  • Create automated tests

  • Deploy separate stages with IaC

YourCloudDude Tip

Design DynamoDB keys around required queries rather than copying relational-table habits.

Project 9: Event-Driven File Processing System

Difficulty: Intermediate

AWS Services: S3, EventBridge, SQS, Lambda, DynamoDB, CloudWatch

What You’ll Build

Route file events into a queue, process jobs asynchronously and store status so failures and backlog are visible.

Architecture

S3
↓
EventBridge
↓
SQS
↓
Lambda
↓
DynamoDB

failures
↓
DLQ

What You’ll Learn

  • Event routing

  • Queue buffering

  • Retries and visibility timeout

  • Idempotency

  • Backlog monitoring

How It Works

  1. S3 produces an event.

  2. EventBridge routes it to SQS.

  3. Lambda polls and processes messages.

  4. DynamoDB stores status and CloudWatch monitors backlog.

Why This Project Matters

Decoupling allows producers and consumers to operate at different speeds while exposing duplicate-delivery and retry concerns.

Make It Portfolio-Ready

  • Add a DLQ and redrive policy

  • Alarm on message age

  • Trace jobs end to end

YourCloudDude Tip

Assume a message can arrive more than once and use an idempotency key before changing state.

Project 10: Highly Available Web Application

Difficulty: Portfolio-Ready

AWS Services: VPC, EC2, ALB, Auto Scaling, RDS, CloudWatch

What You’ll Build

Run a web application across Availability Zones behind an ALB, maintain compute with Auto Scaling and store relational data in RDS.

Architecture

Users
↓
public ALB
↓
private EC2 Auto Scaling
↓
RDS Multi-AZ

What You’ll Learn

  • Multi-AZ design

  • Health checks

  • Horizontal scaling

  • Database isolation

  • Capacity monitoring

How It Works

  1. Create a multi-AZ VPC.

  2. Place ALB and targets correctly.

  3. Restrict database access to the app tier.

  4. Test failed-target replacement.

Why This Project Matters

It turns a single server into a system that can continue when an instance or Availability Zone has trouble.

Make It Portfolio-Ready

  • Use RDS Multi-AZ where appropriate

  • Externalize sessions

  • Run controlled failure tests

YourCloudDude Tip

Make the health endpoint test a meaningful dependency path, not only whether the process is running.

Project 11: Three-Tier AWS Architecture

Difficulty: Portfolio-Ready

AWS Services: VPC, subnets, ALB, EC2 or ECS, RDS, NAT Gateway, IAM

What You’ll Build

Separate the public entry point, private application compute and isolated database into controlled network tiers.

Architecture

Internet
↓
public ALB
↓
private app tier
↓
isolated RDS

egress
↓
NAT Gateway

What You’ll Learn

  • CIDR planning

  • Route tables

  • Security-group references

  • Outbound access

  • Trust boundaries

How It Works

  1. Design multi-AZ subnets.

  2. Route public traffic only to ALB.

  3. Forward approved requests to private compute.

  4. Allow database traffic only from the app tier.

Why This Project Matters

It teaches exposure, trust boundaries, failure domains and controlled communication.

Make It Portfolio-Ready

  • Use security-group references

  • Add VPC Flow Logs

  • Provision the network with IaC

YourCloudDude Tip

A private subnet is defined by its routing, not by its name.

Project 12: Real-Time Notification System

Difficulty: Portfolio-Ready

AWS Services: API Gateway, Lambda, SNS, SQS, DynamoDB

What You’ll Build

Accept notification requests, store status and fan out work while queues provide durable buffers for independent consumers.

Architecture

Client
↓
API Gateway
↓
Lambda
↓
DynamoDB + SNS
↓
SQS
↓
workers

What You’ll Learn

  • Request vs delivery

  • Fan-out

  • Status tracking

  • Retries and DLQs

  • Message security

How It Works

  1. Validate and record the request.

  2. Publish an event to SNS.

  3. Buffer work in SQS.

  4. Workers update delivery status.

Why This Project Matters

It separates a fast API response from reliable background delivery.

Make It Portfolio-Ready

  • Add per-channel DLQs

  • Implement deduplication

  • Alarm on oldest message age

YourCloudDude Tip

Use SNS for fan-out and SQS for durable buffering to avoid tight coupling.

Project 13: Containerized Application on AWS

Difficulty: Portfolio-Ready

AWS Services: Docker, ECR, ECS, Fargate, ALB, CloudWatch

What You’ll Build

Package an application as a Docker image, store it in ECR and run it as an ECS service on Fargate behind an ALB.

Architecture

Developer
↓
ECR
↓
ECS on Fargate
↓
ALB
↓
Users

logs
↓
CloudWatch

What You’ll Learn

  • Container images

  • ECR versioning

  • ECS tasks and services

  • Service networking

  • Deployment observation

How It Works

  1. Build and test locally.

  2. Push a tagged image.

  3. Create a task and service.

  4. Attach ALB and inspect logs.

Why This Project Matters

Containers connect repeatable application packaging with managed cloud operations.

Make It Portfolio-Ready

  • Add autoscaling and rollback alarms

  • Build images in CI

  • Scan images and scope task roles

YourCloudDude Tip

Use immutable image versions or commit identifiers instead of relying on the latest tag.

Project 14: Infrastructure as Code Deployment

Difficulty: Portfolio-Ready

AWS Services: Terraform, CloudFormation or AWS CDK; Git and IAM

What You’ll Build

Recreate an earlier project from code and store it in Git so another learner can deploy and remove the same environment.

Architecture

Git repository
↓
IaC plan or template
↓
AWS deployment

What You’ll Learn

  • Dependencies

  • Variables and outputs

  • Change review

  • Version control

  • Drift awareness

How It Works

  1. Choose one completed project and IaC tool.

  2. Model every resource.

  3. Review the plan or change set.

  4. Destroy and recreate from the repository.

Why This Project Matters

IaC turns a console demo into a reproducible engineering artifact with review history.

Make It Portfolio-Ready

  • Validate in CI

  • Create reusable modules

  • Use state and deployment roles safely

YourCloudDude Tip

If the repository cannot rebuild the environment, the infrastructure is not fully represented in code.

Project 15: Multi-Region Disaster Recovery Project

Difficulty: Portfolio-Ready

AWS Services: Route 53, S3, RDS or Aurora, CloudFront, CloudWatch, backup and replication

What You’ll Build

Design a second-Region recovery strategy, replicate required data, monitor health and rehearse traffic failover.

Architecture

Users
↓
Route 53
↓
primary or recovery Region

data
↓
backup / replication

What You’ll Learn

  • RTO and RPO

  • DR strategy selection

  • Data replication

  • Health-aware routing

  • Recovery runbooks

How It Works

  1. Define acceptable downtime and data loss.

  2. Build a minimal recovery environment.

  3. Configure backup or replication.

  4. Run and measure a controlled failover.

Why This Project Matters

It combines architecture, operations, data consistency, cost and decision-making. A second Region alone is not a tested recovery capability.

Make It Portfolio-Ready

  • Automate both Regions with IaC

  • Schedule recovery exercises

  • Test partial failures and stale data

YourCloudDude Tip

Start with RTO and RPO, then choose services. Complexity without recovery objectives is not resilience.

Which AWS Project Should You Build First?

Start with the project that fills the largest gap in your current skills. If you have never deployed anything, begin with the static website or EC2 server. If you know the basics, choose a serverless or architecture project that forces you to handle failure and security.

Project

Difficulty

Main AWS Services

Main Skill

Portfolio Value

Static Portfolio Website

Beginner

Amazon S3, CloudFront, Route 53

hosting, CDN, DNS and HTTPS

High

EC2 Web Server

Beginner

EC2, Security Groups, EBS

Linux compute and monitoring

High

Automated S3 Backup System

Beginner

S3, Lambda, EventBridge Scheduler

scheduled automation and IAM

Medium

AWS Cost Alert System

Beginner

AWS Budgets, CloudWatch, SNS

cost monitoring and notifications

High

Serverless URL Shortener

Intermediate

API Gateway, Lambda, DynamoDB

serverless APIs and NoSQL

High

Image Processing Pipeline

Intermediate

S3, Lambda, CloudWatch; optional SNS

event-driven file processing

High

Secure Notes Application

Intermediate

API Gateway, Lambda, DynamoDB

authentication and authorization

High

Serverless REST API

Intermediate

API Gateway, Lambda, DynamoDB

CRUD APIs and observability

High

Event-Driven File Processing System

Intermediate

S3, EventBridge, SQS

queues, decoupling and reliability

Very high

Highly Available Web Application

Portfolio-Ready

VPC, EC2, ALB

availability and scaling

Very high

Three-Tier AWS Architecture

Portfolio-Ready

VPC, subnets, ALB

network segmentation

Very high

Real-Time Notification System

Portfolio-Ready

API Gateway, Lambda, SNS

messaging and async workflows

High

Containerized Application on AWS

Portfolio-Ready

Docker, ECR, ECS

containers and deployment

Very high

Infrastructure as Code Deployment

Portfolio-Ready

Terraform, CloudFormation or AWS CDK; Git and IAM

repeatable infrastructure

Very high

Multi-Region Disaster Recovery Project

Portfolio-Ready

Route 53, S3, RDS or Aurora

disaster recovery

Very high

AWS Projects by Skill Level

Start Here

Projects 1–4 build storage, delivery, Linux compute, automation, monitoring and cost awareness.

Build Serverless Skills

Projects 5–9 connect APIs, Lambda, DynamoDB, identity, events and queues, moving from synchronous requests to reliable asynchronous work.

Learn Real Cloud Architecture

Projects 10–12 focus on availability, network segmentation and messaging. Explain placement, trust boundaries and failure behavior.

Become More Job Ready

Projects 13–15 add container deployment, version-controlled infrastructure and disaster recovery. Support them with diagrams, runbooks and failure-test evidence.

The progression works because each stage reuses earlier knowledge while adding one operational concern. Learn, build a small version and then improve it deliberately.

How Many AWS Projects Do You Need for a Portfolio?

Three to five well-documented projects can be more valuable than dozens of copied tutorials. Choose work that demonstrates compute, networking, IAM, databases, serverless design, monitoring, automation and architecture. Explain the problem, service choices, trade-offs and improvements. Projects strengthen a portfolio, but do not guarantee employment.

How to Make an AWS Project Stand Out on Your Resume

A strong project should be understandable without opening your AWS console.

  • Clear problem statement

  • Architecture diagram

  • AWS services used and why

  • GitHub repository and README

  • Deployment and cleanup instructions

  • Security and cost considerations

  • Monitoring and failure handling

  • Lessons learned

Weak Resume Bullet

Created an application using AWS.

Improved Resume Bullet

Designed and documented a serverless file-processing workflow using Amazon S3, EventBridge, Amazon SQS, AWS Lambda and DynamoDB, with least-privilege IAM, retry handling, a dead-letter queue and CloudWatch alarms.

The improved version names the problem, architecture and controls without inventing performance metrics.

Common AWS Project Mistakes

  • Copying tutorials exactly — rebuild independently and explain every choice.

  • Using too many services — prefer the smallest architecture that meets the requirement.

  • Ignoring IAM and security — scope permissions and test unauthorized access.

  • Ignoring cost — set budgets and delete unused resources.

  • Building without monitoring — add logs, metrics, alarms and useful health signals.

  • No documentation — record deployment, testing, cleanup and lessons.

  • No architecture diagram — show traffic, data and trust boundaries.

  • Never rebuilding independently — repeat the project to expose knowledge gaps.

AWS Project Learning Strategy

Learn → Build → Break → Troubleshoot → Improve → Document

  • Learn — Study only what the next milestone needs.

  • Build — Create the simplest end-to-end version.

  • Break — Remove a permission, stop a target or send invalid input.

  • Troubleshoot — Use logs, metrics, events and documentation.

  • Improve — Add one security, reliability, cost or automation enhancement.

  • Document — Capture architecture, decisions, failures and lessons.

This cycle turns a tutorial into engineering practice. Breaking and troubleshooting the system is where much of the learning happens.

Want More Hands-On AWS Projects?

AWS Project Vault is the next step for learners who want 15+ structured AWS projects, practical architectures, implementation guidance and portfolio-focused learning without assembling a path from scattered tutorials.

Explore AWS Project Vault →

Continue Learning

AWS Cloud Engineer Roadmap 2026

Use the complete AWS learning roadmap to place projects alongside Linux, networking, AWS fundamentals and career preparation.

AWS Certification Roadmap 2026

Use this upcoming guide to choose a certification path that matches the cloud work you want to perform.

10 Real-World AWS Architectures You Should Know

Use this upcoming guide to study service boundaries, data flow, reliability and design trade-offs.

Frequently Asked Questions

What are the best AWS projects for beginners?

Start with a static website, EC2 web server, automated S3 backup and AWS cost alert system. Each teaches a complete workflow without a large application. Then move into API Gateway, Lambda, DynamoDB and event-driven processing.

Can beginners build AWS projects?

Yes. Start with a narrow goal and small service set, then add security, monitoring and automation. Read current pricing, configure AWS Budgets and delete unused resources. The objective is to understand every connection, not maximize service count.

Which AWS project should I build first?

Build a static portfolio website first if you have never deployed to AWS. It combines storage, CDN delivery, DNS and HTTPS. If you already manage Linux servers, start with a serverless URL shortener or REST API.

How many AWS projects should I put on my resume?

Three to five strong projects are enough to demonstrate range when they are well documented. Cover different skills and choose projects you can explain deeply rather than listing many copied repositories.

Are AWS projects enough to get a cloud job?

Projects provide evidence of practical ability but do not guarantee employment. Employers may also evaluate fundamentals, troubleshooting, communication and role-specific knowledge. Use projects to demonstrate decisions, failures and improvements.

Do I need Python for AWS projects?

No. Several beginner projects use configuration, Linux and web files. Python is useful for Lambda, automation, AWS SDK scripts and APIs, but other supported languages can work. Choose one you can debug and explain.

Can I build AWS projects using the Free Tier?

Some workloads may fit current Free Tier credits or always-free limits, depending on eligibility and configuration. AWS is not universally free. Check current terms, set budgets, monitor usage and clean up after each lab.

Should AWS projects be on GitHub?

Yes, when the code can be shared safely. Include application code, IaC, a README, diagram, deployment and cleanup steps. Never commit credentials, private keys, secrets or sensitive data.

What makes an AWS project portfolio-ready?

A portfolio-ready project has a clear problem, justified services, least-privilege access, monitoring, failure handling, cost awareness, repeatable deployment and strong documentation. You should be able to rebuild and explain it independently.

Official AWS References

AWS Free Tier FAQs — current credits and usage-limit guidance.

Event-driven architectures with Lambda — invocation, queues, retries and decoupling.

Routing traffic to an S3-hosted website — Route 53, CloudFront and HTTPS.

Scaled and load-balanced EC2 application — Auto Scaling and Availability Zones.

AWS Budgets best practices — thresholds and notifications.

CloudFormation best practices — version control, validation and security.

AWS CloudOps · Troubleshooting

Deploying an AWS resource is only half the skill. The harder part begins when an instance cannot be reached, an API returns 502, an IAM request is denied or an application suddenly loses database connectivity.

This AWS troubleshooting guide is not a list of definitions or a collection of random fixes. It teaches a repeatable process for identifying the broken layer, tracing the request, testing one hypothesis at a time and proving the fix.

The objective is not to memorize every AWS error. It is to develop a CloudOps method you can reuse across EC2, IAM, S3, VPC, Lambda, API Gateway, RDS and load balancers.

Good troubleshooting is not guessing faster. It is eliminating possibilities systematically.

Quick answer

How Do You Troubleshoot an AWS Problem?

Read the exact symptom, identify the most likely layer, check recent changes and telemetry, trace the request, isolate one component, find the root cause, fix it, verify the behavior and prevent recurrence.

How Cloud Engineers Debug AWS
Read symptom
Identify layer
Recent changes
Metrics + logs
Trace request
Isolate
Root cause
Fix
Verify
Prevent
Jump to a failure

Request path

First Identify Which Layer Is Broken

A request usually crosses several layers. Do not begin by checking random services. Determine where the request stops, then investigate that boundary.

Trace the Request
User
DNS
Network
Load Balancer
Compute
Application
Database
Dependencies
IAM / SecurityMonitoringConfiguration
01

Failure 01 · EC2

EC2 Instance Is Running but SSH Times Out

Symptom

The instance is running, but an SSH connection to port 22 times out.

Most likely layer

Networking

Typical causes

  • Wrong Region or public address
  • Port 22 is not allowed from your trusted source
  • No internet-gateway route for the subnet
  • A network ACL or local firewall blocks the path
  • The SSH service or instance is not ready

Architecture

EC2 troubleshooting path
Laptop
Internet
Internet Gateway
Route Table
Security Group
EC2 :22

How to Diagnose It

  1. Confirm the account, Region, instance state and status checks.
  2. Confirm the intended connectivity model: public IPv4/IPv6, EC2 Instance Connect Endpoint, VPN, bastion or Systems Manager.
  3. For a public path, verify the address, attached internet gateway and the subnet route.
  4. Allow SSH only from the required trusted IP or network; do not open port 22 globally as a shortcut.
  5. Check network ACLs, the local/corporate firewall, the AMI user name and SSH service.
  6. Use VPC Reachability Analyzer when a configuration-path analysis will help isolate the blocking component.

Root cause example

The instance was healthy, but its subnet route table had no route to the attached internet gateway.

Fix

Restore the intended route or use the approved private-access method, then keep the security-group source narrowly scoped.

How to verify the fix

Reconnect using the correct address and user, confirm the host key, then test the application from the same approved path.

Prevent it next time

  • Use reviewed network templates
  • Prefer managed private access where practical
  • Document the approved connection path
02

Failure 02 · IAM

AWS Says “AccessDenied”

Symptom

An AWS API request is rejected with AccessDenied or not authorized.

Most likely layer

Identity and authorization

Typical causes

  • The active user or role is not the identity you expected
  • No applicable Allow grants the exact action and resource
  • An identity, resource, boundary, session or organization policy explicitly denies it
  • A policy condition does not match
  • The request uses the wrong role session context

Architecture

IAM troubleshooting path
User / Role
Policy Evaluation
Allow or Deny
AWS Resource

How to Diagnose It

  1. Capture the exact principal, action, resource ARN and error context.
  2. Run aws sts get-caller-identity when using the CLI or SDK.
  3. Review identity policies and the resource policy where the service supports one.
  4. Check permissions boundaries, session policies, service control policies and applicable conditions.
  5. Distinguish an implicit deny caused by no matching Allow from an explicit Deny, which wins over an Allow.

Root cause example

The application assumed a deployment role whose session policy omitted the required resource ARN.

Fix

Grant only the required action on the intended resource in the correct policy layer, or correct the role/session being used.

How to verify the fix

Repeat the same request as the same principal and confirm CloudTrail records the expected allowed action.

Prevent it next time

  • Use least-privilege policy reviews
  • Log the principal ARN in deployments
  • Test permission boundaries before release
03

Failure 03 · S3

S3 Returns 403 Access Denied

Symptom

An application can reach Amazon S3 but receives HTTP 403 for a bucket or object operation.

Most likely layer

Authorization

Typical causes

  • IAM or bucket policy does not allow the operation
  • An explicit deny or Block Public Access setting rejects the request context
  • Object ownership or cross-account context differs
  • A customer-managed KMS key policy lacks required access
  • A presigned URL is expired or signed for a different request

Architecture

S3 troubleshooting path
Application
IAM Role
S3 Authorization
Bucket / Object

How to Diagnose It

  1. Identify the caller with sts get-caller-identity and record the exact S3 action.
  2. Check the bucket ARN versus object ARN and review both identity and bucket policies.
  3. Inspect Object Ownership and any cross-account path.
  4. For SSE-KMS objects, verify the relevant KMS permissions and key policy.
  5. For presigned URLs, check expiry, method, headers, Region and the signer’s permissions.

Root cause example

The role could read the bucket, but the object used a customer-managed KMS key that the role could not decrypt.

Fix

Correct the narrowly scoped S3 and, when required, KMS permissions. Keep the bucket private unless public access is truly intended.

How to verify the fix

Repeat the exact object operation as the same role and confirm the correct object is returned without broadening public access.

Prevent it next time

  • Test the real runtime role
  • Standardize bucket ownership
  • Review S3 and KMS policies together
04

Failure 04 · ALB

Application Load Balancer Says Target Is Unhealthy

Symptom

A registered EC2 or ECS target fails the target group health check.

Most likely layer

Application and network

Typical causes

  • Health-check path does not exist
  • Health-check port differs from the listening port
  • The target security group blocks the load balancer
  • The service has not started or is bound to the wrong interface
  • The returned status code is outside the configured success matcher

Architecture

ALB troubleshooting path
Users
ALB
GET /health :8080
EC2 / ECS

How to Diagnose It

  1. Read the target health reason code before changing settings.
  2. Confirm protocol, port, path, timeout and success-code matcher.
  3. From inside the VPC, request the same path on the target’s private address and port.
  4. Verify the target security group allows the load balancer security group.
  5. Check application startup logs and confirm the process is listening on the expected interface and port.

Root cause example

The target group checked /health on port 8080, while the application listened on port 3000.

Fix

Align the target group health check with the application or correct the application listener, while preserving least-privilege security-group rules.

How to verify the fix

Wait for the healthy threshold, confirm the target becomes Healthy and make a request through the load balancer.

Prevent it next time

  • Expose a lightweight health endpoint
  • Keep app and infrastructure ports in one configuration source
  • Alert on healthy-host count
05

Failure 05 · Lambda

Lambda Function Times Out

Symptom

The function reaches its configured timeout before returning a response.

Most likely layer

Runtime and dependency

Typical causes

  • A downstream API or database is slow
  • A network call has no shorter client timeout
  • VPC routing, NAT or security rules block an outbound dependency
  • The workload needs more CPU or a different design
  • The function is waiting, retrying or processing too much in one invocation

Architecture

Lambda troubleshooting path
Event
Lambda
External Dependency
Response

How to Diagnose It

  1. Use the REPORT line and logs to find where duration is spent.
  2. Add timing around external calls and inspect the last successful log statement.
  3. Test downstream availability and configure explicit connection/read timeouts.
  4. If VPC-connected, check routes, security groups, DNS and NAT or service endpoints.
  5. Test memory settings because Lambda allocates CPU proportionally with memory, but do not treat more memory as a substitute for finding a blocked call.

Root cause example

A VPC-connected function called a public API from a private subnet with no working outbound path.

Fix

Restore the required network path or use an appropriate private endpoint, and set bounded client timeouts and retries.

How to verify the fix

Invoke with representative events, confirm duration stays below the timeout and verify the dependency receives the expected request.

Prevent it next time

  • Instrument dependency latency
  • Use bounded retries and timeouts
  • Alarm on errors, duration and throttles
06

Failure 06 · API

API Gateway Returns 502 Internal Server Error

Symptom

A client receives 502 from an API Gateway endpoint backed by Lambda.

Most likely layer

Integration response

Typical causes

  • The Lambda function ran but returned an error
  • The proxy response has the wrong shape or a non-string body
  • The function version or alias is not the one expected
  • Integration logging is incomplete
  • The integration contract differs from the deployed API

Architecture

API troubleshooting path
Client
API Gateway
Lambda
Response Contract

How to Diagnose It

  1. Capture the request ID and enable useful API access/execution logging for the API type.
  2. Open the corresponding Lambda log stream and locate the same request.
  3. Invoke the function with the API event shape.
  4. For a Lambda proxy integration, validate statusCode, headers, isBase64Encoded when used, and a string body.
  5. Distinguish invocation rejection, which can surface as 500, from a function error or malformed proxy response, which AWS documents as 502.

Root cause example

The function returned body as an object instead of a JSON string in a proxy response.

Fix

Return the response contract expected by the integration and handle application errors deliberately.

How to verify the fix

Call the deployed stage, confirm the intended HTTP status/body and correlate the request in API Gateway and Lambda logs.

Prevent it next time

  • Contract-test integration responses
  • Log request IDs
  • Deploy API and Lambda changes together
07

Failure 07 · RDS

Application Cannot Connect to RDS

Symptom

The application cannot establish or authenticate a database connection.

Most likely layer

Network, authentication or configuration

Typical causes

  • Wrong endpoint, port or database name
  • The DB security group does not allow the application security group
  • Subnet routing, peering or network ACLs block the path
  • The DB is unavailable or still starting
  • Credentials or secrets are wrong or stale

Architecture

RDS troubleshooting path
Application
App Security Group
VPC Path
DB Security Group
RDS

How to Diagnose It

  1. Classify the error: DNS failure, connection timeout/refused, TLS failure or authentication rejection.
  2. Confirm the current RDS endpoint, port, engine status and Region.
  3. Test DNS and TCP reachability from the application environment.
  4. Verify the DB security group allows the application security group or the required trusted source.
  5. Only after the network path works, verify the secret, database user, TLS mode and application connection string.

Root cause example

A new application security group was deployed, but the DB inbound rule still referenced the old group.

Fix

Restore the intended security-group relationship or correct the connection configuration and credentials.

How to verify the fix

Connect from the application runtime, run a harmless query and confirm the app’s connection-pool health.

Prevent it next time

  • Reference security groups rather than broad CIDRs
  • Monitor connections and DB availability
  • Rotate and test secrets safely
08

Failure 08 · VPC

Two AWS Resources Cannot Communicate Inside a VPC

Symptom

A source resource cannot reach a destination on a known protocol and port.

Most likely layer

Network path

Typical causes

  • The destination security group does not allow the source
  • A route is missing or points to the wrong target
  • A network ACL blocks the request or return path
  • The resources are in unconnected VPCs or overlapping networks
  • The destination service is not listening

Architecture

VPC troubleshooting path
Source
Source SG
Route
Subnet / NACL
Destination SG
Destination

How to Diagnose It

  1. Write down source, destination, protocol and port.
  2. Confirm the destination is listening and its address is current.
  3. Inspect security groups in both directions of the intended stateful flow.
  4. Trace route tables, peering/transit-gateway attachments and network ACL rules.
  5. Use VPC Reachability Analyzer to analyze configured reachability and identify a blocking component.

Root cause example

The destination security group allowed the old source CIDR but not the source instance’s security group.

Fix

Correct the narrow network control or route that breaks the intended path, then confirm the service is listening.

How to verify the fix

Test the exact protocol and port from the source and rerun the path analysis after the configuration change.

Prevent it next time

  • Document flows as source–destination–port
  • Review network changes
  • Use repeatable infrastructure definitions
09

Failure 09 · CLI

AWS CLI Shows No Resources but They Exist in the Console

Symptom

A list command returns no resources while the console shows them.

Most likely layer

Configuration

Typical causes

  • The CLI uses a different Region
  • The active profile belongs to another account
  • A different role is assumed
  • Environment credentials override the profile
  • A command filter excludes the resource

Architecture

CLI troubleshooting path
CLI Profile
Account
Region
List / Filter

How to Diagnose It

  1. Run aws sts get-caller-identity.
  2. Run aws configure list and inspect environment variables.
  3. Print the effective Region and compare it with the console.
  4. Retry without optional filters and confirm the service is regional or global as expected.

Root cause example

The console displayed Account A in us-east-1 while the CLI profile used Account B in eu-west-1.

Fix

Select the intended profile and Region explicitly, then remove or correct the filter.

How to verify the fix

Repeat the list command and compare the returned resource ID with the console.

Prevent it next time

  • Name profiles clearly
  • Show account and Region in shell prompts
  • Pass Region explicitly in automation
10

Failure 10 · Logs

The App Is Broken but CloudWatch Shows “Nothing”

Symptom

The application fails, but the expected CloudWatch log group or log events are empty.

Most likely layer

Observability

Typical causes

  • The wrong account, Region, log group or stream is open
  • Application or service logging is not configured
  • The delivery role lacks required log permissions
  • The request never reaches the expected code path
  • Retention or log routing removed or redirected the events

Architecture

Logs troubleshooting path
Application
Logging
CloudWatch Logs
Query / Alarm

How to Diagnose It

  1. Confirm account, Region, time range, log group and stream.
  2. Check whether the service must have logging enabled and whether the destination exists.
  3. Verify the execution or delivery role can create streams and put log events when those permissions are required.
  4. Add a known startup or request-boundary log and test again.
  5. Check metrics separately: metrics and logs are different signals, and one can exist without the other.

Root cause example

The application failed at the load balancer and never invoked the code path that emitted application logs.

Fix

Restore logging configuration or permissions, then instrument the earliest useful boundary in the request path.

How to verify the fix

Generate a controlled request and confirm a timestamped event, correlation ID and expected metric appear in the correct account and Region.

Prevent it next time

  • Provision logging with the workload
  • Use correlation IDs
  • Alert on missing expected telemetry

Save this

AWS Troubleshooting Cheat Sheet

SymptomCheck firstLikely layer
EC2 SSH timeoutNetwork path + security groupNetworking
AccessDeniedIAM evaluationIdentity and authorization
S3 403IAM + bucket policyAuthorization
ALB unhealthyHealth checkApplication and network
Lambda timeoutLogs + dependencyRuntime and dependency
API 502Lambda + response contractIntegration response
RDS timeoutNetwork + DB security groupNetwork, authentication or configuration
VPC connection failsPath analysisNetwork path
CLI resource missingAccount + RegionConfiguration
No logsLogging configurationObservability

EC2 SSH timeout

Check firstNetwork path + security group
LayerNetworking

AccessDenied

Check firstIAM evaluation
LayerIdentity and authorization

S3 403

Check firstIAM + bucket policy
LayerAuthorization

ALB unhealthy

Check firstHealth check
LayerApplication and network

Lambda timeout

Check firstLogs + dependency
LayerRuntime and dependency

API 502

Check firstLambda + response contract
LayerIntegration response

RDS timeout

Check firstNetwork + DB security group
LayerNetwork, authentication or configuration

VPC connection fails

Check firstPath analysis
LayerNetwork path

CLI resource missing

Check firstAccount + Region
LayerConfiguration

No logs

Check firstLogging configuration
LayerObservability

Fast triage

The 5-Minute AWS Debugging Checklist

  • Am I in the correct AWS account?
  • Am I in the correct Region?
  • What changed recently?
  • What identity or role is being used?
  • What exact error do I have?
  • Is DNS resolving?
  • Can traffic reach the destination?
  • Are security groups correct?
  • What do the logs show?
  • Are downstream services healthy?
  • Can I reproduce the failure?
  • Did the fix resolve the root cause?

Avoid these traps

Troubleshooting Habits That Make AWS Problems Worse

  1. Changing five things at once
  2. Granting AdministratorAccess to test
  3. Opening security groups to everyone
  4. Ignoring the exact error message
  5. Assuming AWS itself is broken first
  6. Ignoring the Region or account
  7. Fixing the symptom but not the cause
  8. Not documenting the incident

Transferable method

Think Like a Cloud Engineer

Observe the evidence, form a testable hypothesis, change one controlled variable, isolate the failing boundary, fix the cause, verify the result and document what you learned.

Think Like a Cloud Engineer
Observe
Hypothesize
Test
Isolate
Fix
Verify
Document

Learn → Build → Break → Troubleshoot → Improve → Document

Troubleshooting is one of the skills that turns AWS knowledge into practical cloud engineering ability. Use the AWS Cloud Engineer Roadmap 2026 to place it in your wider learning path, then intentionally debug the systems in 15 AWS Projects for Beginners. When certification supports that path, compare options in the AWS Certification Roadmap 2026.

Future deep dives can expand this playbook with AWS IAM Explained, AWS VPC Explained, EC2 vs Lambda, an AWS CloudOps Engineer Roadmap and a dedicated AWS CloudWatch Guide.

Build AWS Skills Beyond Tutorials

Troubleshooting gets easier when you have actually built the systems you are debugging. Explore YourCloudDude’s hands-on AWS projects and architecture resources.

Explore AWS Resources →

Direct answers

AWS Troubleshooting FAQ

What is the best way to troubleshoot AWS?

The best approach is to identify the broken layer, inspect recent changes and telemetry, trace the request, isolate one component, apply one fix and verify the result.

Why does AWS say AccessDenied?

AWS returns AccessDenied when the effective policy evaluation does not allow the requested action, or when an applicable policy explicitly denies it.

Why can I not connect to my EC2 instance?

First separate instance health from network reachability, then check the address, approved access path, route, security group, network ACL and SSH service.

How do I troubleshoot AWS networking?

Write down the source, destination, protocol and port, then trace every routing and security control between them.

What is VPC Reachability Analyzer?

VPC Reachability Analyzer is a static configuration-analysis tool that determines whether a configured network path is reachable and identifies a blocking component; it is not a packet generator.

Why does API Gateway return a 502 error?

With a Lambda integration, API Gateway can return 502 when the function runs but errors or when the proxy response does not match the required format.

What should I check when Lambda times out?

Check where execution time is spent, especially downstream calls, retries, VPC networking and resource usage, before increasing the timeout.

What AWS service should I use for logs?

Amazon CloudWatch Logs is the central log service for many AWS workloads, but the producing service or application must be configured and authorized to deliver the logs.

Is troubleshooting important for Cloud Engineers?

Yes. Cloud Engineers must be able to trace failures across identity, network, compute, application, data and observability layers instead of only deploying resources.

Technical references

Official AWS Documentation Used

AWS CloudOps · Troubleshooting

Deploying an AWS resource is only half the skill. The harder part begins when an instance cannot be reached, an API returns 502, an IAM request is denied or an application suddenly loses database connectivity.

This AWS troubleshooting guide is not a list of definitions or a collection of random fixes. It teaches a repeatable process for identifying the broken layer, tracing the request, testing one hypothesis at a time and proving the fix.

The objective is not to memorize every AWS error. It is to develop a CloudOps method you can reuse across EC2, IAM, S3, VPC, Lambda, API Gateway, RDS and load balancers.

Good troubleshooting is not guessing faster. It is eliminating possibilities systematically.

Quick answer

How Do You Troubleshoot an AWS Problem?

Read the exact symptom, identify the most likely layer, check recent changes and telemetry, trace the request, isolate one component, find the root cause, fix it, verify the behavior and prevent recurrence.

How Cloud Engineers Debug AWS
Read symptom
Identify layer
Recent changes
Metrics + logs
Trace request
Isolate
Root cause
Fix
Verify
Prevent
Jump to a failure

Request path

First Identify Which Layer Is Broken

A request usually crosses several layers. Do not begin by checking random services. Determine where the request stops, then investigate that boundary.

Trace the Request
User
DNS
Network
Load Balancer
Compute
Application
Database
Dependencies
IAM / SecurityMonitoringConfiguration
01

Failure 01 · EC2

EC2 Instance Is Running but SSH Times Out

Symptom

The instance is running, but an SSH connection to port 22 times out.

Most likely layer

Networking

Typical causes

  • Wrong Region or public address
  • Port 22 is not allowed from your trusted source
  • No internet-gateway route for the subnet
  • A network ACL or local firewall blocks the path
  • The SSH service or instance is not ready

Architecture

EC2 troubleshooting path
Laptop
Internet
Internet Gateway
Route Table
Security Group
EC2 :22

How to Diagnose It

  1. Confirm the account, Region, instance state and status checks.
  2. Confirm the intended connectivity model: public IPv4/IPv6, EC2 Instance Connect Endpoint, VPN, bastion or Systems Manager.
  3. For a public path, verify the address, attached internet gateway and the subnet route.
  4. Allow SSH only from the required trusted IP or network; do not open port 22 globally as a shortcut.
  5. Check network ACLs, the local/corporate firewall, the AMI user name and SSH service.
  6. Use VPC Reachability Analyzer when a configuration-path analysis will help isolate the blocking component.

Root cause example

The instance was healthy, but its subnet route table had no route to the attached internet gateway.

Fix

Restore the intended route or use the approved private-access method, then keep the security-group source narrowly scoped.

How to verify the fix

Reconnect using the correct address and user, confirm the host key, then test the application from the same approved path.

Prevent it next time

  • Use reviewed network templates
  • Prefer managed private access where practical
  • Document the approved connection path
02

Failure 02 · IAM

AWS Says “AccessDenied”

Symptom

An AWS API request is rejected with AccessDenied or not authorized.

Most likely layer

Identity and authorization

Typical causes

  • The active user or role is not the identity you expected
  • No applicable Allow grants the exact action and resource
  • An identity, resource, boundary, session or organization policy explicitly denies it
  • A policy condition does not match
  • The request uses the wrong role session context

Architecture

IAM troubleshooting path
User / Role
Policy Evaluation
Allow or Deny
AWS Resource

How to Diagnose It

  1. Capture the exact principal, action, resource ARN and error context.
  2. Run aws sts get-caller-identity when using the CLI or SDK.
  3. Review identity policies and the resource policy where the service supports one.
  4. Check permissions boundaries, session policies, service control policies and applicable conditions.
  5. Distinguish an implicit deny caused by no matching Allow from an explicit Deny, which wins over an Allow.

Root cause example

The application assumed a deployment role whose session policy omitted the required resource ARN.

Fix

Grant only the required action on the intended resource in the correct policy layer, or correct the role/session being used.

How to verify the fix

Repeat the same request as the same principal and confirm CloudTrail records the expected allowed action.

Prevent it next time

  • Use least-privilege policy reviews
  • Log the principal ARN in deployments
  • Test permission boundaries before release
03

Failure 03 · S3

S3 Returns 403 Access Denied

Symptom

An application can reach Amazon S3 but receives HTTP 403 for a bucket or object operation.

Most likely layer

Authorization

Typical causes

  • IAM or bucket policy does not allow the operation
  • An explicit deny or Block Public Access setting rejects the request context
  • Object ownership or cross-account context differs
  • A customer-managed KMS key policy lacks required access
  • A presigned URL is expired or signed for a different request

Architecture

S3 troubleshooting path
Application
IAM Role
S3 Authorization
Bucket / Object

How to Diagnose It

  1. Identify the caller with sts get-caller-identity and record the exact S3 action.
  2. Check the bucket ARN versus object ARN and review both identity and bucket policies.
  3. Inspect Object Ownership and any cross-account path.
  4. For SSE-KMS objects, verify the relevant KMS permissions and key policy.
  5. For presigned URLs, check expiry, method, headers, Region and the signer’s permissions.

Root cause example

The role could read the bucket, but the object used a customer-managed KMS key that the role could not decrypt.

Fix

Correct the narrowly scoped S3 and, when required, KMS permissions. Keep the bucket private unless public access is truly intended.

How to verify the fix

Repeat the exact object operation as the same role and confirm the correct object is returned without broadening public access.

Prevent it next time

  • Test the real runtime role
  • Standardize bucket ownership
  • Review S3 and KMS policies together
04

Failure 04 · ALB

Application Load Balancer Says Target Is Unhealthy

Symptom

A registered EC2 or ECS target fails the target group health check.

Most likely layer

Application and network

Typical causes

  • Health-check path does not exist
  • Health-check port differs from the listening port
  • The target security group blocks the load balancer
  • The service has not started or is bound to the wrong interface
  • The returned status code is outside the configured success matcher

Architecture

ALB troubleshooting path
Users
ALB
GET /health :8080
EC2 / ECS

How to Diagnose It

  1. Read the target health reason code before changing settings.
  2. Confirm protocol, port, path, timeout and success-code matcher.
  3. From inside the VPC, request the same path on the target’s private address and port.
  4. Verify the target security group allows the load balancer security group.
  5. Check application startup logs and confirm the process is listening on the expected interface and port.

Root cause example

The target group checked /health on port 8080, while the application listened on port 3000.

Fix

Align the target group health check with the application or correct the application listener, while preserving least-privilege security-group rules.

How to verify the fix

Wait for the healthy threshold, confirm the target becomes Healthy and make a request through the load balancer.

Prevent it next time

  • Expose a lightweight health endpoint
  • Keep app and infrastructure ports in one configuration source
  • Alert on healthy-host count
05

Failure 05 · Lambda

Lambda Function Times Out

Symptom

The function reaches its configured timeout before returning a response.

Most likely layer

Runtime and dependency

Typical causes

  • A downstream API or database is slow
  • A network call has no shorter client timeout
  • VPC routing, NAT or security rules block an outbound dependency
  • The workload needs more CPU or a different design
  • The function is waiting, retrying or processing too much in one invocation

Architecture

Lambda troubleshooting path
Event
Lambda
External Dependency
Response

How to Diagnose It

  1. Use the REPORT line and logs to find where duration is spent.
  2. Add timing around external calls and inspect the last successful log statement.
  3. Test downstream availability and configure explicit connection/read timeouts.
  4. If VPC-connected, check routes, security groups, DNS and NAT or service endpoints.
  5. Test memory settings because Lambda allocates CPU proportionally with memory, but do not treat more memory as a substitute for finding a blocked call.

Root cause example

A VPC-connected function called a public API from a private subnet with no working outbound path.

Fix

Restore the required network path or use an appropriate private endpoint, and set bounded client timeouts and retries.

How to verify the fix

Invoke with representative events, confirm duration stays below the timeout and verify the dependency receives the expected request.

Prevent it next time

  • Instrument dependency latency
  • Use bounded retries and timeouts
  • Alarm on errors, duration and throttles
06

Failure 06 · API

API Gateway Returns 502 Internal Server Error

Symptom

A client receives 502 from an API Gateway endpoint backed by Lambda.

Most likely layer

Integration response

Typical causes

  • The Lambda function ran but returned an error
  • The proxy response has the wrong shape or a non-string body
  • The function version or alias is not the one expected
  • Integration logging is incomplete
  • The integration contract differs from the deployed API

Architecture

API troubleshooting path
Client
API Gateway
Lambda
Response Contract

How to Diagnose It

  1. Capture the request ID and enable useful API access/execution logging for the API type.
  2. Open the corresponding Lambda log stream and locate the same request.
  3. Invoke the function with the API event shape.
  4. For a Lambda proxy integration, validate statusCode, headers, isBase64Encoded when used, and a string body.
  5. Distinguish invocation rejection, which can surface as 500, from a function error or malformed proxy response, which AWS documents as 502.

Root cause example

The function returned body as an object instead of a JSON string in a proxy response.

Fix

Return the response contract expected by the integration and handle application errors deliberately.

How to verify the fix

Call the deployed stage, confirm the intended HTTP status/body and correlate the request in API Gateway and Lambda logs.

Prevent it next time

  • Contract-test integration responses
  • Log request IDs
  • Deploy API and Lambda changes together
07

Failure 07 · RDS

Application Cannot Connect to RDS

Symptom

The application cannot establish or authenticate a database connection.

Most likely layer

Network, authentication or configuration

Typical causes

  • Wrong endpoint, port or database name
  • The DB security group does not allow the application security group
  • Subnet routing, peering or network ACLs block the path
  • The DB is unavailable or still starting
  • Credentials or secrets are wrong or stale

Architecture

RDS troubleshooting path
Application
App Security Group
VPC Path
DB Security Group
RDS

How to Diagnose It

  1. Classify the error: DNS failure, connection timeout/refused, TLS failure or authentication rejection.
  2. Confirm the current RDS endpoint, port, engine status and Region.
  3. Test DNS and TCP reachability from the application environment.
  4. Verify the DB security group allows the application security group or the required trusted source.
  5. Only after the network path works, verify the secret, database user, TLS mode and application connection string.

Root cause example

A new application security group was deployed, but the DB inbound rule still referenced the old group.

Fix

Restore the intended security-group relationship or correct the connection configuration and credentials.

How to verify the fix

Connect from the application runtime, run a harmless query and confirm the app’s connection-pool health.

Prevent it next time

  • Reference security groups rather than broad CIDRs
  • Monitor connections and DB availability
  • Rotate and test secrets safely
08

Failure 08 · VPC

Two AWS Resources Cannot Communicate Inside a VPC

Symptom

A source resource cannot reach a destination on a known protocol and port.

Most likely layer

Network path

Typical causes

  • The destination security group does not allow the source
  • A route is missing or points to the wrong target
  • A network ACL blocks the request or return path
  • The resources are in unconnected VPCs or overlapping networks
  • The destination service is not listening

Architecture

VPC troubleshooting path
Source
Source SG
Route
Subnet / NACL
Destination SG
Destination

How to Diagnose It

  1. Write down source, destination, protocol and port.
  2. Confirm the destination is listening and its address is current.
  3. Inspect security groups in both directions of the intended stateful flow.
  4. Trace route tables, peering/transit-gateway attachments and network ACL rules.
  5. Use VPC Reachability Analyzer to analyze configured reachability and identify a blocking component.

Root cause example

The destination security group allowed the old source CIDR but not the source instance’s security group.

Fix

Correct the narrow network control or route that breaks the intended path, then confirm the service is listening.

How to verify the fix

Test the exact protocol and port from the source and rerun the path analysis after the configuration change.

Prevent it next time

  • Document flows as source–destination–port
  • Review network changes
  • Use repeatable infrastructure definitions
09

Failure 09 · CLI

AWS CLI Shows No Resources but They Exist in the Console

Symptom

A list command returns no resources while the console shows them.

Most likely layer

Configuration

Typical causes

  • The CLI uses a different Region
  • The active profile belongs to another account
  • A different role is assumed
  • Environment credentials override the profile
  • A command filter excludes the resource

Architecture

CLI troubleshooting path
CLI Profile
Account
Region
List / Filter

How to Diagnose It

  1. Run aws sts get-caller-identity.
  2. Run aws configure list and inspect environment variables.
  3. Print the effective Region and compare it with the console.
  4. Retry without optional filters and confirm the service is regional or global as expected.

Root cause example

The console displayed Account A in us-east-1 while the CLI profile used Account B in eu-west-1.

Fix

Select the intended profile and Region explicitly, then remove or correct the filter.

How to verify the fix

Repeat the list command and compare the returned resource ID with the console.

Prevent it next time

  • Name profiles clearly
  • Show account and Region in shell prompts
  • Pass Region explicitly in automation
10

Failure 10 · Logs

The App Is Broken but CloudWatch Shows “Nothing”

Symptom

The application fails, but the expected CloudWatch log group or log events are empty.

Most likely layer

Observability

Typical causes

  • The wrong account, Region, log group or stream is open
  • Application or service logging is not configured
  • The delivery role lacks required log permissions
  • The request never reaches the expected code path
  • Retention or log routing removed or redirected the events

Architecture

Logs troubleshooting path
Application
Logging
CloudWatch Logs
Query / Alarm

How to Diagnose It

  1. Confirm account, Region, time range, log group and stream.
  2. Check whether the service must have logging enabled and whether the destination exists.
  3. Verify the execution or delivery role can create streams and put log events when those permissions are required.
  4. Add a known startup or request-boundary log and test again.
  5. Check metrics separately: metrics and logs are different signals, and one can exist without the other.

Root cause example

The application failed at the load balancer and never invoked the code path that emitted application logs.

Fix

Restore logging configuration or permissions, then instrument the earliest useful boundary in the request path.

How to verify the fix

Generate a controlled request and confirm a timestamped event, correlation ID and expected metric appear in the correct account and Region.

Prevent it next time

  • Provision logging with the workload
  • Use correlation IDs
  • Alert on missing expected telemetry

Save this

AWS Troubleshooting Cheat Sheet

SymptomCheck firstLikely layer
EC2 SSH timeoutNetwork path + security groupNetworking
AccessDeniedIAM evaluationIdentity and authorization
S3 403IAM + bucket policyAuthorization
ALB unhealthyHealth checkApplication and network
Lambda timeoutLogs + dependencyRuntime and dependency
API 502Lambda + response contractIntegration response
RDS timeoutNetwork + DB security groupNetwork, authentication or configuration
VPC connection failsPath analysisNetwork path
CLI resource missingAccount + RegionConfiguration
No logsLogging configurationObservability

EC2 SSH timeout

Check firstNetwork path + security group
LayerNetworking

AccessDenied

Check firstIAM evaluation
LayerIdentity and authorization

S3 403

Check firstIAM + bucket policy
LayerAuthorization

ALB unhealthy

Check firstHealth check
LayerApplication and network

Lambda timeout

Check firstLogs + dependency
LayerRuntime and dependency

API 502

Check firstLambda + response contract
LayerIntegration response

RDS timeout

Check firstNetwork + DB security group
LayerNetwork, authentication or configuration

VPC connection fails

Check firstPath analysis
LayerNetwork path

CLI resource missing

Check firstAccount + Region
LayerConfiguration

No logs

Check firstLogging configuration
LayerObservability

Fast triage

The 5-Minute AWS Debugging Checklist

  • Am I in the correct AWS account?
  • Am I in the correct Region?
  • What changed recently?
  • What identity or role is being used?
  • What exact error do I have?
  • Is DNS resolving?
  • Can traffic reach the destination?
  • Are security groups correct?
  • What do the logs show?
  • Are downstream services healthy?
  • Can I reproduce the failure?
  • Did the fix resolve the root cause?

Avoid these traps

Troubleshooting Habits That Make AWS Problems Worse

  1. Changing five things at once
  2. Granting AdministratorAccess to test
  3. Opening security groups to everyone
  4. Ignoring the exact error message
  5. Assuming AWS itself is broken first
  6. Ignoring the Region or account
  7. Fixing the symptom but not the cause
  8. Not documenting the incident

Transferable method

Think Like a Cloud Engineer

Observe the evidence, form a testable hypothesis, change one controlled variable, isolate the failing boundary, fix the cause, verify the result and document what you learned.

Think Like a Cloud Engineer
Observe
Hypothesize
Test
Isolate
Fix
Verify
Document

Learn → Build → Break → Troubleshoot → Improve → Document

Troubleshooting is one of the skills that turns AWS knowledge into practical cloud engineering ability. Use the AWS Cloud Engineer Roadmap 2026 to place it in your wider learning path, then intentionally debug the systems in 15 AWS Projects for Beginners. When certification supports that path, compare options in the AWS Certification Roadmap 2026.

Future deep dives can expand this playbook with AWS IAM Explained, AWS VPC Explained, EC2 vs Lambda, an AWS CloudOps Engineer Roadmap and a dedicated AWS CloudWatch Guide.

Build AWS Skills Beyond Tutorials

Troubleshooting gets easier when you have actually built the systems you are debugging. Explore YourCloudDude’s hands-on AWS projects and architecture resources.

Explore AWS Resources →

Direct answers

AWS Troubleshooting FAQ

What is the best way to troubleshoot AWS?

The best approach is to identify the broken layer, inspect recent changes and telemetry, trace the request, isolate one component, apply one fix and verify the result.

Why does AWS say AccessDenied?

AWS returns AccessDenied when the effective policy evaluation does not allow the requested action, or when an applicable policy explicitly denies it.

Why can I not connect to my EC2 instance?

First separate instance health from network reachability, then check the address, approved access path, route, security group, network ACL and SSH service.

How do I troubleshoot AWS networking?

Write down the source, destination, protocol and port, then trace every routing and security control between them.

What is VPC Reachability Analyzer?

VPC Reachability Analyzer is a static configuration-analysis tool that determines whether a configured network path is reachable and identifies a blocking component; it is not a packet generator.

Why does API Gateway return a 502 error?

With a Lambda integration, API Gateway can return 502 when the function runs but errors or when the proxy response does not match the required format.

What should I check when Lambda times out?

Check where execution time is spent, especially downstream calls, retries, VPC networking and resource usage, before increasing the timeout.

What AWS service should I use for logs?

Amazon CloudWatch Logs is the central log service for many AWS workloads, but the producing service or application must be configured and authorized to deliver the logs.

Is troubleshooting important for Cloud Engineers?

Yes. Cloud Engineers must be able to trace failures across identity, network, compute, application, data and observability layers instead of only deploying resources.

Technical references

Official AWS Documentation Used