Skip to content
AWS Fundamentals — Complete Beginner's Guide to Amazon Web Services

AWS Fundamentals — Complete Beginner's Guide to Amazon Web Services

DodaTech Updated Jun 7, 2026 9 min read

Amazon Web Services (AWS) is the world’s leading cloud platform, offering over 200 services for computing, storage, databases, machine learning, and more — used by startups, enterprises, and governments worldwide.

What You’ll Learn

By the end of this tutorial, you’ll understand the core AWS services (EC2, S3, Lambda, IAM, VPC), how to set up your first AWS account, launch a virtual server, store files in the cloud, and implement basic security practices.

Why AWS Matters

AWS powers over 30% of the global cloud market — more than Azure and GCP combined. Companies from Netflix to NASA rely on AWS. Understanding AWS is the most in-demand cloud skill in 2026. At DodaTech, DodaZIP uses AWS S3 for file storage and Lambda for serverless thumbnail generation.

AWS Learning Path

    flowchart LR
  A[Cloud Basics] --> B[AWS]
  B --> C{You Are Here}
  C --> D[EC2 Compute]
  C --> E[S3 Storage]
  C --> F[Lambda Serverless]
  D --> G[Complete AWS App]
  style C fill:#f90,color:#fff
  
Prerequisites: Cloud Computing basics and familiarity with the command line. Linux basics help but aren’t required.

What Is AWS? (The “Why” First)

Think of AWS as a giant vending machine for IT infrastructure. Need a server? Insert a credit card, get one running in 60 seconds. Need 100 servers? Same process. Need to store a billion files? Just pay for what you use.

Before AWS, launching a new product meant ordering servers, waiting weeks for delivery, and paying for capacity you might not use for months. AWS flipped that model — now you provision resources in minutes and scale instantly.

Core AWS Services

EC2 — Elastic Compute Cloud

EC2 provides virtual servers (instances) in the cloud. You choose the operating system, CPU, memory, and storage.

Key concepts:

  • AMI (Amazon Machine Image) — pre-configured OS template
  • Instance type — hardware specs (t3.micro = 2 vCPUs, 1GB RAM)
  • Security group — firewall rules (what ports are open)
  • Key pair — SSH key for secure login
# Connecting to your first EC2 instance
# After launching an instance and downloading the key pair:
chmod 400 my-key.pem
ssh -i my-key.pem ec2-user@<public-ip-address>

# Once connected, check the instance:
cat /etc/os-release
# Output: NAME="Amazon Linux"
free -h
# Shows memory
df -h
# Shows disk

EC2 pricing options:

OptionDescriptionUse Case
On-DemandPay per hour/secondVariable workloads, testing
Reserved1-3 year commitment, up to 72% discountSteady-state production
SpotBid for unused capacity, up to 90% discountBatch processing, fault-tolerant apps
Savings PlansFlexible compute commitmentMixed workloads

S3 — Simple Storage Service

S3 stores any amount of data in “buckets” (containers). It’s the most widely used AWS service.

Key concepts:

  • Bucket — a container for objects (files)
  • Object — a file with metadata (up to 5TB)
  • Key — the unique identifier for an object
  • Region — where the bucket is physically located
# aws_s3_demo.py
# Interacting with S3 using Python (requires AWS credentials)
import boto3

def list_buckets():
    """List all S3 buckets in your account."""
    s3 = boto3.client('s3')
    try:
        response = s3.list_buckets()
        print("Your S3 Buckets:")
        for bucket in response['Buckets']:
            print(f"  - {bucket['Name']} (created {bucket['CreationDate']})")
    except Exception as e:
        print(f"Error: {e}")
        print("Make sure AWS credentials are configured.")

def upload_demo_file():
    """Upload a sample file to S3."""
    s3 = boto3.client('s3')
    bucket_name = "dodatech-demo-" + str(hash("demo"))[-6:]

    try:
        # Create bucket
        s3.create_bucket(Bucket=bucket_name)
        print(f"Created bucket: {bucket_name}")

        # Upload a file
        content = b"Hello from DodaTech AWS Tutorial!"
        s3.put_object(Bucket=bucket_name, Key="hello.txt", Body=content)
        print(f"Uploaded hello.txt")

        # Download and verify
        response = s3.get_object(Bucket=bucket_name, Key="hello.txt")
        data = response['Body'].read()
        print(f"Downloaded: {data.decode()}")

        # Clean up
        s3.delete_object(Bucket=bucket_name, Key="hello.txt")
        s3.delete_bucket(Bucket=bucket_name)
        print(f"Cleaned up bucket: {bucket_name}")
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    upload_demo_file()

Expected output:

Created bucket: dodatech-demo-123456
Uploaded hello.txt
Downloaded: Hello from DodaTech AWS Tutorial!
Cleaned up bucket: dodatech-demo-123456

S3 storage classes:

ClassDurabilityRetrievalCostUse Case
Standard99.999999999%InstantHigherFrequently accessed data
Infrequent Access99.999999999%InstantLowerBackups, old media
Glacier99.999999999%1-12 hoursLowestArchives, compliance

Lambda — Serverless Computing

Lambda runs code without provisioning or managing servers. You upload code, set a trigger, and AWS runs it when needed.

# lambda_function.py
# A simple AWS Lambda function
import json

def lambda_handler(event, context):
    """Process an S3 upload event."""
    print(f"Received event: {json.dumps(event)}")

    # Extract bucket and key from S3 event
    for record in event.get('Records', []):
        bucket = record['s3']['bucket']['name']
        key = record['s3']['object']['key']
        print(f"File uploaded: s3://{bucket}/{key}")

        # In a real app, you'd process the file here
        # e.g., generate thumbnails, scan for malware, etc.

    return {
        'statusCode': 200,
        'body': json.dumps('Processing complete')
    }

Lambda triggers:

  • S3 upload → process file (e.g., image resizing)
  • API Gateway → respond to HTTP requests
  • CloudWatch → scheduled tasks
  • SQS → message queue processing

IAM — Identity and Access Management

IAM controls who can access your AWS resources. This is the most important security service.

Best practices:

  1. Root user — only for account setup. Never use daily.
  2. Create IAM users — one per person or application
  3. Least privilege — grant only the permissions needed
  4. Use IAM roles — for EC2 instances and Lambda functions
  5. Enable MFA — on the root account and all users

VPC — Virtual Private Cloud

VPC lets you create an isolated network within AWS with full control over IP addresses, subnets, and routing.

    flowchart TD
  subgraph AWS Cloud
    subgraph VPC
      subgraph "Public Subnet"
        EC2[Web Server]
        LB[Load Balancer]
      end
      subgraph "Private Subnet"
        DB[(Database)]
      end
      GW[Internet Gateway]
    end
  end
  Internet --> GW --> LB --> EC2
  EC2 --> DB
  

Deploying Your First Application

A complete web app on AWS involves:

  1. S3 — host static files (HTML, CSS, JS)
  2. EC2 or Lambda — run backend code
  3. RDS — managed database (PostgreSQL, MySQL)
  4. Route 53 — DNS management
  5. CloudFront — CDN for fast global delivery

Common AWS Mistakes

1. Leaving Root Access Without MFA

Root account compromise means losing your entire AWS account. Enable MFA immediately.

2. Exposing S3 Buckets Publicly

By default, S3 buckets are private. Public buckets require explicit configuration. Always double-check bucket policies.

3. Not Using Cost Explorer

AWS costs can spiral. Use Cost Explorer to track spending and set budget alerts from day one.

4. Using the Wrong Instance Type

A t3.micro is fine for testing but will buckle under production load. Right-size instances based on monitoring data.

5. Ignoring Availability Zones

Deploy across at least two availability zones for high availability. A single-AZ deployment goes down when that AZ has an outage.

6. Hardcoding Credentials

Never put AWS credentials in code. Use IAM roles for EC2/Lambda, and environment variables or AWS Secrets Manager for local development.

7. Not Setting Up CloudWatch Alarms

Without monitoring, you won’t know about spikes, errors, or performance degradation until users complain.

Practice Questions

1. What does EC2 provide and what are the four pricing models?

EC2 provides virtual servers (compute instances). Pricing: On-Demand (pay per hour), Reserved (commitment discount), Spot (unused capacity discount), Savings Plans (flexible compute commitment).

2. What is S3 and how does it organize data?

S3 is object storage. Data is stored in buckets (containers) as objects (files) identified by a unique key. Objects can be up to 5TB.

3. What is AWS Lambda and when should you use it?

Lambda runs code without managing servers. Use it for event-driven tasks: file processing, API backends, scheduled tasks, and real-time data processing.

4. What is the principle of least privilege in IAM?

Grant only the minimum permissions needed for a user or service to function. This limits the blast radius if credentials are compromised.

5. Challenge: Design a highly available web app architecture using AWS services.

Use: S3 + CloudFront for static files, EC2 Auto Scaling group across 2+ AZs with an ALB, RDS Multi-AZ for the database, Route 53 for DNS routing.

Mini Project: Static Website on S3

# Deploy a static website on AWS S3 in 5 minutes

# 1. Create a bucket (must be globally unique)
aws s3 mb s3://my-dodatech-site-2026

# 2. Enable static website hosting
aws s3 website s3://my-dodatech-site-2026 \
  --index-document index.html \
  --error-document error.html

# 3. Create a simple index.html
echo "<h1>Hello from DodaTech AWS Tutorial!</h1>" > index.html

# 4. Upload the file
aws s3 cp index.html s3://my-dodatech-site-2026/

# 5. Make it publicly readable
aws s3api put-bucket-policy --bucket my-dodatech-site-2026 \
  --policy '{
    "Version": "2012-10-17",
    "Statement": [{
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-dodatech-site-2026/*"
    }]
  }'

# 6. Visit the site
echo "Site URL: http://my-dodatech-site-2026.s3-website-<region>.amazonaws.com"

This same approach hosts the download pages for DodaZIP and Durga Antivirus Pro.

FAQ

How much does AWS cost for a beginner?
AWS Free Tier includes 750 hours/month of EC2 (t2.micro), 5GB of S3 storage, and 1 million Lambda requests for 12 months. You can learn without spending anything.
Which AWS certification should I get?
Start with AWS Certified Cloud Practitioner (foundational), then AWS Solutions Architect Associate (most popular). These are the most recognized entry-level cloud certifications.
Do I need to learn all 200+ AWS services?
No. Focus on the core 10-15 services: EC2, S3, Lambda, IAM, VPC, RDS, DynamoDB, CloudFront, Route 53, SQS, SNS, CloudWatch. The rest you learn as needed.
What’s the difference between EC2 and Lambda?
EC2 is a virtual server you manage (OS, updates, scaling). Lambda runs code on-demand without server management. EC2 is better for long-running applications; Lambda is better for event-driven, short-lived tasks.
Can AWS be used for personal projects?
Absolutely. Many developers run personal projects on AWS Free Tier. Blogs, portfolio sites, and small APIs cost little to nothing.

Try It Yourself

Create an AWS Free Tier account and complete these steps:

  1. Launch a t2.micro EC2 instance (Amazon Linux)
  2. SSH into the instance and run sudo yum update
  3. Install a web server: sudo yum install -y httpd
  4. Start the server: sudo systemctl start httpd
  5. Access the public IP in your browser — you’ll see the Apache test page

This proves you can deploy servers in the cloud — the same process DodaTech uses to deploy Doda Browser update servers and Durga Antivirus Pro signature distribution nodes.

What’s Next

What’s Next

Congratulations on completing this AWS Fundamentals tutorial! Here’s where to go from here:

  • Practice daily — Consistency is more important than long study sessions
  • Build a project — Apply what you learned by building something real
  • Explore related topics — Check out other tutorials in the same category
  • Join the community — Discuss with other learners and share your progress

Remember: every expert was once a beginner. Keep coding!

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro