AWS CCP Study Guide

Introduction to Cloud Computing

  • Definition: Cloud computing is the practice of using remote servers hosted on the internet to store, manage, and process data, rather than a local server or a personal computer.

  • Key Characteristics:

    • High Availability and Scalability: Public cloud providers like AWS maintain hundreds of thousands of networked servers with multiple layers of redundancy. This ensures that if one component fails, workloads are automatically moved to healthy replacements.

    • Professionally Secured Infrastructure: Providers take responsibility for the security of underlying networking and compute infrastructure, often employing better-trained teams than individual businesses could afford.

    • Metered Payment Model: Cloud computing follows a "pay-as-you-go" model. Users are billed based on the time and resources consumed (e.g., fractional pennies for an hour of testing), transitioning costs from Capital Expenses (CapEx) to Operating Expenses (OpEx).

  • Server Virtualization: The "secret sauce" of the cloud. AWS uses a hypervisor to carve virtual machines (VMs) out of large physical host servers. This allows for:

    • Speed: Provisioning a VM takes seconds or minutes compared to months for physical hardware.

    • Efficiency: Multiple VMs can be packed onto a single host to maximize resource utilization.

Cloud Platform and Service Models

  • Infrastructure as a Service (IaaS): Provides direct access to compute, storage, and networking. The user is responsible for managing the operating system and software stack. Examples: Amazon EC2, EBS.

  • Platform as a Service (PaaS): Hides infrastructure complexity. Users provide application code, and the platform handles the environment. Examples: AWS Elastic Beanstalk, Elastic Container Service (ECS).

  • Software as a Service (SaaS): Services accessed by end-users via web browsers. Examples: Microsoft Office 365, Gmail, Amazon WorkSpaces.

  • Serverless Workloads: Allows developers to run code (functions) in response to events without managing servers. Examples: AWS Lambda. Functions are short-lived (maximum 15 minutes15\,\text{minutes}) and highly cost-efficient.

  • Scalability vs. Elasticity:

    • Scalability: The ability of a system to grow in capacity to meet demand.

    • Elasticity: The ability of a system to automatically add or remove resources to match changing usage levels, returning to a baseline when demand drops.

Understanding Your AWS Account

  • The AWS Free Tier: Designed for new accounts to experiment with services for the first 12 months. Highlights include:

    • Amazon EC2: 750 hours/month750\,\text{hours/month} of t2.micro instances.

    • Amazon S3: 5 GB5\,\text{GB} of standard storage.

    • Amazon RDS: 750 hours/month750\,\text{hours/month} of lightweight database workloads.

    • Always Free Services: Amazon DynamoDB (25 GB25\,\text{GB}), AWS Lambda (1 million1\,\text{million} requests/month), and Amazon SNS (1 million1\,\text{million} notifications/month).

  • Pricing Documentation: Every service has a unique pricing page (e.g., aws.amazon.com/s3/pricing). Pricing varies by region and usage volume (bulk discounts).

  • Cost Modeling Tools:

    • Simple Monthly Calculator: Estimates the monthly bill for a specific stack of AWS resources.

    • TCO (Total Cost of Ownership) Calculator: Compares the costs of on-premises operations (including labor, power, and hardware cooling) against AWS equivalents.

  • Billing and Monitoring:

    • AWS Budgets: Sets alerts for when costs or usage exceed a defined threshold.

    • Cost Explorer: Provides visualizations of historical and forecasted spending.

    • AWS Organizations: Centralizes administration and billing for multiple AWS accounts under one company.

Getting Support on AWS

  • Support Plans:

    • Basic: Free. Includes 7 Trusted Advisor checks, documentation, and customer service for billing.

    • Developer: Starts at $29/\text{month}. Best for non-production workloads. Email access to support during business hours.

    • Business: Starts at $100/\text{month}. 24/7 access to support via email, chat, and phone. One-hour response for "production system down."

    • Enterprise: Starts at $15,000/\text{month}. Includes a Technical Account Manager (TAM) and 15-minute response for business-critical systems.

  • AWS Trusted Advisor: An automated tool that checks your account against best practices in five categories: Cost Optimization, Performance, Security, Fault Tolerance, and Service Limits.

AWS Global Infrastructure

  • AWS Regions: Geographic areas containing at least two Availability Zones (AZs). Use regions to reduce latency and comply with local laws. Most services are region-specific.

  • Availability Zones (AZs): One or more discrete data centers with redundant power and networking within a region. AZs are interconnected via low-latency links. Designing for High Availability (HA) involves deploying across multiple AZs.

  • Edge Locations: Used by Amazon CloudFront (CDN) to cache content closer to end-users to reduce latency. There are over 150 edge locations worldwide.

  • Shared Responsibility Model:

    • AWS Responsibility: "Security of the Cloud" (Physical hardware, global infrastructure, managed service software).

    • Customer Responsibility: "Security in the Cloud" (Customer data, IAM, OS patching for EC2, firewall configurations).

Identity and Access Management (IAM)

  • Principal of Least Privilege: Users should only have the minimum permissions necessary to perform their jobs.

  • Root User: Created when the account is opened. Has full administrative control. Best practice: Enable MFA, use a complex password, and avoid daily use.

  • IAM Components:

    • Users: Persistent identities for people or applications.

    • Groups: Collections of users. Permissions applied to a group are inherited by all members.

    • Roles: Temporary identities for AWS services or federated users (e.g., allowing an EC2 instance to access S3).

  • Authentication Methods: Passwords (Console access), Access Keys (CLI/SDK programmatic access), and SSH Key Pairs (Linux instance access).

Core Compute Services

  • Amazon EC2 (Elastic Compute Cloud): Resizable virtual servers.

    • Amazon Machine Image (AMI): Pre-configured templates (OS, software) to launch instances.

    • Instance Types: Optimized for different tasks (General Purpose, Compute Optimized, Memory Optimized, Storage Optimized, Accelerated Computing).

    • Pricing Models: On-Demand (flexible), Reserved (long-term savings), and Spot (spare capacity at high discounts but interruptible).

  • AWS Lambda: Serverless compute that runs code only when triggered.

  • Amazon Lightsail: Simplified managed service for launching virtual private servers.

Core Storage and Database Services

  • Amazon S3 (Simple Storage Service): Object storage for any amount of data.

    • S3 Storage Classes: Standard (frequent access), Standard-IA (infrequent), One Zone-IA (lower resilience), and Glacier (long-term archiving).

  • Amazon EBS (Elastic Block Store): Block storage volumes used primarily as primary drives for EC2 instances.

  • Amazon RDS (Relational Database Service): Managed relational databases supporting MySQL, PostgreSQL, Oracle, SQL Server, and Amazon Aurora.

  • Amazon DynamoDB: Managed NoSQL database for high-performance applications at any scale.

  • Amazon Redshift: Data warehousing for big data analytics.

Core Networking Services

  • Amazon VPC (Virtual Private Cloud): Logically isolated virtual network. Consists of subnets (public or private), internet gateways, and security groups (instance-level firewalls).

  • AWS Direct Connect: Provides a dedicated private network connection from on-premises to AWS.

  • Amazon Route 53: Highly available and scalable Domain Name System (DNS) web service.

Automation and Use-Case Scenarios

  • AWS CloudFormation: Infrastructure as Code (IaC). Uses templates (JSON/YAML) to provision and manage a collection of AWS resources (Stacks) repeatably.

  • EC2 Auto Scaling: Automatically adjusts the number of EC2 instances in an Auto Scaling Group based on demand or healthy status.

  • Well-Architected Framework: Five pillars for designing cloud systems:

    1. Reliability: Ability to recover from disruptions.

    2. Performance Efficiency: Efficient use of computing resources.

    3. Security: Protecting data and systems.

    4. Cost Optimization: Avoiding unnecessary costs.

    5. Operational Excellence: Running and monitoring systems to deliver business value.